https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/filters/general2ndorder
ADI SigmaStudio给出其Parameter EQ的计算公式,编程实现时发现一些问题,总结如下:
1、ADI帮助文档和TI文档《Parametric Equalization on TMS320C6000 DSP.pdf》给出的公式都有细微错误,需要参考Audio-EQ-Cookbook.txt纠正,下载地址是http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt,All of them use biquad filter designs based on Robert Bristow-Johnson's work in this field.
比如TI C6000的EQ与SigmaStudio Help文档的EQ略有差别。SigmaStudio Help文档3个页面的EQ公式也有差别。
EQ Algorithm: alpha = sin(ω0)/(2*Q)
General (2nd-Order): alpha = sin(ω0)/(2*A*Q) 可能错误。
General 2nd-Order Filters: alpha = sin(ω0)/(2*Q)
后两者的Butterworth和Bessel里面的alpha又不相同。
2、PC代码需要把所有参数除a0归一化,再把分母a1和a2乘-1。
3、PC下不管使用CodeBlocks还是VS2010编译代码,浮点计算结果都一致。但LPF低通滤波器的分子与SigmaStudio结果有细小差别,不过Q24定点化后结果相同。
更多音频文章,请关注微信公众号“音频算法与工程实践”。