FIR数字滤波器设计666.docx
《FIR数字滤波器设计666.docx》由会员分享,可在线阅读,更多相关《FIR数字滤波器设计666.docx(14页珍藏版)》请在冰豆网上搜索。
FIR数字滤波器设计666
《数字信号处理》
课程设计报告
FIR数字滤波器设计及MATLAB实现
目录
一、设计目的………………………………………………………………3
二、设计任务…………………………………………………………………3
三、设计原理…………………………………………………………………3
3.1窗函数法................................................3
3.2频率采样法................................................4
3.3最优化设计.................................................5
3.3.1等波纹切比雪夫逼近准则................................5
3.3.2仿真函数..............................................6
四、设计过程…………………………………………………………………7
五、收获与体会……………………………………………………………13
参考文献………………………………………………………………………13
FIR数字滤波器设计及MATLAB实现
一、设计目的
FIR滤波器:
有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
滤波器设计是根据给定滤波器的频率特性,求得满足该特性的传输函数。
二、设计任务
FIR滤波器设计的任务是选择有限长度的
,使传输函数
满足一定的幅度特性和线性相位要求。
由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。
设计过程一般包括以下三个基本问题:
(1)根据实际要求确定数字滤波器性能指标;
(2)用一个因果稳定的系统函数去逼近这个理想性能指标;
(3)用一个有限精度的运算去实现这个传输函数。
三、设计原理
FIR滤波器设计的任务是选择有限长度的
,使传输函数
满足一定的幅度特性和线性相位要求。
由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。
设计过程一般包括以下三个基本问题:
(1)根据实际要求确定数字滤波器性能指标;
(2)用一个因果稳定的系统函数去逼近这个理想性能指标;
(3)用一个有限精度的运算去实现这个传输函数。
3.1窗函数法
设计FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。
FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应
设计一个FIR数字滤波器频率响应
,去逼近理想的滤波响应
。
然而,窗函数法设计FIR数字滤波器是在时域进行的,因而必须由理想的频率响应
推导出对应的单位取样响应
,再设计一个FIR数字滤波器的单位取样响应
去逼近
。
设计过程如下:
(3-1)
加窗的作用是通过把理想滤波器的无限长脉冲响应
乘以窗函数
来产生一个被截断的脉冲响应,即
并且对频率响应进行平滑。
MATLAB工具箱提供的窗函数有:
矩形窗(Rectangularwindow)、三角窗(Triangularwindow)、布拉克曼窗(Blackmanwindow)、汉宁窗(Hanningwindow)、海明窗(Hammingwindow)、凯塞窗(Kaiserwindow)、切比雪夫窗(Chebyshevwindow)。
窗函数主要用来减少序列因截断而产生的Gibbs效应。
但当这个窗函数为矩形时,得到的FIR滤波器幅频响应会有明显的Gibbs效应,并且任意增加窗函数的长度(即FIR滤波器的抽头数)Gibbs效应也不能得到改善。
为了克服这种现象,窗函数应该使设计的滤波器:
(1)频率特性的主瓣宽度应尽量窄,且尽可能将能量集中在主瓣内;
(2)窗函数频率特性的旁瓣ω趋于π的过程中,其能量迅速减小为零。
3.2频率采样法
频率采样法是从频域出发,根据频域采样定理,对给定的理想滤波器的频率响应
加以等间隔的抽样,得到
:
k=0,1,…,N-1(3-2)
再利用
可求得FIR滤波器的系统函数
及频率响应
。
而在各采样点间的频率响应则是其的加权内插函数延伸叠加的结果。
但对于一个
无限长的序列,用频率采样法必然有一定的逼近误差,误差的大小取决于理想频响曲线的形状,理想频响特性变换越平缓,则内插函数值越接近理想值,误差越小。
为了提高逼近的质量,可以通过在频率相应的过渡带内插入比较连续的采样点,扩展过渡带使其比较连续,从而使得通带和阻带之间变换比较缓慢,以达到减少逼近误差的目的。
选取w∈[0,2π]内N个采样点的约束条件为:
(3-3)
(1)增大阻带衰减三种方法:
1)加宽过渡带宽,以牺牲过渡带换取阻带衰减的增加。
2)过渡带的优化设计
利用线性最优化的方法确定过渡带采样点的值,得到要求的滤波器的最佳逼近(而不是盲目地设定一个过渡带值)。
3)增大N。
如果要进一步增加阻带衰减,但又不增加过渡带宽,可增加采样点数N。
代价是滤波器阶数增加,运算量增加。
直接从频域进行设计,物理概念清楚,直观方便;适合于窄带滤波器设计,这时频率响应只有少数几个非零值,但是截止频率难以控制。
典型应用:
用一串窄带滤波器组成多卜勒雷达接收机,覆盖不同的频段,多卜勒频偏可反映被测目标的运动速度;
3.3最优化设计
最优化设计方法是指采用最优化准则来设计的方法。
在FIRDF的最优化设计中,最优化准则有均方误差最小化准则和等波纹切比雪夫逼近(也称最大误差最小化)准则两种。
实际设计中,只有采用窗函数法中的矩形窗才能满足前一种最优化准则,但由于吉布斯(Gibbs)效应的存在,使其根本不能满足设计的要求。
为了满足设计的要求,可以采用其它的窗函数来消除吉布斯效应,但此时的设计已经不能满足该最优化准则了。
因此,要完成FIRDF的最优化设计,只能采用后一种优化准则来实现。
3.3.1 等波纹切比雪夫逼近准则
在滤波器的设计中,通常情况下通带和阻带的误差要求是不一样的。
等波纹切比雪夫逼近准则就是通过对通带和阻带使用不同的加权函数,实现在不同频段(通常指的是通带和阻带)的加权误差最大值相同,从而实现其最大误差在满足性能指标的条件下达到最小值。
尽管窗函数法与频率采样法在FIR数滤波器的设计中有着广泛的应用,但两者不是最优化的设计。
通常线性相位滤波在不同的频带内逼近的最大容许误差要求不同。
等波纹切比雪夫逼近准则就是通过通带和阻带使用不同的加权函数,实现在不同频段(通常指的是通带和阻带)的加权误差最大值相同,从而实现其最大误差在满足性能指标的条件下达到最小值,即使得
和
之间的最大绝对误差最小。
等波纹切比雪夫逼近是采用加权逼近误差
,它可以表示为:
(3-4)
其中,
为逼近误差加权函数在误差要求高的频段上,可以取较大的加权值,否则,应当取较小的加权值。
尽管按照FIR数字滤波器单位取样响应h(n)的对称性和N的奇、偶性,FIR数字滤波器可以分为4种类型,但滤波器的频率响应可以写成统一的形式:
(3-5)
其中,k∈{0,1},H(ω)为幅度函数,且是一个纯实数,表达式也可以写成统一的形式:
(3-6)
其中,
为ω的固定函数,
为M个余弦函数的线性组合。
3.3.2仿真函数
利用数字信号处理工具箱中的remezord和remez函数可以实现FIRDF的最优化设计。
在此先介绍这两个函数:
(1)n,fo,ao,weights=remezordf,a,dev
功能:
利用remezord函数可以通过估算得到滤波器的近似阶数n,归一化频率带边界fo,频带内幅值ao及各个频带内的加权系数weights。
输入参数f为频带边缘频率,a为各个频带所期望的幅度值,dev是各个频带允许的最大波动。
(2)h=remez(n,fo,ao,weights‘,ftype’)
功能:
利用remez函数可以得到最优化设计的FIRDF的
系数,输入参数n是滤波器的阶数,fo,ao,weights参数含义说明同
(1)。
ftype是所设计的滤波器类型,它除了可以设计普通的滤波器外,它还可以设计数字希尔钞特变换器以及数字微分器。
实际设计中,由于remezord函数可跑高估或低估滤波器的阶数n,因此在得到滤波器的系数后,必须检查其阻带最小衰减是否满足设计要求。
如果此时的技术指标不能满足设计要求,则必须提高滤波器的阶数到n+1,n+2等。
故等波纹切比雪夫逼近法设计FIR数字滤波器的步骤是:
①给出所需的频率响应
,加权函数
和滤波器的单位取样响应
的长度N。
②由①中给定的参数来形成所需的
、
和
的表达式。
③根据Remez算法,求解逼近问题。
④利用傅立叶逆变换计算出单位取样响应
。
四.程序实现
1.窗函数实现程序:
passrad=0.4*pi;
w1=boxcar(61);
w2=hamming(61)
n=1:
1:
61;
hd=sin(passrad*(n-31))./(pi*(n-31));
hd(31)=passrad/pi;
h1=hd.*rot90(w1);
h2=hd.*rot90(w2);
[mag1,rad]=freqz(h1);
[mag2,rad]=freqz(h2);
subplot(2,2,1);
plot(rad,20*log10(abs(mag1)));
gridon;
title('designedbyRectangularwindow');
subplot(2,2,2);
plot(rad,20*log10(abs(mag2)));
gridon;
title('designedbyHammingwindow');
[h1,w1]=freqz(h1,1,100,2);
subplot(2,2,3);
plot(w1,unwrap(angle(h1)));
gridon;
[h2,w2]=freqz(h2,1,100,2);
subplot(2,2,4);
plot(w2,unwrap(angle(h2)));
gridon;
图1窗函数设计的FIR低通滤波器频率响应
结果分析:
可以看出,采用特殊的窗函数如Hamming窗,可以减小Gibbs效应,但同时也会使滤波器的过度带变宽。
波动幅度取决于窗函数幅度频谱旁瓣的相对幅度,而波纹的多少取决于窗函数旁瓣的多少。
以上两点是就是窗函数直接截断Hd(n)引起的截断效应在频域的反映,截断效应直接影响滤波器的性能,因为通带内的波动会影响滤波器痛带中的平稳性,阻带内的波动则影响阻带最小衰减,因此,减少截断效应也是FIR数字滤波器设计的关键之一。
2.频率采样法实现程序:
f=[0.20.3];
a=[10];
dev=[0.040.02];%给出滤波器的参数
[nf0a0w]=remezord(f,a,dev);
N=n;
alpha=(N-1)/2;
k=0:
N-1;
wp=0.2*pi;ws=0.3*pi;%计算理想低通滤波器的截止频率
wc=(wp+ws)/2;
m=fix(wc*N/(2*pi)+1);%在两边过渡带取值为0.5的采样点
T=0.5;
Hrs=[ones(1,m),T,zeros(1,N-2*m-1),T,ones(1,m-1)];
k1=0:
floor(alpha);
k2=floor(alpha+1):
N-1;
phai=[-alpha*(2*pi)/N*k1,alpha*(2*pi)/N*(N-k2)];
H=Hrs.*exp(-j*phai);%计算单位冲激响应
h=ifft(H,N);
[h1,w1]=freqz(h,1,256,1);
hr=abs(h1);
h1=20*log10(hr);%画出FIRDF的单位取样响应
figure
(1);
k=0:
N-1;
stem(k,h,'k.')
axis([0,N-1,1.1*min(real(h)),1.1*max(real(h))]);
xlabel('n');ylabel('h(n)');
gridon;%画出FIRDF的低通衰减幅频特性
figure
(2);
plot(w1,h1);
xlabel('Normalized')
Frequency(‘(πrad/sample)’);
ylabel('Magnitude(dB)');
gridon;
图2FIR的单位取样响应
图3FIR的低通衰减幅频特性
结果分析:
图3为在间断点处增加一个过渡点后的情况。
从图4,中可以看出滤波器的带外衰减指标有了明显的改善!
但这同时增加了滤波器的过渡带宽。
所以,在带外衰减和过渡带宽这两个指标之间需要有一个折衷。
因频率取样点都局限在2π/N的整数倍点上,所以在指定通带和阻带截止频率时,这种方法受到限制,比较死板。
充分加大N,可以接近任何给定的频率,但计算量和复杂性增加。
频率采样法偏离设计指标明显,阻带衰减最小,只有适当选取过渡带样点值,才会取得较好的衰耗特性。
3.最优化设计实现程序
fs=2000; %采样频率
rp=3;%通带波纹
rs=40;%阻带波纹
f=[500600];%截止频率
a=[10];%期望的幅度
dev=[(10^(rp/20)-1)/(10^(rp/20)+1)10^(-rs/20)];
[n,fo,ao,w]=remezord(f,a,dev,fs);
b=remez(n,fo,ao,w);%调用最优设计法中remez函数
reqz(b,1,1024,fs);
图4滤波器输出的幅频及相频响应特性
结果分析:
在设计中,如果该滤波器的特性不满足要求,那么,原有参数必须作适当调整。
这在程序中很容易实现,只需对参数进行重新设定,就可以得到新条件下滤波器的特性。
采用最优化设计方法时大大减小了滤波器的阶数,从而减小了滤波器的体积,并最终降低了滤波器的成本。
这样使得设计出来的滤波器更为简单经济。
因而在实际的滤波器设计中,这种最优化方法是完全可行的。
在实际应用中,如果需要对某一信号源进行特定的滤波,并要检验滤波效果,应用传统方法实施起来比较繁琐。
在Matlab环境下,可先用软件模拟产生信号源,再设计滤波器对其进行滤波。
同样是设计一个FIR低通数字滤波器,综合分析可以看出:
(1)窗函数法在阶数较低时,阻带特性不满足设计要求,只有当滤波器阶数较高时,使用海明窗和凯塞窗基本可以达到阻带衰耗要求;
(2)频率采样法偏离设计指标最明显,阻带衰减最小,而且设计比采用窗函数法复杂。
只有适当选取过渡带样点值,才会取得较好的衰耗特性;
(3)利用等波纹切比雪夫逼近法则的设计可以获得最佳的频率特性和衰耗特性,具有通带和阻带平坦,过渡带窄等优点。
综上所述,FIR滤波器很容易实现具有严格线性相位的系统,使信号经过处理后不产生相位失真,舍入误差小,而且稳定,因此越来越受到广泛的重视。
MATLAB软件的诞生,使数字信号处理系统的分析与设计得简单,它已经成为电子工程师必备的一个工具软件。
五、收获和体会
因为这次课程设计,我重新温习了有关FIR滤波器的这部分内容,使我更加了解FIR滤波器的相关知识,并且对于MATLAB的应用更加熟练。
而且培养了我的独立思考和动手实践能力。
六、参考文献
【1】张亚妮.基于MATLAB的数字滤波器设计[J].辽宁工程技术大学学报,2005,24(5):
716-718.
【2】饶志强,叶念渝.FIR和IIR数字滤波器的探讨与实现[J].计算机与数字工程,2005,33(7):
143-146.
【3】孙强.运用MATLAB实现数字滤波器的设计[J].电脑学习,2005,
(2):
32-33.