基于matlab的fir滤波器的设计课程设计.doc_第1页
基于matlab的fir滤波器的设计课程设计.doc_第2页
基于matlab的fir滤波器的设计课程设计.doc_第3页
基于matlab的fir滤波器的设计课程设计.doc_第4页
基于matlab的fir滤波器的设计课程设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告题 目 基于MATLAB的FIR滤波器的设计 学 院 信 息 工 程 学 院 专 业 电子信息工程 摘要数字滤波技术是数字信号处理的一个重要组成部分, 滤波器的设计是信号处理的核心问题之一。根据 FIR 滤波器的原理, 提出了 FIR 滤波器的窗函数设计法, 并对常用的几种窗函数进行了比较。给出了在 MATLAB 环境下, 用窗函数法设计 FIR 滤波器的过程和设计实例。仿真结果表明,设计的 FIR 滤波器的各项性能指标均达到了指定要求, 设计过程简便易行。该方法为快速、 高效地设计 FIR 滤波器提供了一个可靠而有效的途径。FIR数字滤波器以其良好的线性特性被广泛应用于现代电子通信系统中,是数字信号处理的重要内容之一。在实际信号处理中,往往要求系统兼具实时性和灵活性,而已有的一些软件或硬件实现方案(如DSP)则难以同时达到这两方面的要求。使用具有并行处理特性的FPGA来实现FIR滤波器,既有很强的实时性,又兼顾了灵活性,为数字信号处理提供了一种很好的解决方案。FIR滤波器系数计算较为繁琐,在设计时借助Matlab工具箱,选择合适的窗函数,可以方便地计算滤波器系数,并分析其幅频、相频特性。设计目的(1) 掌握用窗函数法设计FIR数字滤波器的原理与方法。(2) 熟悉线性相位FIR数字滤波器的特性。(3) 了解各种窗函数对滤波特性的影响。FIR 滤波器的简介和原理FIR数字滤波器的特点(与IIR数字滤波器比较): 优点 :(1)很容易获得严格的线性相位, 的信号 产生相位失真,这一特点在 宽频带信 号处理、阵 列信号处理、数据传输等系统中 非常重要;(2 )可得到多带幅频特性;(3 )极点全部在原点(永远稳定),无稳定 性问题;(4 )任何一个非因果的有限长序列,总可以通过一 定的延时,转变为因果序列, 所以因果性总是满足;(5)无反馈运算,运算误差小。缺点:(1)因为无极点,要获得好的过渡带特性,需以较高的阶数为代价;(2)无法利用模拟滤波器的设计结果,一般无解析设计公式,要借助计算机辅助设计程序完成。FIR 滤波器具有严格的相位特性,返对于诧音信号处理和数据传输是很重要的前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计法。本设计中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要丌高的时候是比较灵活方便的。 如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件, 滤波器就具有准确的线性相位, 第一种:偶对称,h(n)=h(N-1-n), ()=-(N-1) /2 第二种:奇对称,h(n)=-h(N-1-n), ()=-(N-1) /2 +pi/2 对称中心在n=(N-1)/2处, 根据以上对称条件,可以将FIR滤波器分为4种: h(n), evenly symmetric, odd N h(n), evenly symmetric, even N, 3 h(n), oddly symmetric, odd N, h(n), oddly symmetric, even N,典型的窗函数(1)矩形窗(Rectangle Window) 其频率响应和幅度响应分别为:, (2)三角形窗(Bartlett Window) 其频率响应为: (3)汉宁(Hanning)窗,又称升余弦窗 其频率响应和幅度响应分别为:(4)海明(Hamming)窗,又称改进的升余弦窗 其幅度响应为: (6)凯泽(Kaiser)窗 其中:是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,越大,过渡带越宽,阻带越小衰减也越大。I0()是第一类修正零阶贝塞尔函数。5 种窗函数性能比较窗类型 旁瓣峰值 主瓣峰值 最小阻带衰减矩形窗13dB4/M21dB三角窗25dB8/M25dB汉宁窗31dB8/M44dB海明窗41dB8/M53dB凯泽窗57dB12/M74dB用窗函数设计FIR滤波器的基本方法设计思想:从时域从发,设计逼近理想。设理想滤波器的单位脉冲响应为。以低通线性相位FIR数字滤波器为例。 一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即 用矩形窗设计的FIR低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs)效应。为了消除吉布斯效应,一般采用其他类型的窗函数。使用窗函数法设计时要满足以下两个条件:( 1) 窗谱主瓣尽可能地窄, 以获得较陡的过渡带;( 2) 尽量减少窗谱的最大旁瓣的相对幅度, 也就是使能量尽量集中于主瓣, 减小峰肩和纹波, 进而增加阻带的衰减。设计步骤a.录制一段自己的语音信号,并对录制的信号进行采样。b.画出采样后语音信号的时域波形和频谱图。c.噪声的添加。d.给出滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应。e.设计滤波器并对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。f.回放语音信号。g.设计一个GUI界面(选做)。(a)语音信号的采集利用Windows下的录音机,录制一段自己的话音,时间在2 s内。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。代码:y,fs,bits=wavread(zyb.wav,1024 63500);sound(y,fs,bits);(b)语音信号的频谱分析首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。代码:Y=fft(y,4096); figure(1); plot(y);title(语音信号的时域波形); figure(2); plot(abs(Y);title(语音信号的频谱特性); (c)利用特定的函数产生噪声。代码:t=0:0.2:10;y1=awgn(y,10,measured);Y1=fft(y1,4096);figure(3);plot(y1);title(加噪语音信号的时域波形);figure(4);plot(abs(Y1);title(加噪语音信号的频谱特性);(d)设计数字滤波器和画出其频率响应给出各滤波器的性能指标:(1)低通滤波器性能指标fb1 000 Hz,fc1 200 Hz,As100 dB,Ap1 dB。(2)高通滤波器性能指标fc4 800 Hz,fb5 000 Hz As100 dB,Ap1 dB。(3)带通滤波器性能指标fb11 200 Hz,fb23 000 Hz,fc11 000 Hz,fc23 200 Hz,As100 dB,Ap1 dB。利用窗函数法和双线性变换法设计其上的低通滤波器。在Matlab中,利用函数fir1设计FIR滤波器,并利用Matlab中的函数freqz画出各滤波器的频率响应。(e)用滤波器对信号进行滤波利用设计出的各滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波。(f)比较滤波前后语音信号的波形及频谱在一个窗口同时画出滤波前后的波形及频谱。(g)回放语音信号在Matlab中,函数sound可以对声音进行回放。(h)设计系统界面(选作)为了使编制的程序操作方便,设计GUI的用户界面。设计流程图开始 回放滤波后的声音录制声音信号比较滤波前后的时域和频域分析 对声音信号进行时域和频域分析添加噪声设计滤波器播放带有噪声的声音信号程序代码:fs=20000;%*对外部声音的读取和处理*y,fs,bits=wavread(张源斌.wav,2048 60000);sound(y,fs,bits);Y=fft(y,4096); figure(1); plot(y);title(语音信号的时域波形); figure(2); plot(abs(Y);title(语音信号的频谱特性); %*添加噪声*n=length(y);t=0:1/fs:(n-1)/fs;Au=0.04Noise=Au*sin(2*pi*5000*t);y1=y+Noise;Y=fft(y1,4096);sound(y1,fs,bits);figure(3);plot(y1);title(加噪语音信号的时域波形);figure(4);plot(abs(Y);title(加噪语音信号的频谱特性);%*FIR滤波器设计*fs=20000;rp=1;rs=100;fcuts=1000 1200;d1=(10(rp/20)-1)/(10(rp/20)+1);d2=10(-rs/20);mags=1 0;devs=d1 d2;n,wn,beta,ftype=kaiserord(fcuts,mags,devs,fs);b=fir1(n,wn,ftype,kaiser(n+1,beta),noscale);figure(5);freqz(b,1,512);grid;xlabel(频率Hz);ylabel(频率响应幅度);grid;%*对原信号进行滤波*f1=filter(b,1,y1);sound(f1,20000); %播放滤波后的信号%*比较波形滤波前后时域的图形*figure(6)subplot(2,1,1)plot(y1) %画出滤波前的时域图title(滤波前的时域波形);xlabel(times);ylabel(幅度);grid;subplot(2,1,2)plot(f1); %画出滤波后的时域图title(滤波后的时域波形);xlabel(times);ylabel(幅度);grid;%*比较波形滤波前后频域的图形*F0=fft(f1,1024);f=fs*(0:511)/1024;figure(7)y2=fft(y1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); %画出滤波前的频谱图title(滤波前的频谱);axis(0 4000 0 1.5);xlabel(频率Hz);ylabel(幅度);grid;subplot(2,1,2)F1=plot(f,abs(F0(1:512); %画出滤波后的频谱图title(滤波后的频谱);axis(0 4000 0 1.5);xlabel(频率Hz);ylabel(幅度);grid;运行结果图GUI设计screen=get(0,screensize);W=screen(3);H=screen(4);figure(color,0.85,0.75,0.35,position,0.5*H,0.5*H,0.5*W,0.5*H,.name, 张源斌图形演示界面,Numbertitle,off,Menubar,none);hplot=uimenu(gcf,Label,&Plot);uimenu(hplot,Label,语音信号采集,call,y,fs,Nbits=wavread(张源斌);,.plot(y);,title(语音信号的时域波形););uimenu(hplot,Label,加噪语音信号的时域波形,call,fs=20000;,x1,fs,nbits=wavread(张源斌);,. t=length(x1)/20000;,f=fs*(0:1023)/2048;,Au=0.05;,d=Au*cos(2*pi*3800*t);,x2=x1+d;,. plot(x2);,title(加噪语音信号的时域波形););uimenu(hplot,Label,加噪语音信号的频谱特性,Call,y,fs,Nbits=wavread(张源斌);,.Y=fft(y,4096);,plot(abs(Y);,title(加噪语音信号的频谱特性););uimenu(hplot,Label,加噪语音信号的频谱特性,call,fs=20000;,x1,fs,nbits=wavread(张源斌);,. t=length(x1)/20000;,f=fs*(0:1023)/2048;,Au=0.05;,d=Au*cos(2*pi*3800*t);,x2=x1+d;,. X=fft(x2,4096);,plot(abs(X);,title(加噪语音信号的频谱特性););uimenu(hplot,Label,滤波前后信号波形和频谱,Call,x1=wavread(wang);,t=length(x1)/20000;,. f=fs*(0:1023)/2048;,Au=0.05;,d=Au*cos(2*pi*3800*t);,x2=x1+d;,fp=1000;,fc=1200;,. As=100;,Ap=1;,fs=8000;,wc=2*pi*fc/fs;,wp=2*pi*fp/fs;,beta=0.112*(As-8.7);,.wdel=wc-wp;,N=ceil(As-8)/2.285/wdel);,.wn= kaiser(N+1,beta);,ws=(wp+wc)/2/pi;,b=fir1(N,ws,wn);,freqz(b,1);,x=fftfilt(b,x2);,.X=fft(x,8192);,plot(x);,title(滤波后信号波形););hoption=uimenu(gcf,Label,&Option);hfigcor=uimenu(hoption,Label,&FigureColor,separator,on);uimenu(hfigcor,Label,&Red,Accelerator,r,Call,set(gcf,Color,r););uimenu(hfigcor,Label,&Black,Accelerator,k,Call,set(gcf,Color,k););uimenu(hfigcor,Label,&Blue,Accelerator,b,Call,set(gcf,Color,b););uimenu(hfigcor,Label,&Yellow,Accelerator,y,Call,set(gcf,Color,y););uimenu(gcf,Label,&Quit,Call,Close(gcf);设计心得在课程设计期间由于做考试复习,在第一周自己并没有在课程设计上下很大的功夫,只是在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论