浅谈FIR滤波器的简单实现方法
陈辉铭2013/11/12电子技术 IP:浙江
FIR滤波器在数字电路中应用很广,可以简单谈谈它的原理和设计流程,详细的流程将会在后面附上。

FIR滤波器的时域表达式:y(n)=∑h(m)x(n-m),其中m的范围从0到N-1,N称为抽头或者阶数,h理论上说的是系统函数,实际上去实现只需要确

定h(0)到h(N-1)的值即可,h其实就是表达式的系数,所以h在时域上也就是N个点。

用C去实现的流程大概就是如下,比如设计20阶滤波器,x和h定义为数组,x数组长度为k,n的取值将有n=0-N-1+k,这样用两个for语句可以完成y数

组的求解。下面谈谈如何获取h数组,也就是系数,这个离不开matlab。

matlab有一个滤波器设计工具,可以输入命令sptool即可分析滤波器滤波效果,然后把各项指标填入这个工具里面的,我记得最后点击design即可出

现系统函数h的频谱图,然后可以点击导出或者直接点击C header即可产生包含系数数组的头文件,然后就可以用C去实现FIR滤波器的设计了。

到此,大体上的设计工作如此了,这是本人上DSP课老师亲手掩饰过,因为比较认真听讲所以印象还比较深。。。

小弟新手,细节方面肯定做得不到位[s:12] 。。。。。。。。。
+100  科创币    虎哥    2013/11/13 加点分
来自:电子信息 / 电子技术
4
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
量子隧道
11年3个月前 IP:未同步
653573
FIR滤波器的操作Y=∑h(m)x(n-m) 本质上是卷积变换,这个学过高数应该会有学到。
那么FIR滤波器的设计本质上是两种情况:
1,知道系统的输入 X,和期望的输出Y,求H。这是反卷积操作,可以通过解多元一次方程组,或数值迭代来得到。
2,根据时域卷积等效于频域相乘的原理,吧Y和X变换到频域,相除,再转换回时域,即得H。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
陈辉铭作者
11年3个月前 IP:未同步
653592
是的,就是时域卷积
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
fuwen0202
11年3个月前 IP:未同步
653603
呃,这个是窗函数滤波的那个么?前年学过都忘记掉了。。matlab都是直接调用库函数的。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
陈辉铭
笔友
文章
6
回复
8
学术分
0
2013/08/17注册,7年0个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}