• 299查看
  • 0回复

[底层软件] DSP-BU32107 均衡器(16段)配置及IIR算法

[复制链接]


该用户从未签到

发表于 26-4-2024 22:30:55 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


DSP-BU32107  均衡器(16段)配置及IIR算法w1.jpg

Step1:在0x0600地址[7]置1,选择16-Band EQ

DSP-BU32107  均衡器(16段)配置及IIR算法w2.jpg

Step2:设置Front,在0x0610-0x061F配置参数,设置Rear也是如此

DSP-BU32107  均衡器(16段)配置及IIR算法w3.jpg

DSP-BU32107  均衡器(16段)配置及IIR算法w4.jpg

Step3:如果不想根据图表数据进行配置,则把0x0610[7]置1,然后配置0x1000,根据需求选择某个Band

DSP-BU32107  均衡器(16段)配置及IIR算法w5.jpg

Step4:运用IIR算法计算出b0,b1,b2,a1,a2,配置到相应的地址中

DSP-BU32107  均衡器(16段)配置及IIR算法w6.jpg

可以设置的参数及含义:

DSP-BU32107  均衡器(16段)配置及IIR算法w7.jpg

便于计算的中间变量:

DSP-BU32107  均衡器(16段)配置及IIR算法w8.jpg

得到最终Peaking Filter Coefficients:

DSP-BU32107  均衡器(16段)配置及IIR算法w9.jpg

代码示例
//fC:频率//Q:Q值  q=f0/bw//Value: 提升起下降 x dBvoid Set_Paramentric(int fC , float Q , uint8_t Value){floata1 ;floatw0 ;intFs;floatA;floatalpha;floata0 ;floata2 ;floatgain;floatgainLinear;floatb0 ;floatb1;floatb2;floatboost;  boost      = Value;Fs         =  48000;gain       =  0 ;    w0         = (2*PI*fC)/Fs;    A          = pow( 10 , (boost/40) );    alpha      = sin(w0)/(2*Q);a0         = 1 + (alpha/A);a1         = (2 * cos(w0)) / a0 ;a2         = -(1- (alpha / A )) / a0 ;gainLinear = pow(10, (gain/20)) /a0;b0         = (1 + alpha*A) ;    b0 *= gainLinear;b1         = (-2 * cos(w0)) * gainLinear;    b2         = (1 - alpha*A) * gainLinear;      }

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-12-2024 11:47 , Processed in 0.404083 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.