声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3256|回复: 6

[滤波] [讨论]滤波器设计

[复制链接]
发表于 2005-11-2 09:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 wdhd 于 2016-9-1 13:49 编辑

  现在遇到这样一个问题,被测信号的频率范围是10~1000Hz,采样频率设为4KHz。由于采样信号中含有低频分量,对此后的积分产生很大的影响,所以要用高通滤波器把小于10Hz的信号分量虑除。

  用matlab中的函数设计滤波器,[B,A] = BUTTER(N,Wn,'high'),N为滤波器阶数,令N=4;Wn为截止频率,Wn=2f/Fs=20/4000=0.005。据此设计出A、B参数。

  问题:采样频率与边缘频率相差太大,使得Wn很小,有人设计过这样的滤波 器吗?

  设计出的A、B用双精度运算,可以满足设计要求,但把它放在单片机里运算,由于我们使用的单片机只能存单精度的,所以使得滤波效果不太理想。请问有没有其他好的解决办法?
回复
分享到:

使用道具 举报

发表于 2005-11-2 15:41 | 显示全部楼层

回复:(xianglove)[讨论]滤波器设计

试一下afd_butt
发表于 2005-11-3 07:52 | 显示全部楼层

回复:(xianglove)[讨论]滤波器设计

建议看一下《信号处理滤波器设计——基于MATLAB和Mathematica的设计方法》这本书,上面有很多实例,另外matlab设计滤波器不只是BUTTER一个命令,还有很多,比如楼上提到的,你现比较一下那种更适合你的情况
 楼主| 发表于 2005-11-3 12:31 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-1 13:50 编辑

  多谢楼上指点!

  几个滤波器我都试过了,由于Wn太小,所以都要求A、B参数有足够的精度才行。如果提高Wn的值,等于0.3、0.4的话,A、B的精度就可以减少,同时不影响滤波器性能。

  由于Keil C编译不支持双精度,所以现在的问题是要“寻找一个高精度乘法的算法”了。哪位大侠有相关的经验吗?
 楼主| 发表于 2005-11-4 16:08 | 显示全部楼层
我改成用二阶滤波器了,系数的精度要求不高,只要有四位有效数字就可以满足了。试验了一下,已基本达到要求,当然还有测量的精度要进行研究,有问题还有向大伙请教哦~~~
发表于 2006-5-11 13:45 | 显示全部楼层

回复:(warren)回复:(xianglove)[讨论]滤波器设计...

本帖最后由 wdhd 于 2016-9-1 13:50 编辑

  请问为什么afd_butt函数运行不出来,会提示??? Undefined command/function 'afd_butt'.这个??还有freqz_m.请帮帮忙!谢谢!
发表于 2006-5-11 13:55 | 显示全部楼层

请问(ssdr)

本帖最后由 wdhd 于 2016-9-1 13:50 编辑

  请问,知不知道为什么在7.0版本下,afd_butt,freqz_m 等函数都运行不出来?

  提示??? Undefined command/function 'afd_butt'.

  请帮帮忙,急需帮助!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-4-29 05:49 , Processed in 0.052733 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表