数字带通滤波器的疑问

[复制链接]
 楼主| XZL 发表于 2011-6-30 17:41 | 显示全部楼层 |阅读模式
本帖最后由 XZL 于 2011-7-4 14:08 编辑

要做一个5Hz到30Hz的带通滤波,用MATLAB滤波器工具得到了系数,可是用MCU运行的结果感觉不对,哪位做过,请进来指点一二!:handshake
应该是30Hz
 楼主| XZL 发表于 2011-6-30 17:44 | 显示全部楼层
忘记说了,我的采样率是250Hz
 楼主| XZL 发表于 2011-6-30 17:45 | 显示全部楼层
忘记说了,我的采样率是250Hz
 楼主| XZL 发表于 2011-6-30 17:45 | 显示全部楼层
需要做二阶带通
 楼主| XZL 发表于 2011-7-1 09:38 | 显示全部楼层
 楼主| XZL 发表于 2011-7-3 16:13 | 显示全部楼层
没人写过类似算法?
mybao 发表于 2011-7-3 17:16 | 显示全部楼层
用数字滤波器做滤波不是什么频率都能实现的,频率这么低,频率之间的间隔太小,[3/125,5/125],这个设计出来估计意义不大。
highgear 发表于 2011-7-3 21:37 | 显示全部楼层
这么窄的带宽(2hz vs 250Hz),二阶难以实现,需要更高阶的 IIR。FIR的性能更好,但是用 mcu 就别想了。
 楼主| XZL 发表于 2011-7-4 14:09 | 显示全部楼层
highgear,是5-30Hz的带通
mybao 发表于 2011-7-4 20:39 | 显示全部楼层
论滤波效果,IIR好于FIR,就是同阶的IIR远好于同阶的FIR,但对频率敏感的信号,一般不用IIR,像图像压缩,只用FIR,但语音一般都用IIR,阶越高,延时越大,但是阶数太大,对于定点CPU就没意义了,因为你不可能用定点CPU做浮点运算吧,对实时系统。
highgear 发表于 2011-7-4 23:22 | 显示全部楼层
FIR 的滤波效果是不容置疑的,只是由于使用卷积,运算量大。而 iir 使用迭代方法,所以运算量小很多。FIR 可以直接使用 sinc 函数, 可以构成频谱接近窗口的滤波器,更重要的是, fir 相位线性,而且稳定。而iir 数字滤波器,低阶性能不佳,高阶由于迭代累加器的存在容易失稳。

楼主用 matlab 的滤波器设计工具没有必要,哪个东西似乎中看不中用,可以快速简单的得到结果,但绝大多数不是所想要的。带通滤波器的公式很多,很容易通过 s-> z -> 迭代公式得到。也可以用 6 阶以上的低通滤波器,如butterworth, chebyshev 等构造一个带通。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

XZL

183

主题

3309

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部