FIR滤波器的原理及设计.docx
- 文档编号:904640
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:15
- 大小:843KB
FIR滤波器的原理及设计.docx
《FIR滤波器的原理及设计.docx》由会员分享,可在线阅读,更多相关《FIR滤波器的原理及设计.docx(15页珍藏版)》请在冰豆网上搜索。
FIR滤波器的原理及设计
选题2实验讲义
实验名称:
基于分布式算法的FIR滤波器设计
1.数字滤波器基础知识
数字滤波是信号与信号处理领域的一个重要分支,在语音图像处理、模式识别、谱分析、无线通信等领域都有着非常广泛的应用。
通过滤波运算,将一组输入数据序列转变为另一组输出数据序列,从而达到修正时域或频域中信号属性的目的。
数字滤波器就是用于完成这种信号滤波功能,用有限精度算法来实现的一种离散时间线性时不变(LTI)系统。
相比于模拟滤波器,数字滤波器具有以下优点:
(1)数字滤波器的频域特性容易控制,性能指标优良;
(2)数字滤波器可以工作在极低的频率,可以方便地实现模拟滤波器难以实现的线性相位系统;(3)数字滤波器工作稳定,一般不会受到外部环境的影响;(4)数字滤波器的灵活性和可重用性高,只需要简单编程就可以修改滤波器的特性,设计周期短。
数字滤波器的实现可以采用专用DSP芯片,通过编写程序,利用软、硬件结合完成滤波器设计,也可以采用市面上通用的数字滤波器集成电路来实现,但这两种方法无法适应高速应用场合。
随着集成电路技术的高速发展,FPGA应用越来越普及,FPGA器件具有芯片密度大、执行效率高,速度快,集成度高等优点,用FPGA芯片作为滤波器的设计载体,可以实现高速信号滤波功能。
1.1FIR数字滤波器特点
数字滤波器通常分为IIR(无限冲激响应)和FIR(有限冲激响应)两种。
FIR滤波器具有以下特点:
(1)可以做成严格的线性相位,同时又可以具有任意的幅度特性
(2)单位冲激响应是有限长的,所以一定是稳定的,因此在实际中得到广泛的应用。
1.2FIR滤波器结构
设FIR滤波器的单位冲激响应为
,
,
系统函数
差分方程形式为:
(1)
基本结构(直接型):
图
(1)FIR滤波器的基本结构
1.3结构简化
当FIR滤波器具有严格线性相位时,
满足
或
设N为偶数,令
则
(1)式可以简化为:
(2)
与
(1)相比,所需乘法器数量降为原来的一半。
图
(2)简化乘法器数量的线性相位滤波器
1.4设计规模的改进
当滤波器的长度N增加时,可将求和分配到几个独立的M阶并行DA的LUT中。
以
(1)式为例,设
,
这样,长度为N的滤波器实现可以分解为L个长度为M的滤波器,可运用流水线加法器累加结果。
2.分布式算法
在很多DSP应用场合中,滤波器系数一般为常数,在这种情况下,可以利用分布式(DistributedAlgorithm,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=
(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截止频率为wc的N阶(单位脉冲响应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为对π归一化的数字频率,0≤wc≤1。
当wc=[wc1,wc2]时,得到的是带通滤波器,其6dB通带为wc1≤ω≤wc2。
hn=fir1(N,wc,′ftype′)可设计高通和带阻滤波器。
当ftype=high时,设计高通FIR滤波器;
当ftype=stop时,设计带阻FIR滤波器。
应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1为奇数)。
不过,当用户将N设置为奇数时,fir1会自动对N加1。
hn=fir1(N,wc,window)可以指定窗函数向量window。
如果缺省window参数,则fir1默认为hamming窗。
可用的其他窗函数有Boxcar,Hanning,Bartlett,Blackman,Kaiser和Chebwin窗。
这些窗函数的使用很简单(可用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、ftype和window参数(含义同上),可以设计各种加窗滤波器。
Fir2可以指定任意形状的Hd(ejω),用help命令查阅其调用格式。
3.2FDATOOL使用
fdatool(filterdesign&analysistool)是matlab信号处理工具箱里专用的滤波器设计分析工具,fdatool可以灵活地采用不同方法设计几乎所有的经典滤波器,查看滤波器的各种指标,并得到所设计滤波器的系数。
在MATLAB的命令窗口输入:
fdatool命令,会出现图(4)所示界面,界面总共分两大部分,一部分是designfilter,在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。
designfilter部分主要分为:
Responsetype(滤波器类型)选项,包括lowpass(低通)、highpass(高通)、bandpass(带通)、bandstop(带阻)和特殊的fir滤波器。
designmethod(设计方法)选项,包括iir滤波器的butterworth(巴特沃思)法、chebyshevtypei(切比雪夫i型)法、chebyshevtypeii(切比雪夫ii型)法、elliptic(椭圆滤波器)法和fir滤波器的equiripple法、least-squares(最小乘方)法、window(窗函数)法。
filterorder(滤波器阶数)选项,定义滤波器的阶数,包括specifyorder(指定阶数)和minimumorder(最小阶数)。
在specifyorder中填入所要设计的滤波器的阶数(n阶滤波器,specifyorder=n-1),如果选择minimumorder则matlab根据所选择的滤波器类型自动使用最小阶数。
frequencyspecifications选项,可以详细定义频带的各参数,包括采样频率fs和频带的截止频率。
它的具体选项由filtertype选项和designmethod选项决定,例如bandpass(带通)滤波器需要定义fstop1(下阻带截止频率)、fpass1(通带下限截止频率)、fpass2(通带上限截止频率)、fstop2(上阻带截止频率),而lowpass(低通)滤波器只需要定义fstop1、fpass1。
采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。
magnitudespecifications选项,可以定义幅值衰减的情况。
例如设计带通滤波器时,可以定义wstop1(频率fstop1处的幅值衰减)、wpass(通带范围内的幅值衰减)、wstop2(频率fstop2处的幅值衰减)。
当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。
windowspecifications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种常用的窗函数类型。
图(4)滤波器设计分析界面
例:
设计方法(DesignMethod)为FIR,采用窗口法(Window);
✧滤波器阶数(FilterOrder)定制为15;
✧窗口类型为Kaiser,Beta为0.5;
✧Fs为48kHz,Fc为10.8kHz。
设置好后的界面如图(5)所示。
图(5)设计界面
计算完FIR滤波器系数后,往往需要对设计好的FIR滤波器进行相关的性能分析,以便了解该滤波器是否满足设计要求。
分析操作步骤如下:
(1)选择FDATool的菜单“Analysis”→“MagnitudeResponse”,启动幅频响应分析。
图(6)显示了滤波器的幅频响应图,x轴为频率,y轴为幅度值(单位为dB)。
在图的左侧列出了当前滤波器的相关信息:
滤波器类型为DirectformFIR(直接I型FIR滤波器);滤波器阶数为15。
图(6)滤波器的幅频响应图
选择菜单“Analysis”→“PhaseResponse”,启动相频响应分析。
图(7)显示了滤波器的相频响应。
由图可以看到设计的FIR滤波器在通带内其相位响应为线性的,即该滤波器是一个线性相位的滤波器。
图(8)显示了滤波器幅频特性与相频特性的比较。
这可以通过菜单选择“Analysis”→“Magnitude&PhaseResponse”来启动分析。
选择菜单“Analysis”→“GroupDelayResponse”,启动群延时分析,波形如图(9)所示。
图(7)相频响应
图(8)幅频响应与相频响应的比较
图(9)FIR滤波器的群延时
求出的FIR滤波器的系数可以通过选择菜单“Analysis”→“FilterCoefficients”来观察,见图(10)。
图中列出了FDATool计算的15阶直接I型FIR滤波器的部分系数。
图(10)FIR滤波器系数
(5)量化
从图(10)可以看到,FDATool计算出的值是一个有符号小数,而FIR滤波器模型需要一个整数作为滤波器系数。
所以必须进行量化,并对得到的系数进行归一化。
为此,点击FDATool左下侧的工具按钮进行量化参数设置。
在设置“Turnquantizationon”前选择“√”,如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FIR 滤波器 原理 设计