社区导航

 

搜索
查看: 4214|回复: 9

[讨论] FIR数字滤波

[复制链接]

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-7-29 20:20 | 显示全部楼层 |阅读模式
不知有没有人做过2014年大学生电子设计大赛的D题啸叫抑制,在论坛里看到有大神说他直接用FIR设计一个低通滤波器,81阶,截止频率2000HZ,滤波器系数为(0.00000000),(0.00010355),(0.00022087),(0.00036068),(0.00053070),
(0.00073675),(0.00098181),(0.00126516),(0.00158172),(0.00192152),

(0.00226945),(0.00260521),(0.00290366),(0.00313530),(0.00326719),

(0.00326402),(0.00308941),(0.00270749),(0.00208444),(0.00119018),

(0.00000000),(0.00150389),(0.00333104),(0.00548160),(0.00794555),

(0.01070224),(0.01372028),(0.01695796),(0.02036392),(0.02387837),

(0.02743457),(0.03096066),(0.03438179),(0.03762232),(0.04060825),

(0.04326954),(0.04554243),(0.04737151),(0.04871164),(0.04952940),

(0.04980430),(0.04952940),(0.04871164),(0.04737151),(0.04554243),

(0.04326954),(0.04060825),(0.03762232),(0.03438179),(0.03096066),

(0.02743457),(0.02387837),(0.02036392),(0.01695796),(0.01372028),

(0.01070224),(0.00794555),(0.00548160),(0.00333104),(0.00150389),

(0.00000000),(0.00119018),(0.00208444),(0.00270749),(0.00308941),

(0.00326402),(0.00326719),(0.00313530),(0.00290366),(0.00260521),

(0.00226945),(0.00192152),(0.00158172),(0.00126516),(0.00098181),

(0.00073675),(0.00053070),(0.00036068),(0.00022087),(0.00010355),

(0.00000000);

不知道有没有知道这系数是怎么搞出来的?自己用MATLAB怎么也模拟不出来
此帖出自stm32/stm8论坛

回复

使用道具 举报

1194

TA的帖子

3

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

荣誉会员勋章

发表于 2015-7-29 20:45 | 显示全部楼层
fdatool 自动生成~
construction complete!

回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-7-29 20:50 | 显示全部楼层
我生成了,但是不一样啊

回复

使用道具 举报

70

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-7-29 20:51 | 显示全部楼层
直接调用 fir滤波函数就好了
n=31;
wo=0.04;
dp=0.02;
ds=0.002;
h=fircls1(n,wo,dp,ds);
n为阶数,wo为归一化截止频率,dp为通带偏离1的最大允许波动,ds为阻带偏离0的最大允许波动
得到的h就是一个n+1的数组就是单位冲击响应,就是那个数组

点评

应该用的函数是fir1  详情 回复 发表于 2015-7-29 21:20
那对我这个数组而言,阶数n=80,采样频率为40k,截止频率为2k,那么wo=0.1,对吗  详情 回复 发表于 2015-7-29 21:03

回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-7-29 21:03 | 显示全部楼层
风华 发表于 2015-7-29 20:51
直接调用 fir滤波函数就好了
n=31;
wo=0.04;
dp=0.02;
ds=0.002;
h=fircls1(n,wo,dp,ds);
n为阶数,w ...

那对我这个数组而言,阶数n=80,采样频率为40k,截止频率为2k,那么wo=0.1,对吗

点评

对的,你可以去试试  详情 回复 发表于 2015-7-29 22:03

回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-7-29 21:20 | 显示全部楼层
风华 发表于 2015-7-29 20:51
直接调用 fir滤波函数就好了
n=31;
wo=0.04;
dp=0.02;
ds=0.002;
h=fircls1(n,wo,dp,ds);
n为阶数,w ...

应该用的函数是fir1

点评

有很多求解fir滤波器单位冲击响应的函数 比如fir1(),fir2(),fircls(),fircls1(),firls()等等 还可以加入窗函数,设计方法多种多样,各有各的好处  详情 回复 发表于 2015-7-29 22:07

回复

使用道具 举报

70

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-7-29 22:03 | 显示全部楼层
hnsdyd 发表于 2015-7-29 21:03
那对我这个数组而言,阶数n=80,采样频率为40k,截止频率为2k,那么wo=0.1,对吗

对的,你可以去试试

点评

好像不大行啊  详情 回复 发表于 2015-7-30 09:14

回复

使用道具 举报

70

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-7-29 22:07 | 显示全部楼层
hnsdyd 发表于 2015-7-29 21:20
应该用的函数是fir1

有很多求解fir滤波器单位冲击响应的函数
比如fir1(),fir2(),fircls(),fircls1(),firls()等等
还可以加入窗函数,设计方法多种多样,各有各的好处

回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-7-30 09:14 | 显示全部楼层
风华 发表于 2015-7-29 22:03
对的,你可以去试试

好像不大行啊

回复

使用道具 举报

502

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-7-30 10:13 | 显示全部楼层
本帖最后由 weizhongc 于 2015-7-30 10:22 编辑

http://blog.sina.com.cn/s/blog_98ee3a930102vhi7.html
看看这个博文就好了

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-6 22:05 , Processed in 0.311749 second(s), 32 queries , Gzip On, MemCache On.

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