(完整word版)汉宁窗的matlab实现_第1页
(完整word版)汉宁窗的matlab实现_第2页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

1、数字信号处理课程设计题目:用汉宁窗设计FIR数字低通滤波器对给定数据进行滤波院系:专业: 通信工程班级:学号:姓名:指导教师:职称:1.1 FIR滤波器:有限长单位脉冲响应数字滤波器(Finite Impulse ResponseDigital Filter,缩写FIRDF):有限长单位冲激响应滤波器,是 数字信号处理系统中最基本的元件,最大优点是可以实现线性相 性滤波,它可以在保证任意幅频特性的同时具有严格的线性相频 特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系 统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有 着广泛的应用。FIR滤波器的设计方法主要分为两类:第一类是

2、 基于逼近理想滤波器器特性的方法包括窗函数法、频率采样法、和等波纹最佳逼近法;第二类是最优设计法。设FIRDF的单位脉冲响应h(n)的长度为N N,则其频率响应函 数为N二H (ej)二為 h(n)eTn(1-1)一般将H(ej)表示成如下形式:H(ej)二Hg( )e门)(1-2)式中,Hgj)是的实函数(可以去负值)。与前面的表示形式,即H (ejK) = H g伸)e曲相比,Hg(co)与国不同。日仲)与伸)不HgCJ为幅频特性函数,称*)为相频特性函数。同。为了区别于幅频响应函数H(eH(e 切和相频响应函数:(),称第一类线性相位FIRDF的相位特性函数是的严格线性函数: - - (

3、1-3)第二类线性相位FIRDF的相位特性函数如下:-0 - (1-4)式中,是常数,厲是起始相位。入在信号处理中很 有实用价值(如希伯尔特变换器),这是FIRDF除了线性相位滤 波外,还具有真正交变换作用。1.2 窗函数设计法:窗函数设计法的基本思想是用FIRDF逼近希望的滤波特性。设希望逼近的滤波器的频率响应为Hde,其单位脉冲响应用hdn表示。为了设计简单方便,通常选择Hdej-为具有片段常数特性的理想滤波器。因此hdn是无限长非因果序列,不能直接作 为FIRDF的单位脉冲响应。窗函数设计法就是截取hdn为有限长的一段因果序列,并用合适的窗口函数进行加权作为FIRDF的单位脉冲响应h n

4、。常见的窗函数,可以分为以下主要类型,(1)幂窗-米用时间变量某种幂次的函数,如矩形、二角 形、梯形或其它时间(t)的高次幕;(2)三角函数窗-应用三角函数,即正弦或余弦函数等组合 成复合函数,例如汉宁窗、海明窗等;(3)指数窗-采用指数时间函数,例如高斯窗等 其性能如表1-1所示:名称滤波器过渡带宽最小阻带衰减名称滤波器过渡带宽最小阻带衰减矩形1.8n/M21dBPARZENWIN6.6n/M56db巴特利特6.1n/M25dBFLATTOPWIN19.6n/M108db汉宁6.2n/M44dBGAUSSWIN5.8n/M60db汉明6.6n/M51dBBARTHANNWIN3.6n/M40

5、db布莱克曼11n/M 74dBBLACKMANHARRS6.1n/M109dbBOHMANWIIJ5.8n/M51.5dbCHEBWIN15.2n/M113dbNUTTALLWIN15.4n/M 108dbTUKE YWIN2.4n/M22db表1-1常见窗函数性能表用窗口设计法基本步骤如下:(1)构造希望逼近的频率响应函数Hde。以低通线性相位FIRDF设计为例,一般选择Hder为线性理想低通滤波器,即(2)求出hdn。对Hde进行IFT得到(3)加窗得到FIRDF的单位脉冲响应hn,(1-7)式中,wn称为窗口函数,其长度为N N。如果要求第一类线性相位FIRDF,贝卩要求h n关于N

6、1 /2点偶对称。而hdn关于n =.点偶对称,所,N -1 /2,同时要求w n关于N -1 /2点偶对称1.3 汉宁窗:汉宁窗(Hanning Window)又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者说是3个sin t型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了n/T,从而使旁瓣互相抵消,消去高频干扰和漏能。可以看 出,汉宁窗主瓣加宽并降低,e%,0c、0,0,叭 H(1-5)Hdejdndncn-?二n_(1-6)H Hde ej旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。Whng为汉宁窗的幅

7、度响应函数。二、设计流程图:本课程设计主要是对一段数据,加入噪声后,用汉宁窗函数法设计出的FIR滤波器对加入噪声后的数据信号进行滤波去噪处 理,并且分析对比前后时域和频域波形的程序设计。程序的设计流程图如下图2-1所示:0 0迹警 WcWc。世(1-8)根据傅里叶变换的线性性质和调制定理得到W ej = FT WhnnWhnge二N二/2二0.5WRg,0.25WRg-0.25WRgN -1ge_N /2(1-9)当N N 1 1时,N N -1-1 N N,则Whng 叫Fg.叽2co - IN -1(1-10)开始图2-1程序设计流程图三、matlab 设计函数及结果:用汉宁窗设计的FIR

8、数字低通滤波器的程序(含界面):function varargout = hanning(varargin)% HANNING M-file for hanning.fig% HANNING, by itself, creates a new HANNING or raises the existing% singleton*.% H = HANNING returns the handle to a new HANNING or the handle to% the existing singleton*.% HANNING(CALLBACK,hObject,eventData,handle

9、s,.) calls the local% function named CALLBACK in HANNING.M with the given input arguments.%HANNING( Property,Value,.) creates a new HANNING or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before hanning_OpeningFunction gets called. An% unrecog

10、nized property name or invalid value makes property application% stop. All inputs are passed to hanning_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one % instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the

11、response to help hanning % Last Modified by GUIDE v2.5 29-Jun-201111:03:04% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name,mfilename,.gui_Singleton,gui_Singleton,.gui_OpeningFcn,hanning_OpeningFcn,gui_OutputFcn,hanning_OutputFcn,gui_LayoutFcn, .gui_Callback,);if

12、 nargin & ischar(varargin1)gui_State.gui_Callback = str2func(varargin1); end if nargoutvarargout1:nargout = gui_mainfcn(gui_State, varargin:); elsegui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before hanning is made visible.function hanning_Opening

13、Fcn(hObject, eventdata, handles, varargin)global xn; global hj1; global hj2;% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command lin

14、e arguments to hanning (see VARARGIN)hj1=load( E:a.txt );xn=hj1;% Choose default command line output for hanning handles.output = hObject;% Update handles structure guidata(hObject, handles);% UIWAIT makes hanning wait for user response (see UIRESUME)% uiwait(handles.hanning_gui);% - Outputs from th

15、is function are returned to the command line. function varargout =hanning_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (seeVARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handle

16、s and user data (see GUIDATA)% Get default command line output from handles structure varargout1 = handles.output;function edt_wp_Callback(hObject, eventdata, handles)% hObject handle to edt_wp (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handl

17、es and user data (see GUIDATA)% Hints: get(hObject,String) returns contents of edt_wp as text% str2double(get(hObject,String) returns contents of edt_wp as a double% - Executes during object creation, after setting all properties.function edt_wp_CreateFcn(hObject, eventdata, handles)% hObject handle

18、 to edt_wp (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc & isequal(get(hObject, BackgroundColor ),

19、get(0, defaultUicontrolBackgroundColor )set(hObject, BackgroundColor , white);endfunction edt_ws_Callback(hObject, eventdata, handles)% hObject handle to edt_ws (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% H

20、ints: get(hObject,String) returns contents of edt_ws as text% str2double(get(hObject,String) returns contents of edt_ws as a double% - Executes during object creation, after setting all properties.function edt_ws_CreateFcn(hObject, eventdata, handles)% hObject handle to edt_ws (see GCBO)% eventdata

21、reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc & isequal(get(hObject, BackgroundColor ),get(0, defaultUicontrolBackground

22、Color )set(hObject, BackgroundColor , white);end% - Executes on button press in btn_creat.function btn_creat_Callback(hObject, eventdata, handles) global xn; global hj1; global hj2;% hObject handle to btn_creat (see GCBO)% eventdata reserved - to be defined in a futureversion of MATLAB % handles str

23、ucture with handles and user data (see GUIDATA)H=findobj( Tag , edt_wp );aaa=get(H, H=findobj( Tag , edt_ws );aaa=get(H, deltaw=ws-wp;N0=ceil(6.2*pi/deltaw);N=N0+mod(N0+1,2);n=0:N-1;wn=0.5*(1-cos(2*pi*n/(N-1);wc=(ws+wp)/2;nn=(N-1)/2;hd=sin(wc*(n-nn)+eps)./(pi*(n-nn)+eps); h=hd.*wn;H,w=freqz(h,1,1000

24、, whole);H=(H(1:1:501);w=(w(1:1:501);mag=abs(H);db=20*log10(mag+eps)/max(mag); pha=angle(H);yn=conv(xn,h);axes(handles.axes1);plot(h);grid;title( 实际单位冲击响应); axes(handles.axes2);plot(w/pi,db);grid;title(汉宁窗滤波器的幅频特性);axes(handles.axes3);plot(w/pi,pha);grid;title(汉宁窗滤波器的相频特性);axes(handles.axes4);plot(xn);grid;title(输入信号);axes(handles.axes5);plot(yn);grid;title(输出信号);% - Executes on button press in btn_zero.function btn_zero_Callback(hObject, eventdata, handles)% hObject handle to btn_zero (see GCBO)% eventdata reserved - to be defined in a

温馨提示

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

评论

0/150

提交评论