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

How to calculate the coefficient value of the high order filter

SigmaDSP & SigmaStudio leiming Mar 5, 2011 00:00 13 replies Original on forum ↗
Subscribe
leiming Question
Mar 5, 2011 00:00

Hi

at first i should describ our design for you ,we want to design a system and the block crossover is used as the high order LP filter, Our DSP prossesor is controled by extern microcontrolor ,So the coefficient value must be calculated by extern microcontrolor according to the formula and the controlor send the corresponding value to DSP prosseeor come true controling.

Now we meet problem :

1 for high order filter different order,the number of coefficient is defferent,for example bessel 12 dB have 5 coefficient , bessel 18 dB have 8 coefficient ,

bessel 24 dB have 10 coefficient ,and so on !

2 we don't know the equationt of the coefficient.

before somebody tell me the high order filter is simply serialized by general 2nd order filter and general 1st order filter ,and there is the equation in help file .

but after much experiment i find the the value of coefficient i get from equation is not correspond to which i get from the SigmaStudio,

for example ,general 2nd order filter,frequency=1000HZ;Q=1.41,Fs=48000;gain=0;

below is the data i get from experiment

The data get from the equation of help file :

a0=1.0008101520074285072310965239913;

a1=-1.9999947804650706869450798840089;1 /a1=-0.50000130488713778026095773346491;

a2=0.999189847992571492768903476009; 1/a2=1.0008108088858750397659847761385;

b0=--0.0000013048837323282637300289978;

b1=-0.000002609767464656527460057994;

b2=b0;

The data get from SigmaStudio:

EQ1940Single10B1=0.00408828258514404;

EQ1940Single11B1=0.00817668437957764;

EQ1940Single12B1=0.00408828258514404;

EQ1940Single11A1=1.8951700925827;

EQ1940Single12A1=-0.911523461341858;

We could find the difference from the data,if you know please reply soon!

I 'm look forward to your reply ! thanks

help

file

filter

sigma

studio

crossover

Show More

ADIApproved Reply
Mar 7, 2011 00:00

I'm checking with the software team to see if we can get the documentation to include these equations. I will post back here again when I find out any information.

leiming Reply
Mar 8, 2011 00:00

Oh! Thanks very much, now this have became the key difficult ,so i hope your team check the software as soon as possible and get the exact equation ,because it is very useful for our project and our team.

I'm waiting for your useful information

LEA

ADIApproved Reply
Mar 16, 2011 00:00

Hello,

The equations used for filter calculations are attached. Please let me know if everything is understandable.

leiming Reply
Mar 20, 2011 00:00

Hello

Thanks for your reply,I don't understand what the meaning of

"Butterworth 24 dB/oct = 2 Higher order butterworths
Filt 1: orderindex = 4, i = 0
Filt 2: orderindex = 4, i = 1"

Is Butterworth 24 dB/oct=2 cascaded 2nd order butterworths (2 biquads)?

In SigmaStudio,i select Butterworth 24 like the pictrue,but when i change the frequency there is two different group value .Could you tell me the reason?

I'm looking forward to your reply!

ADIApproved Reply
Mar 23, 2011 00:00

Page 8 in the PDF shows the calculations for "higher order" low pass and high pass Butterworth filters. Use those equations, and substitute your values in for orderindex and i, both of which appear in the calculations.

Filt1 is the first cascaded filter, and Filt2 is the second cascaded filter (and so on...).

You seem to be using Butterworth 24 in your crossover. From the PDF, page 9, you can see that a Butterworth 24 filter consists of two higher order Butterworth filters, cascaded. That's why you see two groups of coefficients (one for each filter).

Windy Reply
Apr 9, 2011 00:00

Hi Grett,

We found all the expression in FilterMathCalculations are analog prototypes without bilinear transformation. why there is not bilinear transformation in Sigma , could you help to explain?

Thanks.

Best Regards,

Windy

ADIApproved Reply
Apr 9, 2011 00:00

Windy,

I am currently on a business trip in Germany, which is why I have had difficulty answering you. I am still checking with the software team about your questions and will reply to you once I return to our office in the US.

iPodから送信

Windy Reply
Apr 9, 2011 00:00

Hi Brett,

Thanks.

When will your back to US? could you comfirm the time with me ? cause it's very urgent for us .

Best Regards,

Windy

ADIApproved Reply
Apr 11, 2011 00:00

I just arrived back in the US last night. I can answer your question today.

iPodから送信

ADIApproved Reply
Apr 11, 2011 00:00

Hi Windy,

I'm now back in the US office and I was able to discuss this with our software team. First I will talk about how to generate Butterworth filters with 48 dB rolloff. It turns out that I was incorrect - you cannot simply take two 2nd-order Butterworth filters and then put them in series in order to realize a 4th order filter. We do not actually support those higher-order filters in SigmaStudio's crossover cell because the Butterworth filters have a poor radiation pattern as the order goes up. There is a great article at Rane describing this issue, which you can find here: http://www.rane.com/note160.html

A summary of the issue:

When you use Butterworth crossovers at higher order for a crossover, the radiation pattern from the speakers starts to tilt downward. This means that people sitting lower in the audience will hear the crossover frequency very loudly, where people sitting higher in the audience might not hear that frequency at all.

Here is the radiation pattern for the Butterworth crossover:

And here is the example with the audience for a Butterworth crossover:

For Linkwitz-Riley crossovers, the tilt in the radiation response is corrected, even at very high orders. This means that the majority of the audience will hear the crossover frequency equally.

Here is the radiation pattern for the Linkwitz-Riley crossover:

And here is the example with the audience for a Linkwitz-Riley crossover:

The article on Rane explains this issue much better than I ever could. The main point is that the Linkwitz-Riley filter has become the de facto standard for speaker crossovers due to the issue shown above. For Butterworth filters, this problem gets worse as the order increases, so in SigmaStudio we made a conscious decision not to include anything above 24 dB/oct in the crossover cell.

The software team says that we could include these cells if there is a real demand for them, but the issue I explained above makes it pretty clear that Linkwitz-Riley filters would be the preferred design.

With regards to the bilinear transform vs. filters in SigmaStudio based on analog prototypes...

The filters in SigmaStudio are based on Robert Bristow Johnson's work in making some very succinct 2nd-order filter IIR coefficient generation equations. His famous "Audio EQ Cookbook" is attached to this post as a text file.

You'll notice that in his introduction, he describes...

All filter transfer functions were derived from analog prototypes (that
are shown below for each EQ filter type) and had been digitized using the
Bilinear Transform. BLT frequency warping has been taken into account for
both significant frequency relocation (this is the normal "prewarping" that
is necessary when using the BLT) and for bandwidth readjustment (since the
bandwidth is compressed when mapped from analog to digital using the BLT).

So, as you can see, these filters were based on analog prototypes, but did use the bilinear transform when digitized.

The actual DSP core instructions for our filters are implemented in our own way, which is the best and most efficient way for the SigmaDSP's particular fixed-point architecture.

You can find more information about our filters in the SigmaStudio help file.

67758519adaba0143fe990ad11718792.jpg
67758519adaba0143fe990ad11718792.jpg
67758519adaba0143fe990ad11718792.jpg-450x361.jpg
67758519adaba0143fe990ad11718792.jpg-450x361.jpg
2b57dc5d2b293aa15dc23e36ecbf181d.jpg
2b57dc5d2b293aa15dc23e36ecbf181d.jpg
2b57dc5d2b293aa15dc23e36ecbf181d.jpg-450x250.jpg
2b57dc5d2b293aa15dc23e36ecbf181d.jpg-450x250.jpg
fc1524651f44b847c3f80eecbdfef3cc.jpg
fc1524651f44b847c3f80eecbdfef3cc.jpg
fc1524651f44b847c3f80eecbdfef3cc.jpg-364x440.jpg
fc1524651f44b847c3f80eecbdfef3cc.jpg-364x440.jpg
513e38c86a591e6d7a71ae8c728c78bf.jpg
513e38c86a591e6d7a71ae8c728c78bf.jpg
513e38c86a591e6d7a71ae8c728c78bf.jpg-450x299.jpg
513e38c86a591e6d7a71ae8c728c78bf.jpg-450x299.jpg
Windy Reply
Apr 11, 2011 00:00

Hi Brett,

Thanks for discussion with us .

orderangle = (PI / orderindex) * (i + 0.5)

alpha = sn / (2 * (1 / (2 * Sin(orderangle))))

within the filter mathmetical expression you sent us , it is not the exactly information we want , we are expecting for your explaination. For Bessel 24 dB/oct = Two 2 order Besels, that shouldn’t be a real 24db/oct filter, Linkwitz-Riley optimized Butterworth by cascading Butterworth, you already explain the advantage for that , but our customer required us to make a 48db/oct Butterworth & Bessel filter, but we did not found any caculation expression for this in FilterMathCalculations.pdf. we need these expression , because we have to draw the frequency response in our PC control software , which allow our customer to control our products through mouse.

Best Regards,

Windy

ADIApproved Reply
Apr 11, 2011 00:00

Hi Windy,

I will check with the software team about implementing 48 dB/oct rolloff Butterworth/Bessel filters, but I believe this will require a fair deal of time and work on our side since those functions do not currently exist in the SigmaStudio software and will have to be created entirely from scratch.

J3627 Reply
Feb 19, 2013 00:00

The PDF says "Bessel 24 dB/oct = Two 2nd order Besels" but I don't think that's correct. http://freeverb3.sourceforge.net/iir_filter.shtml says the different biquads need different Qs and different frequency offsets.