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

Cannot Get Shelf Filter to Match

SigmaDSP & SigmaStudio Greg_Flanagan Jan 13, 2022 00:00 6 replies Original on forum ↗
Subscribe
Greg_Flanagan Question
Jan 13, 2022 00:00

Hi,

I'm using ADAU1466 and cannot get my shelf filters to match my simulation tool.

Simulation tool is VituixCad running generic (RBJ) DSP system at 48 kHz

I have a 2nd order high shelf filter (12.920 kHz, Q = 2.49, +3.28 dB)

The measured response out of the ADAU1466 seems to have a Q of around half of what it should be (pink curve is measured response out of ADAU1466).

I have checked other filters (HP, LP, Peaking) and they all match just fine.

Additionally I have verified VituixCad is matching RBJ shelf filters.

Is there some setting I am missing or maybe using the wrong filter type?

Thanks!

Edit Notes
Fixed typo on frequency.

[edited by: Greg_Flanagan at 1:48 PM (GMT -5) on 25 Jan 2022]

Audio Signal Processors

SigmaDSP Audio Processors

adau1466

High-Shelf-Filter.PNG
High-Shelf-Filter.PNG
VCad-Simulation-VS-SigmaStudio-Measurement.PNG
VCad-Simulation-VS-SigmaStudio-Measurement.PNG
Harishgowtham Reply
Jan 25, 2022 00:00

Hello Greg_Flanagan,

Could you please tell us about the revision of Sigmastudio that you are using?

If possible kindly attach your project and filter coefficients. So we will have a look and revert you.

Regards,

Harish

Greg_Flanagan Reply
Jan 25, 2022 00:00

Hi Harishgowtham,

My version of Sigmastudio is Version 4.6. Build 0, Rev 1812 12/23/2020

In the attached project file I have the filter in question on the "woofer" channel.

Best regards,

GregRevo SS ADAU VCad testing sample rate.dspproj

bitmechanic Reply
Jan 25, 2022 00:00

See attached image. ADAU1466 response looks correct, compares exactly to the Matlab plot. Matlab:

[B,A] = designShelvingEQ(3.3,2.5,12920/(Fs/2),'hi');

shelftest.png
shelftest.png
Greg_Flanagan Reply
Jan 25, 2022 00:00

Still not clear where the difference is.
If I calculate in MATLAB the High Shelf RBJ filter I get these coefficients:

% highShelf: H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A)

HIGH SHELF RBJ @ 12920.0 Hz & Q = 2.5 & 3.3 dB Gain

1.1852

0.0519

0.7889

1.0000

0.3542

0.6719

If I then import the table to SigmaStudio and measure the electrical transfer function I get a response the same as my MATLAB calculation.

If I use the filter block as in your above example I get a different response (white curve in below plot)

Is maybe your "designShelvingEQ" formula different than the RBJ formula?
Below is from the general filters documentation page:

Best regards,

Greg

pastedimage1643152628495v1.png
pastedimage1643152628495v1.png
pastedimage1643153106780v3.png
pastedimage1643153106780v3.png
pastedimage1643153008407v2.png
pastedimage1643153008407v2.png
pastedimage1643153231149v4.png
pastedimage1643153231149v4.png
pastedimage1643153371045v5.png
pastedimage1643153371045v5.png
bitmechanic Reply
Jan 26, 2022 00:00

Hello,

Looks like the confusion is using Slope vs. Q. The SigmaStudio module is using Slope=2.5 notQ, so the Q = 1/sqrt((A+1/A)*(1/Slope-1)+2) = 1.13 where A=10^(dbgain/40), dbgain=3.3

Note that, for Slope=1, Q=0.707

For Q=2.5 you need a Slope=10.4, see attached image

Shelftest2.png
Shelftest2.png
Greg_Flanagan Reply
Jan 26, 2022 00:00

Thanks for the clarification. That seems to be it!