ADAU1772 Filter Response Issues
I designed a 8th-order filter in Matlab and transform it into the SigmaStudio.In order to get the 8th-order filter I use four 2nd-order filter as follows.
The response of filter get from the Probe have a strange shift campare with the desired response designed in Matlab.The response of magnitude raise up and the phase drop down below 100Hz in sigmastudio.
Matlab
SigmaStudio
Who can tell me the reason of the change in SigmaStudio.Thanks a lot.
digital filter
adau1772
Integrated/Special Purpose A/D Converters
adau 1772
dsp&processors
Audio CODECs
Show More
It might be rounding issues on the coefficients, going from floating point to fixed point. You should plot your responses with the same scale to see how big the difference actually is; it looks quite exaggerated on the sigma.
Is the sigma will change the floating point to fixed point?I can read the coefficients in the sigma,which are floating point and have higher precision than the coefficients simulated in Matlab. The responses are in the same scale in the above figures and just have big differences below 100Hz. What's more,I can get a right response of a 4th-order filter,which can match with the response I desired.
Sorry,I misunderstood what you said 'rounding issues on the coefficients'.The coefficinets in Matlab are floating point and will changed into fixed point in DSP. So, I should quatify the coifficients before importing them into DSP, right?And how can I do to quatify, I just step into this field and know little.
Hi,
I can't tell what's wrong by looking at your results. Perhaps you can isolate the difficulty to one of the four biquad blocks by simulating them one at a time in Matlab, as well as using Stimulus-Probe on each individual block in SigmaStudio.
Best regards,
Bob
Right. The coefficients in Sigma are fixed-point. I suggest downloading the actual coefficients used by Sigma (or round them yourself) and see how they look in Matlab. I suspect this is the issue. You may have to re-scale your coefficients and/or reorder the blocks to get the low-frequency performance to match.
Ok,thank you!I will try.
I have checked the filters.One of them may leads to this issue.The coefficients in Matlab are as follows,I just download them into the Sigma like this.
I find something may result in this problem,the coefficients of denominator are a1&a2 and the poles are 0.9995&0.9783. The 0.9995 is close to unit circle,when change it to fixed point ,then it would become 1 and will lead the filter unstable.I don't know if this is the cause of the problem,it is just my guess.
How can I load the coefficients into the Sigma.Should I transform the number into fixed point and then down into Sigma? For example, fixed a1=int(a1*2^27),the number format of a1 is 2.27.Please forgive my stupid I am a newbie.
The filter isn't going unstable, it's just losing accuracy at low frequencies. The sigma coefficients are 5.24 (or 5.28?)
There's no easy solution to this, other than to attempt to reorder your blocks and/or rescale your coefficients, or use different types of filters.
Please log in to reply.







