FIR滤波器的原理及设计

选题2 实验讲义
实验名称:基于分布式算法的FIR滤波器设计
1.数字滤波器基础知识
数字滤波是信号与信号处理领域的一个重要分支,在语音图像处理、模式识别、谱分析、无线通信等领域都有着非常广泛的应用。通过滤波运算,将一组输入数据序列转变为另一组输出数据序列,从而达到修正时域或频域中信号属性的目的。数字滤波器就是用于完成这种信号滤波功能,用有限精度算法来实现的一种离散时间线性时不变(LTI)系统.相比于模拟滤波器,数字滤波器具有以下优点:(1)数字滤波器的频域特性容易控制,性能指标优良;(2)数字滤波器可以工作在极低的频率,可以方便地实现模拟滤波器难以实现的线性相位系统;(3)数字滤波器工作稳定,一般不会受到外部环境的影响;(4)数字滤波器的灵活性和可重用性高,只需要简单编程就可以修改滤波器的特性,设计周期短。数字滤波器的实现可以采用专用DSP芯片,通过编写程序,利用软、硬件结合完成滤波器设计,也可以采用市面上通用的数字滤波器集成电路来实现,但这两种方法无法适应高速应用场合.随着集成电路技术的高速发展,FPGA应用越来越普及,FPGA器件具有芯片密度大、执行效率高,速度快,集成度
高等优点,用FPGA芯片作为滤波器的设计载体,可以实现高速信号滤波功能.
1.1 FIR数字滤波器特点
数字滤波器通常分为IIR(无限冲激响应)和FIR(有限冲激响应)两种。FIR滤波器具有以下特点:(1)可以做成严格的线性相位,同时又可以具有任意的幅度特性(2)单位冲激响应是有限长的,所以一定是稳定的,因此在实际中得到广泛的应用。
1。2 FIR滤波器结构
设FIR滤波器的单位冲激响应为
系统函数
差分方程形式为:  (1)
基本结构(直接型):

图(1)FIR滤波器的基本结构
1.3 结构简化
当FIR滤波器具有严格线性相位时,满足设N为偶数,令
则(1)式可以简化为:
  (2)
与(1)相比,所需乘法器数量降为原来的一半。
图(2) 简化乘法器数量的线性相位滤波器
1.4 设计规模的改进
当滤波器的长度N增加时,可将求和分配到几个独立的M阶并行DA的LUT中。以(1)式为例,设
这样,长度为N的滤波器实现可以分解为L个长度为M的滤波器,可运用流水线加法器累加结果.
2. 分布式算法
在很多DSP应用场合中,滤波器系数一般为常数,在这种情况下,可以利用分布式(Distributed Algorithm,DA)算法原理将求乘积和运算转变为移位和加法运算来实现。在滤波器规模比较小的情况下,采用DA算法可以减少电路规模,更容易实现流水处理,从而有更高的执行效率。以(2)式为例,DA算法的基本思想为:
在(2)式中,设为常数,将表示为B+1位二进制补码形式,其中,最高位为符号位,用表示,下标B表示第B位,数值位共有B位,用表示,其中
将式中各二进制位按权展开,则有下式成立,
代入(2)式,并改变式中求和的次序,可得
DA算法的基本思想就是用一个LUT(查表)来实现运算,则滤波结果可以相应二次幂加权并累加来实现,从而达到提高执行效率的目的。
例:无符号DA卷积
用分布式算法计算,假设3位系数值分别为c(0)=2,c(1)=3和c(2)=1,则可得LUT如下:
0
0
0
1*0+3*0+2*0=0
0
0
1
1*0+3*0+2*1=2
0
1
0
1*0+3*1+2*0=3
0
1
1
1*0+3*1+2*1=5
1
0
0
1*1+3*0+2*0=1
1
0
1
1*1+3*0+2*1=3
1
1
0
1*1+3*1+2*0=4
1
1
1
1*1+3*1+2*1=6
设x(0)=1, x(1)=3,x(2)=7
步骤
Xt(2)
Xt(1)
Xt(0)
Acc(t)
0
1
1
1
6
1
1
1
0
14
2
1
0
0
18
进行数值校验:
y=<c,x>=c(0)x(0)+c(1)x(1)+C(2)x(2)=18 √
图(3)  移位加法器DA结构
3。 FIR滤波器的MATLAB设计
3。1 设计函数
在MATLAB信号处理工具箱中,提供了基于窗函数的FIR数字滤波器设计函数.fir1是用窗函数法设计线性相位FIRDF的工具箱函数,调用格式如下:
hn=fir1(N, wc, ftype, window)
fir1实现线性相位FIR滤波器的标准窗函数法设计。标准是指在设计低通、 高通、 带通和带阻FIR滤波器时,Hd(ejω)分别取相应的理想低通、 高通、 带通和带阻滤波器,因此设计的滤波器的频率响应称为标准频率响应。
hn=fir1(N,wc)可得到6dB截止频率为wcN(单位脉冲响应h(n)长度为N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗.其单位脉冲响应h(n)h(n)=hn(n+1), n=0,1,2,…,N 而且满足线性相位条件: h(n)=h(N—1-n) 其中wc为对π归
一化的数字频率,0wc1。当wc=wc1, wc2]时,得到的是带通滤波器,其6 dB通带为wc1≤ω≤wc2
hn=fir1(N,wc,ftype)可设计高通和带阻滤波器。
ftype=high时,设计高通FIR滤波器;
ftype=stop时,设计带阻FIR滤波器。
应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1为奇数)。不过,当用户将N设置为奇数时,fir1会自动对N1
hn=fir1(N,wc,window)可以指定窗函数向量window。如果缺省window参数,则fir1默认为hamming窗。可用的其他窗函数有Boxcar, Hanning, Bartlett, Blackman, KaiserChebwin窗。这些窗函数的使用很简单(可用help命令查到),例如:
hn=fir1(N,wc,bartlett(N+1))使用Bartlett窗设计;
hn=fir1(N,wc,chebwin(N+1,R))使用Chebyshev窗设计。
hn=fir1(N,wc,ftype,window)通过选择wc ftypewindow参数(含义同上),可以设计各种加窗滤波器.

本文发布于:2024-09-25 14:25:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/95427.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设计   实现   数字   线性   函数   算法   相位   应用
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议