您的位置: OpenADSP社区论坛 -> Sigma DSP/模拟器件专区 -> 新手上路 -> SigmaStudio  Bandpass Filter 计算问题请教... 
本帖共有178个阅读者
发表帖子 发表投票 回复主题
SigmaStudio Bandpass Filter 计算问题请教
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
SigmaStudio Bandpass Filter 计算问题请教

在SigmaStudio的帮助文档里的算法信息  关于  Bandpass 滤波器系数的计算公式说明书写有误,在

Coefficient

alpha alpha= sin(ω0) * sinh( ln(2)/2 * bandwidth * ω0/sin(ω0)

a0 =   1 + alpha

a1 =  -2*cos(ω0)

a2 =   1 - alpha

b0 =   alpha * gainLinear

b1 =   0

b2 =  -alpha * gainLinear

里面的alpha= sin(ω0) * sinh( ln(2)/2 * bandwidth * ω0/sin(ω0) 少了一个“)”,也就是没有和"sinh("对应的")",不知道正确应该加在哪里?谢谢!


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/4/9 17:25:50
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
问:我用C按照以上资料写了一段计算程序,但运行结果不对,请帮我看看哪里搞错了,谢谢:

float w0,sn,cs,alpha,gainLinear;

float a2,a1,a0,b2,b1,b0;

float Gain=0;

float f0=1000;

float bandwidth=1.41;

w0 = 2*3.1415926*f0/48000 ;

gainLinear = pow(10,(Gain/20));

alpha = sin(w0) * sinh( 0.69314718055994530941723212145818/2 * bandwidth * w0/sin(w0));

a0 = 1 + alpha ;

a1 = -2*cos(w0) ;

a2 = 1 - alpha;

b0 = alpha * gainLinear ;

b1 = 0;

b2 = -alpha * gainLinear;

正确结果应该是:

a2:-0.87519109249115

a1:1.85914862155914

b2:-0.0624043941497803

b1:0

B0:0.0624043941497803

但实际运行结果却是:

a2:-0.933442

a1:1.98289

b2:-0.0665579

b1:0

B0:0.0665579


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/4/9 17:26:08
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
答:应该放在最后

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/4/9 17:26:19
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
问:谢谢!加在最后,调试正确了,原来是没有/a0.非常感谢!

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/4/9 17:26:34
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154293 Call, 1 Queries, Processed in 0.046875 second(s),