• Hi 彦祖，

How to self-boot the EVAL-ADAU1701MINIZ (evalua... | EngineerZone

Thanks,

Jun

• jun,

你好，看了你对很多提问的解答，觉得分析到点子上了，让人茅塞顿开。我也在此请教个问题，如下图，对于EQ的参数，如果要上位机要通过MCU去控制，应该要有个算法

这上面有相关的公式，在SigmalStudio的HELP 也有，我就想知道，上面的公式，在这个例子里是怎样推出来的？能就这个例子详细和具体地指教一下吗？

EQ Algorithm

The 2nd Order  and medium-size EQ blocks use multiple biquad filters, based on Robert Bristow-Johnson's work as shown here:

Common Variables

A  = 10^(boost/40)

ω0 = 2*pi*f0/Fs

alpha = sin(ω0)/(2*Q) (type: Peaking)

= sin(ω0)/2 * sqrt((A + 1/A)*(1/S - 1) + 2) (type: Shelving)

gainLinear = 10^(gain/20)

Peaking

 Transfer function Coefficients a0 =  1 + alpha/A a1 = -2 * cos(ω0) a2 =  1 - alpha/A b0 = (1 + alpha*A) * gainLinear b1 = -(2 * cos(ω0)) * gainLinear b2 = (1 - alpha*A) * gainLinear

Low-Shelf

 Transfer function Coefficients a0 = (A+1) + (A-1)*cos(ω0) + 2*sqrt(A)*alpha a1 = -2*( (A-1) + (A+1)*cos(ω0) ) a2 = (A+1) + (A-1)*cos(ω0) - 2*sqrt(A)*alpha b0 =  A*( (A+1) - (A-1)*cos(ω0) + 2*sqrt(A)*alpha ) * gainLinear b1 =  2*A*( (A-1) - (A+1)*cos(ω0) ) * gainLinear b2 =  A*( (A+1) - (A-1)*cos(ω0) - 2*sqrt(A)*alpha ) * gainLinear

High-Shelf

 Transfer function Coefficients a0 = (A+1) - (A-1)*cos(ω0) + 2*sqrt(A)*alpha a1 =  2*( (A-1) - (A+1)*cos(ω0) ) a2 = (A+1) - (A-1)*cos(ω0) - 2*sqrt(A)*alpha b0 =  A*( (A+1) + (A-1)*cos(ω0) + 2*sqrt(A)*alpha ) * gainLinear b1 = -2*A*( (A-1) + (A+1)*cos(ω0) ) * gainLinear b2 =  A*( (A+1) + (A-1)*cos(ω0) - 2*sqrt(A)*alpha ) * gainLinear

For each of these three filters, all the coefficients are divided by a0, normalizing them and making a0 = 1, so that only 5 coefficients must be stored.

In the implementation on the DSP, when the coefficients are stored in parameter RAM, a1 and a2 need to be inverted. This is done in software before the parameters are written to memory.

谢谢你的帮忙

1382924416

8或qq  2576224822