汉宁窗的matlab实现Word文件下载.docx

上传人:b****1 文档编号:1082370 上传时间:2023-04-30 格式:DOCX 页数:13 大小:398.51KB
下载 相关 举报
汉宁窗的matlab实现Word文件下载.docx_第1页
第1页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第2页
第2页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第3页
第3页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第4页
第4页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第5页
第5页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第6页
第6页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第7页
第7页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第8页
第8页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第9页
第9页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第10页
第10页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第11页
第11页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第12页
第12页 / 共13页
汉宁窗的matlab实现Word文件下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

汉宁窗的matlab实现Word文件下载.docx

《汉宁窗的matlab实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《汉宁窗的matlab实现Word文件下载.docx(13页珍藏版)》请在冰点文库上搜索。

汉宁窗的matlab实现Word文件下载.docx

日仲)与④伸)不

HgCJ为幅频特性函数,称*•)为相频特性函数。

第一类线性相位FIRDF的相位特性函数是■的严格线性函

数:

■■--'

■■(1-3)

第二类线性相位FIRDF的相位特性函数如下:

-…0-■(1-4)

式中,•是常数,厲是起始相位。

入在信号处理中很有实用价值(如希伯尔特变换器),这是FIRDF除了线性相位滤波外,还具有真正交变换作用。

1.2窗函数设计法:

窗函数设计法的基本思想是用FIRDF逼近希望的滤波特性。

设希望逼近的滤波器的频率响应为Hde「,其单位脉冲响应用

hdn表示。

为了设计简单方便,通常选择Hdej■-为具有片段常数

特性的理想滤波器。

因此hdn是无限长非因果序列,不能直接作为FIRDF的单位脉冲响应。

窗函数设计法就是截取hdn为有限长

的一段因果序列,并用合适的窗口函数进行加权作为FIRDF的单

位脉冲响应hn。

常见的窗函数,可以分为以下主要类型,

(1)幂窗--米用时间变量某种幂次的函数,如矩形、二角形、梯形或其它时间(t)的高次幕;

(2)三角函数窗--应用三角函数,即正弦或余弦函数等组合成复合函数,例如汉宁窗、海明窗等;

(3)指数窗--采用指数时间函数,例如高斯窗等⑸

其性能如表1-1所示:

名称

滤波器

过渡带宽

最小阻

带衰减

矩形

1.8n/M

21dB

PARZENWIN

6.6n/M

56db

巴特利特

6.1n/M

25dB

FLATTOPWIN

19.6n/M

108db

汉宁

6.2n/M

44dB

GAUSSWIN

5.8n/M

60db

汉明

51dB

BARTHANNWIN

3.6n/M

40db

布莱克曼

11n/M

74dB

BLACKMANHARR

S6.1n/M

109db

BOHMANWII

J5.8n/M

51.5db

CHEBWIN

15.2n/M

113db

NUTTALLWIN

15.4n/M

TUKEYWIN

2.4n/M

22db

表1-1常见窗函数性能表

用窗口设计法基本步骤如下:

(1)构造希望逼近的频率响应函数Hde「。

以低通线性相位

FIRDF设计为例,一般选择Hder'

为线性理想低通滤波器,即

(2)求出hdn。

对Hde「进行IFT得到

(3)加窗得到FIRDF的单位脉冲响应hn,

(1-7)

式中,wn称为窗口函数,其长度为N。

如果要求第一类线性相

位FIRDF,贝卩要求hn关于N—1/2点偶对称。

而hdn关于n=.点

偶对称,所,N-1/2,同时要求wn关于N-1/2点偶对称

1.3汉宁窗:

汉宁窗(HanningWindow)又称升余弦窗,汉宁窗可以看

作是3个矩形时间窗的频谱之和,或者说是3个sint型函数之

和,而括号中的两项相对于第一个谱窗向左、右各移动了n/T,从而使旁瓣互相抵消,消去高频干扰和漏能。

可以看出,汉宁窗主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观

点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析

带宽加宽,频率分辨力下降。

 

根据傅里叶变换的线性性质和调制定理得到

当N••1时,N-1"

N,则

Whng「为汉宁窗的幅度响应函数。

二、设计流程图:

本课程设计主要是对一段数据,加入噪声后,用汉宁窗函数

法设计出的FIR滤波器对加入噪声后的数据信号进行滤波去噪处理,并且分析对比前后时域和频域波形的程序设计。

程序的设计

流程图如下图2-1所示:

开始

图2-1程序设计流程图

三、matlab设计函数及结果:

用汉宁窗设计的FIR数字低通滤波器的程序(含界面):

functionvarargout=hanning(varargin)

%HANNINGM-fileforhanning.fig

%HANNING,byitself,createsanewHANNINGorraisestheexisting

%singleton*.

%

%H=HANNINGreturnsthehandletoanewHANNINGorthehandleto

%theexistingsingleton*.

%HANNING('

CALLBACK'

hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinHANNING.Mwiththegiveninputarguments.

Property'

'

Value'

...)createsanewHANNINGorraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforehanning_OpeningFunctiongetscalled.An

%unrecognizedpropertynameorinvalidvaluemakespropertyapplication

%stop.Allinputsarepassedtohanning_OpeningFcnviavarargin.

%*SeeGUIOptionsonGUIDE'

sToolsmenu.Choose"

GUIallowsonlyone%instancetorun(singleton)"

.

%Seealso:

GUIDE,GUIDATA,GUIHANDLES

%Edittheabovetexttomodifytheresponsetohelphanning%LastModifiedbyGUIDEv2.529-Jun-201111:

03:

04%Begininitializationcode-DONOTEDIT

gui_Singleton=1;

gui_State=struct(

'

gui_Name'

mfilename,...

gui_Singleton'

gui_Singleton,...

gui_OpeningFcn'

@hanning_OpeningFcn,

gui_OutputFcn'

@hanning_OutputFcn,

gui_LayoutFcn'

[],...

gui_Callback'

[]);

ifnargin&

&

ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

endifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

end

%Endinitializationcode-DONOTEDIT

%---Executesjustbeforehanningismadevisible.

functionhanning_OpeningFcn(hObject,eventdata,handles,varargin)

globalxn;

globalhj1;

globalhj2;

%Thisfunctionhasnooutputargs,seeOutputFcn.

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%varargincommandlineargumentstohanning(seeVARARGIN)

hj1=load('

E:

\a.txt'

);

xn=hj1;

%Choosedefaultcommandlineoutputforhanninghandles.output=hObject;

%Updatehandlesstructureguidata(hObject,handles);

%UIWAITmakeshanningwaitforuserresponse(seeUIRESUME)

%uiwait(handles.hanning_gui);

%---Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=hanning_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);

%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;

functionedt_wp_Callback(hObject,eventdata,handles)

%hObjecthandletoedt_wp(seeGCBO)

%Hints:

get(hObject,'

String'

)returnscontentsofedt_wpastext

%str2double(get(hObject,'

))returnscontentsofedt_wpasadouble

%---Executesduringobjectcreation,aftersettingallproperties.

functionedt_wp_CreateFcn(hObject,eventdata,handles)

%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled

%Hint:

editcontrolsusuallyhaveawhitebackgroundonWindows.

%SeeISPCandCOMPUTER.

ifispc&

isequal(get(hObject,'

BackgroundColor'

),

get(0,'

defaultUicontrolBackgroundColor'

))

set(hObject,'

'

white'

);

functionedt_ws_Callback(hObject,eventdata,handles)

%hObjecthandletoedt_ws(seeGCBO)

)returnscontentsofedt_wsastext

))returnscontentsofedt_wsasadouble

functionedt_ws_CreateFcn(hObject,eventdata,handles)

%---Executesonbuttonpressinbtn_creat.

functionbtn_creat_Callback(hObject,eventdata,handles)globalxn;

%hObjecthandletobtn_creat(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)

H=findobj('

Tag'

edt_wp'

aaa=get(H,H=findobj('

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,'

whole'

H=(H(1:

1:

501))'

;

w=(w(1:

mag=abs(H);

db=20*log10((mag+eps)/max(mag));

pha=angle(H);

yn=conv(xn,h);

string'

wp=str2num(aaa)*pi;

ws=str2num(aaa)*pi;

%色对幅值响应%相对幅值响应

%相位响应

axes(handles.axes1);

plot(h);

grid;

title('

实际单位冲击响应’);

axes(handles.axes2);

plot(w/pi,db);

汉宁窗滤波器的幅频特性'

axes(handles.axes3);

plot(w/pi,pha);

汉宁窗滤波器的相频特性’);

axes(handles.axes4);

plot(xn);

输入信号’);

axes(handles.axes5);

plot(yn);

输出信号’);

%---Executesonbuttonpressinbtn_zero.

functionbtn_zero_Callback(hObject,eventdata,handles)

%hObjecthandletobtn_zero(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)axes(handles.axes1);

plot(0);

axes(handles.axes2);

%---Executesonbuttonpressinbtn_quit.

functionbtn_quit_Callback(hObject,eventdata,handles)

%hObjecthandletobtn_quit(seeGCBO)

%handlesstructurewithhandlesanduserdata(seeGUIDATA)close(gcf);

四、标准函数调用:

用wn=(hanning(N))'

替换wn=0.5*(1-cos(2*pi*n/(N-1)))

即可实现汉宁窗函数的调用。

五、分析和总结:

所编程序运行结果与matlab内置汉宁窗滤波器设计函数所得结果相比,带宽基本一致,误差相对较小。

matlab的使

通过本次课程设计,使我更加深切的了解了

用,以及简单的窗函数的设计方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2