Hello
I need to implement a precision biquad at 192KHz SR with the following coefficients (b0,b1,b2,a1,a2) but each time I load the coefficients into the BiquadCascadeHP filter it is truncating them to 4 decimal places and as a result the filter is totally inaccurate and the frequency response is way off. How to specify higher accuracy ? Also is there a standard biquad where I can specify the parameters in terms of the s-plane numerator/denominator coefficients ?
1.000354620763140,
-1.999258876525360,
0.998905801599352,
1.999259512416810,
-0.999259786471040
Regards
David
2:46pm
Hi David,
When I input your coefficients in Audio Weaver and pull them out with MATLAB, I get about 8 digits of accuracy, which is as good as you can get with 32-bit floats.
1.000354647636414
-1.999258875846863
0.998905777931213
1.999259471893311
-0.999259769916534
These are the coefficients being used in the module processing, so Audio Weaver is doing the right thing, but showing you only the truncated numbers. I can put in a feature request to show the full resolution of the numbers in the properties panel, and in the saved array .csv files.
In Standard Designer you'll have to convert your biquad from the s domain to the z domain and use those coefficients.
One thing to check if your frequency response is incorrect: Audio Weaver assumes that the a0 coefficient in your biquad is normalized to 1, so make sure that the rest of your coefficients are based on this normalization.
Alternatively, if you are designing a filter covered by the filter types in the SOFCascadeHP module, then you could use that. The SOF modules will automatically calculate coefficients for that filter type based on the cutoff freq, Q, and gain.
Hope this helps.
-Axel
9:27pm
Hi Axel
The a1 and a2 coeff's should have been negated which has improved the response but is still wrong. But when I changed the sign in the coefficient file using double precision and loaded them in again the response is OK ! Perhaps changing the sign in the table only utilised the rounded off values ??
Is it possible to add the standard biquad form to the SOF as this is a very common requirement for say a Linkwitz Transform filter that provides EQ and bass extension for a sealed box speaker. Specifying in the s-plane has the advantage that Audioweaver calculates the DF coefficients for a given sampling rate ;)
(s*Tz)^2 + s*Tz/Qz + 1
G(s) = Go * ----------------------
(s*Tp)^2 + s*Tp/Qp + 1
-
where Tz=1/(2*pi*fz) Tp=1/(2*pi*fp)
or the more general form would be handy as well
N2*s^2 + N1*s + 1
G(s) = Go * -----------------
D2*s^2 + D1*s + 1
Regards
David
1:02am
Did this issue get resolved?
12:49pm
Hi MickHope,
The issue found here was that, although all calculations were using the coefficients as entered, Designer was not displaying the full resolution of the filter coefficients, which was causing some confusion. This was especially an issue when you edit the coefficients manually (like negating one coefficient), because Designer would then use only the truncated displayed value of the coefficients and would lose the remaining digits.
This issue has not yet been resolved, but one clear workaround is to always make sure that you import your coefficients from a .csv file, and never manually edit the coefficients.
The other request here was to add a Linkwitz Transform filter to the available list of filter types included in our SOF module. This filter type has not been added.
If you are experiencing problems similar to DSPDude above, then see this post for some suggestions on how to resolve them: https://dspconcepts.com/forums/feature-requests-and-bug-reports/199-freq...
-Axel
6:37pm
Hi Team,
I'm testing how a .txt or .csv file uploads for the Cascading Biquad Module per your notes above. Since the post above more decimal places are available to be seen in the properties array. I do understand that it might round the last digits and truncate the number but why are the numbers not uploading correctly up to the last digit seen in the array? I don't get any errors as I'm modifying a saved file that was blank and pasting my numbers from a different file which is pictured below. For example the first biquad coefficient is: 1.000103559767264 from my file but what is uploaded and saved in the coefficient array from Audio Weaver is: 1.00010001659. Why are these numbers different? All of them are different. . . Am I doing something incorrectly? Thank you for your time.
Thanks,
Steve
3:25pm
Hi Steve,
Which version of AWE Designer are you currently using? Can you please try this with AWE Designer 8.D.1.3 and let us know if you observe the same behavior?
Thanks,
Michael
7:57pm
Hi Michael,
Thank you for your quick reply. I'm currently using Audio Weaver Server Version 8.B.0.0 designed to be used with the dspNexus. I also reached out to the design team and they noted that I am not able to upgrade to the newest version as it won't interface correctly with the unit. They tested and found that copying and pasting the biquads did hold the number more accurately than using the file upload to enough digits that it retains the integrity of the filter. That will still be a chore with 8 channels and 12 biquads but I'm also not measuring my room often so doing it one time is ok. If you have any other ideas or can assist them in getting the newest version of AW to interface with the dspNexus I'm happy to PM you with their contact information.
Thanks,
Steve
2:20pm
Hi Steve,
Thank you for sharing this additional info. I'll follow up with you over email about this.
Thanks,
Michael
10:58pm
Hi Michael,
FYI here is some additional info for you. I have gotten my biquads to work. The High Precision Biquad Cascade Filter errors out when using it. I put 12 standard Biquad Smoothed filters together in a series and everything worked great and the number rounded with more accuracy. Also it would be good to note in your literature if someone is getting biquads that graph around -100 dB it is due to the fact that a1 and a2 need their signs flipped so that a1 is negative and a2 is positive. The team at Danville Signal Processing discovered the solution in helping me build out my system design in AW for their crossover dspNexus. I built my biquads by measuring each speaker with an audio loop back timing reference in Room EQ Wizard and used that data in Multi Sub Optimizer to get my biquads to input into AW. The results are transcendent!
Thanks,
Steve