ΣSigmaStudio Ask AI Русский Log in

ADAU1772 Filter Response Issues

SigmaDSP & SigmaStudio ykanybb Feb 24, 2016 00:00 8 replies Original on forum ↗
Subscribe
ykanybb Question
Feb 24, 2016 00:00

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

f6e3c10faa38cb4637f8162b928ab60b.png
f6e3c10faa38cb4637f8162b928ab60b.png
f6e3c10faa38cb4637f8162b928ab60b.png-620x283.png
f6e3c10faa38cb4637f8162b928ab60b.png-620x283.png
4ab62b4288f43a29cb8e8034a22ea308.png
4ab62b4288f43a29cb8e8034a22ea308.png
4ab62b4288f43a29cb8e8034a22ea308.png-620x417.png
4ab62b4288f43a29cb8e8034a22ea308.png-620x417.png
2400c658c4b7daffa537970341151e75.png
2400c658c4b7daffa537970341151e75.png
2400c658c4b7daffa537970341151e75.png-620x395.png
2400c658c4b7daffa537970341151e75.png-620x395.png
joe42 Reply
Feb 25, 2016 00:00

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.

ykanybb Reply
Feb 27, 2016 00:00

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.

ykanybb Reply
Feb 28, 2016 00:00

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.

KJBob Reply
Feb 28, 2016 00:00

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

joe42 Reply
Feb 29, 2016 00:00

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.

ykanybb Reply
Feb 29, 2016 00:00

Ok,thank you!I will try.

ykanybb Reply
Feb 29, 2016 00:00

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.

e52bb0f97982aeb44e61b3f38539ee9d.png
e52bb0f97982aeb44e61b3f38539ee9d.png
e52bb0f97982aeb44e61b3f38539ee9d.png-158x229.png
e52bb0f97982aeb44e61b3f38539ee9d.png-158x229.png
joe42 Reply
Feb 29, 2016 00:00

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.