I am trying to figure out how the IIR filters are implemented in the audioLibrary: filter_biquad.cpp. But I really struggle at that code. Perhaps someone could give me some hints. As far as I understand the CPU can only do 32x16 multiplies-adds, so for each 32x32 product there should be two MAC instructions. I would expect these two MACs close together and with the same operands, the onee as "Bottom" the other as "Top". But the code really works in another way. What value should I specify for a1 (scaling) if I want a1=-0.5 or a1=1.0. I think the scale factor is 1073741824 but i am not sure. I would like to run the code on the filter:
B0= 1.0
B1= 0
B2= 0
A1=-1.0
A2= 0.5
I have coded IIR filters using an FPGA and Java, so now it comes to ARM.
I just want to learn from the code of others!
B0= 1.0
B1= 0
B2= 0
A1=-1.0
A2= 0.5
I have coded IIR filters using an FPGA and Java, so now it comes to ARM.
I just want to learn from the code of others!