《毕业设计(论文)基于MATLAB对窗函数设计原理的分析.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于MATLAB对窗函数设计原理的分析.doc(16页珍藏版)》请在三一办公上搜索。
1、学院:物理与机电工程学院班级:电子122班姓名:郭廷桢学号:1251001204日期:2014-12-25目 录摘要1一、MATLAB简介 2 1.1 MATLAB语言功能 2 1.2 MATLAB语言特点 2 1.3 MATLAB主要函数2二、窗函数设计原理的分析3 2.1 窗函数的产生 3 2.2 窗函数的频谱分析 5三、吉普斯效应的分析6 3.1 吉布斯现象的定义及简介6 3.2 吉布斯现象对窗函数的影响7四、 典型窗函数8 4.1典型窗函数 8 总结 9 参考文献9附录10 题目:基于MATLAB对窗函数设计原理的分析摘要: MATLAB是美国Mathworks公司于1994年推出的一
2、种面向科学与工程计算的软件,广泛应用于线性代数、高等数学、物理、电路分析、信号与系统、数字信号处理、自动控制等众多领域,是当前国际上最流行的科学与工程计算的工具软件。本文主要阐述了窗函数设计原理的推演过程,从而得出窗函数设计FIR滤波器的基本原理。并利用Matlab仿真软件强大的数值分析和图形功能来对窗函数波形及其频谱的合成进行演示,直观明了的观察窗函数时域、频域的关系,以及对其中产生的吉布斯现象做了定量的分析,从而可以进行仿真结果与理论分析结论的对比,加深了对窗函数设计FIR滤波器的理解,描述了FIR滤波器的实现性,同时也展示了用MATLAB的优点。关键字:MATLAB;仿真;图形处理;数字
3、滤波器。Topic: Analysis on the design principle of MATLAB based on window functionAbstract: MATLAB is an oriented science and engineering calculation software American Mathworks launched the company in 1994, is widely used in Linear algebra, Advanced math, Physics, Circuit analysis, Signal and system, D
4、igital signal processing, Automatic control and many other fields of science and engineering, is the most popular calculation tool software. This paper mainly expounds the deduction process design principle of window function, so that the basic principles of the window function design FIR filter. An
5、d the use of simulation software Matlab powerful numerical analysis and graphics functions to demonstrate the synthesis of window function waveform and spectrum, the relationship between the observation window function in time domain, frequency domain is simple and clear, and the Gibbs phenomenon ma
6、kes quantitative analysis, contrast and can carry on the simulation results and the theoretical analysis conclusion, deepen the window function design FIR filter understanding, describes the implementation of FIR filter, but also shows the advantages of using MATLAB.Keywords: MATLAB; Simulation; Ima
7、ge processing; Digital filter.一、 MATLAB简介 1.1 MATLAB语言功能 MATLAB功能丰富,可扩展性强。MATLAB软件包括基本部分和专业扩展两大部分的功能。基本部分包括:矩阵的运算和各种变换;代数和超越方程的求解;数据处理和傅立叶变换;数值部分等等,可以充分满足大学理工科本科的计算需要。扩展部分称为工具箱。它实际上是用MATLAB的基本语句辩称的各种子程序集,用于解决某一方面的专门问题,或实现某一类的新算法。 MATLAB 具有以下基本功能 (1) 数值计算功能; (2) 符号计算功能; (3) 图形处理及可视化功能; (4) 可视化建模及动态仿真
8、功能。1.2 MATLAB语言特点 MATLAB 给用户带来的是最直观,最简洁的程序开发环境。它具有以下特点: (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB 程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。 (2)运算符丰富。由于MATLAB 是语言编写的,MATLAB 提供了和C语言几乎一样多的运算符,灵活使用MATLAB 的运算符将使程序变得极为简短。 (3)MATLAB 既具有结构化的控制语句,又有面向对象编程的特性。 (4)程序限制不严格,程序设计自由度大。例如,在MA
9、TLAB 里,用户无需对矩阵预定义就可使用。 (5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。 (6)功能强大的工具箱是MATLAB 的另一特色。MATLAB 包含两个部分: 核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数在使用MATLAB语言进行编程过程中,根据题目设计要求,需要用到得主要函数语言有clear,figure,plot,hamming,fft,axis,abs等。 abs用于求函数的绝对值,是为了保证所得的频谱图在横坐标上方 1.3 MATLAB主要函数1) clear用于从内存中清除变量和函数。 2) figure即创建图形窗口的
10、命令,每执行一次figure命令就创建一个图形窗口,相应的会生成该图形窗口的句柄以留给句柄函数调用。 3) plot用于绘出函数图,plot(x,y),其中x为横坐标,y为纵坐标,且x,y一般为一维的。 4) hamming 用于产生哈明窗,产生一个长度为n的哈明窗函数。 5) fft为快速傅立叶变换函数,是dft的简化过程,一般格式为fft(x,N),其中x为所求频谱的函数, N点DFT就是对信号的频谱在0-fs(fs指采样频率)上的N点等间隔采样,那么频谱分辨率df=fs/N,也是有限长序列的长度。 6) axis为人工选择坐标轴尺寸命令。二、窗函数设计原理的分析 2.1 窗函数的产生 设
11、希望设计的滤波器传输函数为Hd(ej),hd(n)是与其对应的单位脉冲响应,因此 一般以理想滤波器作为Hd(ej),即: 相应的单位取样响应hd(n)为 为了构造一个长度为N的线性相位滤波器,只有将hd(n)截取一段,并保证截取的一段对(N-1)/2对称。设截取的一段用h(n)表示,即h(n)=hd(n)RN(n)我们实际实现的滤波器的单位取样响应为h(n),长度为N,其系统函数为H(z),图1 理想低通的单位脉冲响应及矩形窗 则hd(n)的频谱如下:图2 幅频响应函数曲线图3 损耗函数曲线从上图看出的频谱具有吉普斯效应。2.2 窗函数的频谱分析 由h(n)=hd(n)RN(n),即时域相乘对
12、应频域卷积;得h(n)的频谱是由hd(n)的频谱和RN(n)的频谱卷积而成的。如下图所示:时域图像连续离散周期非周期频域图像非周期周期离散连续图4 时域频域对应关系 图5 各序列对应的频谱三、吉普斯效应的分析3.1 吉布斯现象的定义及简介 将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项 进行合成。以有限项傅式级数去近似代替无限项傅氏级数,这样在一些不连续点 附近会引起较大误差。为减少这一效应同样是用窗函数法。当选取的项数越多, 在所合成的波形中出现的峰起越靠近原信号的不连续点。当选取的项数很大时, 该峰起值趋于一个常数,大约等于总跳变值的 9%。这种现象称为吉布斯效应。
13、 吉布斯现象是当用信号的谐波分量的和来表述具有间断点的波形时出现,并 能观察。 (1) 信号中频率较低的谐波分量的幅值较大,占主体地位,信号波形中 所含的频率 布斯现象越突出。 (2) 当截取窗变长时,跳变峰向间断点靠近,但跳 变峰值并未明显减小,跳变峰所包围的面积减小,通过 matlab 使这种吉布斯现象 得到清楚的表现。 下面求 h(n) 的傅立叶变换,也就是找出待求 FIR 滤波器的频率特性,以便看 出加窗处理后究竟对频率响应有何影响。 根据复卷积公式,在时域在时域相乘,则在频域是周期性卷积。图5 吉普斯效应图6 局部曲线3.2 吉布斯现象对窗函数的影响 结论: 加窗处理对理想矩形频率响
14、应产生以下几点影响。 1) 使理想频率特性不连续点处边沿加宽,形成一个过渡带,过渡带宽等于窗 的频率响应 RN ( w) 的主瓣宽度 4 / N 。 2) 带内增加了波动,最大的峰值在 wc - 2 / N 处。阻带内产生了余振,最大的负峰在wc + 2 / N处。通带与阻带中波动的情况与窗函数的幅度谱有关。RN ( w) 波动愈快(加大时),通带、阻带内波动愈快, RN ( w) 旁瓣的大小直接影响R ( w) 波动的大小。3) 改变截取长度 N,只能改变窗谱的主瓣宽度、 w 的坐标比例以及改变RN ( w) 的绝对值大小,但是不能改变主瓣与旁瓣的相对比例。这个比例是由窗函数的形状来决定的四
15、、典型窗函数4.1典型窗函数窗函数类型旁边峰值/dB过渡带阻带最小衰减/dB矩形窗-134-21三角窗-258-25汉宁窗-318-44哈明窗-418-53表 典型窗函数的基本参数下图为N=21的窗函数图6 典型窗函数下图为为各类窗函数对应的损耗函数曲线图7 典型窗函数归一化频率结论在本次课程设计中,学会了很多,例如会强迫自己动手,整合思路,查找资料,为己所用。平时所学的理论知识只是基础,真正应用软件做设计的时候才能知道自己的局限性。一味停留在老师的教学中自己能做的实在是少之又少。老师只是在较高的层次上为我们的学习指明道路。至于具体的某个程序要怎么编写,某个错误要怎么处理,不可能手把手的交给自
16、己。所以我们就应该学会利用资料,首先就是互联网,然后是图书馆。由于本次课程设计的时间有限,最合理的资料应该是互联网,快速,方便。搜集到资料以后不能照抄,应该仔细阅读,读懂,然后根据自己的要求改变程序、参数。总之,只有自己知道怎么学习,才能知道怎么自己动手。还有就是,在具体的方面,我的收获是更深的了解了MATLAB这个软件,熟悉了MATLAB在绘图,FIR数字滤波器方面的应用。参考文献1) 数字信号处理(第三版),高西全、丁玉美编著2) MATLBA及在电子信息类课程中的应用(第二版),唐向宏、岳恒立、郑雪峰编著附录(程序)程序1M=30;wc=pi/4;n=-10:M+10;r=(M-1)/2
17、;nr=n-r+eps*(n-r)=0);hdn=sin(wc*nr)/pi./nr;stem(n,hdn,.);axis(-10,40,-0.1,0.3);grid on;xlabel(n);ylabel(h(n);title(h(n);程序2n=0:29;N=(n-29)=0;stem(n,N,.);gridaxis(-10,40,-0.2,1.2);xlabel(n);ylabel(R_N(n);title(R_N(n)函数);程序3M=30;wc=pi/4;n=-0:M-1;r=(M-1)/2;nr=n-r+eps*(n-r)=0);hdn=sin(wc*nr)/pi./nr;wn1=
18、boxcar(M);hn1=hdn.*wn1;stem(n,hn1,.);axis(-10,40,-0.1,0.3);grid on;xlabel(n);ylabel(h_d(n);title(h_d(n)函数图象);程序4M=30;wc=pi/4;n=-0:M-1;r=(M-1)/2;nr=n-r+eps*(n-r)=0);hdn=sin(wc*nr)/pi./nr;wn1=boxcar(M);hn1=hdn.*wn1;hw=fft(hdn,2048);w=2*0:2047/2048;plot(w,(abs(hw);grid onaxis(0,1,-0.1,1.2);xlabel(w/);y
19、label(幅度/dB);title(b)幅频响应函数曲线)程序5M=30;wc=pi/4;n=-0:M-1;r=(M-1)/2;nr=n-r+eps*(n-r)=0);hdn=sin(wc*nr)/pi./nr;wn1=boxcar(M);hn1=hdn.*wn1;hw=fft(hdn,2048);w=2*0:2047/2048;plot(w,20*log10(abs(hw);grid onaxis(0 1 -50 5);xlabel(w/);ylabel(幅度/dB);程序6M=30;wc=pi/4;n=-1000:M+970;r=(M-1)/2;nr=n-r+eps*(n-r)=0);h
20、dn=sin(wc*nr)/pi./nr;hw=fft(hdn,2048);w=2*0:2047/2048;hw1=fliplr(hw),hw(2:n);w1=-fliplr(w),w(2:n);plot(w,(abs(hw),w1,(abs(hw1);axis(-1,1,-0.1,1.5);grid on;xlabel(w/);ylabel(幅度);title(频谱)程序7n=0:29;N=(n-29)=0;hw=fft(N,180);w=2*0:179/180;hw1=fliplr(hw),hw(2:n);w1=-fliplr(w),w(2:n);plot(w,(abs(hw),w1,(a
21、bs(hw1);axis(-1,1,-0.1,30);grid on;xlabel(w/);ylabel(幅度);title(频谱)程序8M=30;wc=pi/4;n=-0:M-1;r=(M-1)/2;nr=n-r+eps*(n-r)=0);hdn=sin(wc*nr)/pi./nr;wn1=boxcar(M);hn1=hdn.*wn1;hw=fft(hdn,2048);w=2*0:2047/2048;hw1=fliplr(hw),hw(2:n);w1=-fliplr(w),w(2:n);plot(w,(abs(hw),w1,(abs(hw1);grid onaxis(-1,1,-0.1,1.
22、2);xlabel(w/);ylabel(幅度/dB);title(b)幅频响应函数曲线)程序9Nwin=21;n=0:Nwin-1; w1=boxcar(Nwin); stext=矩形窗;w2=hanning(Nwin); stext=汉宁窗; w3=hamming(Nwin); stext=海明窗; w4=triang(Nwin); stext=三角窗; subplot(221);stem(n,w1); hold on plot (n,w1,r); xlabel(n);ylabel(w(n);title(stext); subplot(222);stem(n,w2); hold on pl
23、ot (n,w2,r); xlabel(n);ylabel(w(n);title(stext); subplot(223);stem(n,w2); hold on plot (n,w3,r); xlabel(n);ylabel(w(n);title(stext); subplot(224);stem(n,w4); hold on plot (n,w4,r); xlabel(n);ylabel(w(n);title(stext); 程序10Nwin=21;Nf=512;w1=boxcar(Nwin); stext1=矩形窗;w2=hanning(Nwin); stext2=汉宁窗; w3=ham
24、ming(Nwin); stext3=海明窗; w4=triang(Nwin); stext4=三角窗;y,f=freqz(w1,1,Nf); mag=abs(y);subplot(221); plot(f/pi,20* log10(mag/max(mag); xlabel(归一化频率);ylabel(振幅/dB); title(stext1);grid on; y,f=freqz(w2,1,Nf); mag=abs(y);subplot(222); plot(f/pi,20* log10(mag/max(mag); xlabel(归一化频率);ylabel(振幅/dB); title(stext2);grid on; y,f=freqz(w3,1,Nf); mag=abs(y);subplot(223); plot(f/pi,20* log10(mag/max(mag); xlabel(归一化频率);ylabel(振幅/dB); title(stext3);grid on; y,f=freqz(w4,1,Nf); mag=abs(y);subplot(224); plot(f/pi,20* log10(mag/max(mag); xlabel(归一化频率);ylabel(振幅/dB); title(stext4);grid on;