数字信号处理课程设计.docx
《数字信号处理课程设计.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
数字信号处理课程设计
山东工商学院
数字信号处理课程设计
题目:
有限冲击响应数字滤波器设计
姓名:
李迎
学号:
联系方式:
指导老师:
目录
目录---------------------------------------------01
摘要---------------------------------------------02
关键词---------------------------------------------04
引言---------------------------------------------05
正文
1.常见窗体函数简介--------------------------------06
1.1.海明窗函数----------------------------------06
1.2.布莱克曼窗函数------------------------------07
1.3.凯塞窗---------------------------------08
2.数字滤波器设计的基本步骤-------------------------11
3.窗函数法设计FIR滤波器的MATLAB仿真--------------11
4.具体FIR低通滤波器的设计
4.1.用海明窗设计--------------------------------13
4.2.用布拉克曼窗设计----------------------------14
4.3.用凯塞窗设计--------------------------------15
5.结论---------------------------------------------16
6.参考文献-----------------------------------------16
摘要
现代图像、语音、数据通信对线性相位的要求是普遍的。
正是因为如此,使得具有线性相位的FIR数字滤波器得到大力发展和广泛应用。
在实际进行数字信号处理时,往往需要把信号的观察时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析。
这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作。
而这样操作以后,常常会发生频谱分量从其正常频率扩展开来的现象,即所谓的“频率泄露”。
当其进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。
而要对频谱泄漏进行抑制,可以通过窗函数加权抑制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。
而在后面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列。
另外,在功率谱估计中也要遇到窗函数加权问题。
由此可见,窗函数加权技术在数字信号处理中的重要地位。
Abstrack
Themodernimage,sound,anddatacommunicationstolinearphaserequirementsarecommon.Becauseofthis,thathaslinearphaseFIRdigitalfilterstogetadevelopmentandthewidespreadapplication.
Inthepracticaldigitalsignalprocessing,oftenneedtosignalobservationtimelimitinacertaintimeintervals,onlyneedtochooseatimesignalontheanalysis.So,takewithlimiteddata,istheprocessoftruncatedsignaldata,aswillsignalisaddedawindowfunctionoperation.Andsoafteroperation,oftenhappenspectrumcomponentfromitsnormalfrequencyspreadphenomenon,theso-called"frequencyleak".WhenthediscreteFouriertransform,thetimedomaintruncationisnecessary,soleakageeffectisalsothediscreteFouriertransformtheinherent,mustberestrained.Andtothefrequencyspectrumleakagecontrol,canthroughthewindowfunctionweightedinhibittheDFTequivalentofamplitudecharacteristicsoffiltervicedisc,orwithwindowfunctiontothelengthoftheweightedlimitedinputsignalperiodaftertheextensioninthebordertoreduceasfaraspossiblethedegreeofdiscontinuousmethod.AndinthebackoftheFIRfiltersdesign,toacquirelimitedlongunitsamplingresponse,needtousethewindowfunctiontruncationinfinitelongunitsamplingresponsesequence.Inaddition,inthepowerspectrumestimationtomeetawindowfunctionandweightedproblem.Thisshows,windowfunctionweightedtechnologyinthedigitalsignalprocessingtotheimportantposition.
关键词:
中文:
有限冲击响应数字滤波器
FIR低通滤波器
窗函数设计法
English:
Limitedshockresponsedigitalfilter
Windowfunctiondesignmethod
FIRlow-passfilter
引言
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
FIR(FiniteImpulseResponse)滤波器:
有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
1.常见窗函数简介
1.1.海明窗函数
海明窗函数的时域形式可以表示为
它的频域特性为
其中,
为矩形窗函数的幅度频率特性函数。
海明窗函数的最大旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是一样大的。
Hamming函数:
生成海明窗
调用方式
(1)w=hamming(n):
输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
(2)w=hamming(n,sflag):
参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric。
图5-5海明窗及其频谱特性
应用说明
例:
生成一个长度为50的海明窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-5所示。
程序
n=51;
window=hamming(n);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plot(w/pi,20*log(abs(h)/abs(h
(1))));
1.2.布莱克曼窗函数
布莱克曼窗函数的时域形式可以表示为
它的频域特性为
其中,
为矩形窗函数的幅度频率特性函数。
布莱克曼窗函数的最大旁瓣值比主瓣值低57dB,但是主瓣宽度是矩形窗函数的主瓣宽度的3倍,为12π/N。
Blackman函数:
生成海明窗
调用方式
(1)w=blackman(n):
输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
(2)w=blackman(n,sflag):
参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric。
图5-6布莱克曼窗及其频谱特性
应用说明
例:
生成一个长度为50的布莱克曼窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-6所示。
程序
n=51;
window=blackman(n);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plot(w/pi,20*log(abs(h)/abs(h
(1))));
1.3.凯塞窗
上面所讨论的几种窗函数,在获得旁瓣抑制的同时却增加了主瓣的宽度。
而凯塞窗定义了一组可调的窗函数,它是由零阶贝塞尔函数构成的,其主瓣能量和旁瓣能量的比例是近乎最大的。
而且,这种窗函数可以在主瓣宽度和旁瓣高度之间自由选择它们的比重,使用户的设计变得非常灵活。
凯塞窗函数的时域形式可表示为
其中,
是第1类变形零阶贝塞尔函数,
是窗函数的形状参数,由下式确定:
其中,
为凯塞窗函数的主瓣值和旁瓣值之间的差值(dB)。
改变β的取值,可以对主瓣宽度和旁瓣衰减进行自由选择。
β的值越大,窗函数频谱的旁瓣值就越小,而其主瓣宽度就越宽。
Kaiser函数:
生成凯塞窗
调用方式
图5-7不同beta系数凯塞窗的比较结果图
w=kaiser(n,beta):
输入参数n是窗函数的长度;输入参数beta用于控制旁瓣的高度;输出参数w是由窗函数的值组成的n阶向量。
n一定时,beta越大,其频谱的旁瓣就越小,但主瓣宽度相应的增加;当beta一定时,n发生变化,其旁瓣高度不会发生变化。
应用说明
例1:
beta的取值影响频谱的旁瓣高度与主瓣宽度,结果如图5-7所示。
程序
n=50;
w1=kaiser(n,1);
w2=kaiser(n,4);
w3=kaiser(n,9);
[W1,f]=freqz(w1/sum(w1),1,512,2);
[W2,f]=freqz(w2/sum(w2),1,512,2);
[W3,f]=freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs(W1)),f,20*log10(abs(W2)),':
',f,20*log10(abs(W3)),'*');
图5-8不同长度凯塞窗的比较结果图
legend('beta=1','beta=4','beta=9');
例2:
beta一定而n发生变化时不会影响频谱的旁瓣高度,结果如图5-8所示。
程序
w1=kaiser(20,4);
w2=kaiser(60,4);
w3=kaiser(90,4);
[W1,f]=freqz(w1/sum(w1),1,512,2);
[W2,f]=freqz(w2/sum(w2),1,512,2);
[W3,f]=freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs(W1)),f,20*log10(abs(W2)),':
',f,20*log10(abs(W3)),'-.');
legend('n=20','n=60','n=90');
2.数字滤波器设计的基本步骤
(1)确定指标。
在设计一个滤波器之前,必须首先根据工程实际需要确定滤波器的技术指标。
在很多实际应用中,数字滤波器常常被用来实现选频操作。
因此,指标的形式一般在频域中给出幅度响应和相位响应。
幅度指标主要以两种方式给出。
第一是绝对指标,它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。
第二种指标是相对指标。
它以分贝值的形式给出要求,在工程实际中,比较受到欢迎。
对于相位响应指标形式,通常希望系统在通频带中仍然有线性相位。
运用线性相位响应的指标进行滤波器设计具有如下优点:
①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。
(2)逼近。
确定了技术指标后,就可以建立一个目标的数字滤波器模型。
通常采用理想的数字滤波器模型。
之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。
(3)性能分析和计算机仿真。
上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。
根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求,或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。
3.窗函数法设计FIR滤波器的MATLAB仿真
MATLAB是一套用于科学计算的可视化高性能语言与软件环境。
它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。
它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个优秀的算法研究与辅助设计的工具。
对于线性相位FIR滤波器通常采用窗函数法设计。
窗函数设计FIR滤波器基本思想,就是从时域出发,把理想的无限长的
用一定形状的窗函数截取成有限长的
,以此
来逼近
,从而使所得到的频率响应
与所要求的理想频率响应
相接近。
理想的数字滤波器频率特性
是无法实现的,FIR的设计就是要寻找一个可以得到的频率特性
来逼近
,
这相当于用一个可实现的单位脉冲响应
去逼近一个理想单位脉冲响
。
要想用一个有限长的因果序列去逼近它,最简单的方法是截取n从0~N-1的一段来表示它,即:
(0≦n≦N-1);当n为其他的数时,
=0。
同时,为了保证线性相位,还要满足偶对称:
,这就好像通过一个窗口观看到的一段
,因此
就表示成
和一个“窗口函数”的乘积。
这样,对
的求解就变为:
这里的
就称为窗口函数。
窗口函数相当于对
在时域上截取一段,势必造成频域的矩形窗口的失真,结果就是截取出的信号也相应失真。
为了补偿这种失真,只有改变原来窗
口的形状,修正经过时域截取后的窗口失真。
改善窗口函数的标准:
(1)尽量减少窗口频谱的旁瓣,使能量集中在主瓣中,以减少波动的幅度和次数,提高阻带衰减。
这样,主瓣就不能太窄;
(2)主瓣的宽度应尽量窄,以得到尽量窄的过渡带。
工程中常用的窗函数有以下六种:
矩形窗,三角形窗,汉宁窗,汉明窗,布莱克曼窗,凯泽窗(可变窗函数)。
表1为六种窗函数的性能指标。
表1常用窗函数的性能指标
4.具体FIR低通滤波器的设计:
用窗函数设计法设计一个FIR低通滤波器。
只是如下:
用海明窗、布拉克曼窗、凯塞窗分别设计FIR低通滤波器,通带边界频率
,阻带边界频率
,阻带衰减不小于50dB。
4.1.用海明窗设计
wn=hamming(36);
nn=[0:
1:
35];
alfa=(36-1)/2;
hd=sin(0.4*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps));
h=hd.*wn';
[h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-100,10]);
grid;
xlabel('归一化频率/pi');
ylabel('幅度/dB');
4.2.用布拉克曼窗设计
wn=blackman(55);
nn=[0:
1:
54];
alfa=(55-1)/2;
hd=sin(0.4*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps));
h=hd.*wn';
[h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-100,10]);
grid;
xlabel('归一化频率/p');
4.3.用凯塞窗设计
wn=kaiser(51,7.856);
nn=[0:
1:
50];
alfa=(51-1)/2;
hd=sin(0.4*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps));
h=hd.*wn';
[h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-100,10]);
grid;
xlabel('归一化频率/p');
ylabel('幅度/dB');
5.结论:
由题目要求阻带衰减
不小于50dB,查表知,设计此低通滤波器符合的函数有海明窗函数,布拉曼窗函数,凯塞窗函数。
Wp=0.3*pi,Wst=0.5*pi,得Wc=(0.3*pi+0.5*pi)=0.4*pi
有设计结果得出低通滤波器频率特性曲线与0.5*pi处交点低于-50db满足题目要求。
由结果分析知海明窗在阻带最高频率0.5*pi后的衰减程度小于布拉克曼窗和凯塞窗。
所以布拉克曼窗与凯塞窗都比海明窗要好。
6.参考文献:
《数字信号处理教程》(第三版)清华大学出版社陈佩青
《数字信号处理及MATLAB实现》北京机械工业出版社李辉主
《MATLAB辅助现代工程数字信号处理》西安电子科技大学出版社李益华