已回答假定已回答

General 1st-Order Filters 请教

ty228 在 2014-6-13 詢問的問題
最後回覆由ty228於2014-6-21提供

SigmaStudio的帮助文档里有写到General 1st-Order Filters  Highpass 的系数计算公式为:
ω0 = 2*pi*f0/Fs
gainLinear = 10^(gain/20)
a1 = 2.7^-ω0
b0 = gainLinear * a1
b1 = -a1 * gainLinear
我用C按照上面的方法写了段计算程序,但结果却与SigmaStudio软件的计算结果不同,请帮我看看是哪里出错了?谢谢!

////(f0=1000,gain=0,fs=48000):

 

float omega,A;      
omega=(float)(2*3.1415926535897932384626433832795*1000/48000);
A=pow(10,(0/20));                      
a1=pow(2.7,-omega);
b0=A*a1;
b1=-a1*A;
a1=-a1;

程序运行结果:
b0=0.878081
b1=-0.878081
a1=0.878081

 

SigmaStudio软件计算结果(f0=1000,gain=0,fs=48000):
Param Name:  FistOrderSingle101
Param Value:  0.939040541648865

 

Param Name:  FistOrderSingle111
Param Value:  -0.939040541648865

 

Param Name:  FistOrderSingle121
Param Value:  0.878081083297729

 

两个结果不同,请帮忙,谢谢!

結果