哈尔滨工程大学数字信号处理实验二.docx
- 文档编号:11940484
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:18
- 大小:113.17KB
哈尔滨工程大学数字信号处理实验二.docx
《哈尔滨工程大学数字信号处理实验二.docx》由会员分享,可在线阅读,更多相关《哈尔滨工程大学数字信号处理实验二.docx(18页珍藏版)》请在冰豆网上搜索。
哈尔滨工程大学数字信号处理实验二
MAGNITUDERESPONSE
NORMALIZEDFREQUENCY
|H(w)|
NORMALIZEDFREQUENCY
DEGREES
PHASERESPONSE
实验原理
对离散时间傅里叶变换DTFT来说有两个问题:
(1)DTFT的定义对无限长信号时有效的;
(2)DTFT是连续变量w的函数。
在MATLAB中,任何信号必须是有长度的,使
(1)成为问题,当能从变换定义式推导出解析式并只是计算它,可以使用MATLAB计算无限长信号的DTFT。
对于频率抽样问题,通常在有限网格点上选择足够多的频率一试绘出逼近真实的DTFT。
最好的选择是在(-pi,pi)区间上一组均匀隔开的频率,如式3.11所示。
在数量有限的频率点wk=2*pi*k/N出计算,并在有限范围内求和。
要求N>=L。
MATLAB的freqz函数足以应对无限长信号,但计算有限长信号的DTFT需用一个新的函数,dtft函数。
对于无限长信号中的指数信号,其DTFT是exp(j*w)的有理函数。
可以推导出|a|<1时h[n]=a^n*u[n]的DTFT表达式H(exp(j*w))=1/(1-a*exp(-j*w)),使用这一有理式容易计
算这个DTFT的一组样本,分子和分母的计算都可以使用FFT,即计算有理式等同于做两个dtft函数计算,定义freqz函数[HH,WW]=freqz(b,a,N,'whole')。
建立dtft函数如下所示:
function[H,W]=dtft(h,N)
%UNTITLED2Summaryofthisfunctiongoeshere%DetailedexplanationgoeshereN=fix(N);
L=length(h);h=h(:
);if(N error('DTFT: #datasamplescannotexceed#freqsamples')end W=(2*pi/N)*[0: (N-1)]';mid=ceil(N/2)+1;W(mid: N)=W(mid: N)-2*pi;W=fftshift(W);H=fftshift(fft(h,N)); 在变换域上使用subplot绘制双子图,程序如下: >>formatcompact,subplot(111)>>a=0.88*exp(sqrt(-1)*2*pi/5);>>nn=0: 40;xn=a.^nn;>>[X,W]=dtft(xn,128); >>subplot(211),plot(W/2/pi,abs(X));>>grid,title('MAGNITUDERESPONSE') >>xlabel('NORMALIZEDFREQUENCY'),ylabel('|H(w)|') >>subplot(212),plot(W/2/pi,180/pi*angle(X));grid >>xlabel('NORMALIZEDFREQUENCY'),ylabel('DEGREES') >>title('PHASERESPONSE') 一、脉冲信号的DTFT a.证明3.12的矩形脉冲DTFT可由3.13数学表达式得出,改变换的第一项成为混叠函数。 程序如下: >>formatcompact,subplot(111)%利用dtft函数求矩形序列的傅里叶变换,取N=200>>a=1;%并利用subplot将傅里叶变换的幅频特性和相频特性>>nn=0: 19;xn=a.^nn;%在双子图上显示出来。 >>[X,W]=dtft(xn,200); >>subplot(211),plot(W/2/pi,abs(X)); >>grid,title('MAGNITUDERESPONSE') >>xlabel('NORMALIZEDFREQUENCY'),ylabel('|H(w)|') >>subplot(212),plot(W/2/pi,180/pi*angle(X));grid >>title('PHASERESPONSE') >>xlabel('NORMALIZEDFREQUENCY'),ylabel('DEGREES') 图形显示如下: >>w=W; >>R=sin(w*20/2)./sin(w/2).*exp(-j.*w*19/2);%验证矩形序列的DTFT可由式3.13得出>>subplot(211),plot(w,abs(R));%并利用subplot将傅里叶变换的幅频特性>>xlabel('w'),ylabel('abs')%和相频特性在双子图上显示出来。 >>subplot(212),plot(w,180/pi*angle(R));>>xlabel('w'),ylabel('phase') -0.5 -0.4 -0.3 -0.2-0.100.10.20.3 0.4 0.5 051015 20MAGNITUDERESPONSE NORMALIZEDFREQUENCY |H(w)| -0.5 -0.4 -0.3 -0.2-0.100.10.20.3 0.4 0.5 - 200 PHASERESPONSE NORMALIZEDFREQUENCY DEGREES -4 -3 -2 -1 01 2 3 4 w real -4-3-2-101234wi mag b.使用dtft函数计算12点脉冲信号的dtft。 绘出在区间pi= 把实部和虚部分开绘出。 另绘出DTFT的幅度。 选择样本的数量是脉冲长度的5到10倍,以使绘出的图看上去平滑。 程序及图形显示如下: 1.绘出实部 >>formatcompact,subplot(111)>>a=1; >>nn=0: 11;xn=a.^nn;>>[X,W]=dtft(xn,120);>>plot(W,real(X)); >>xlabel('w'),ylabel('real') 2.绘出虚部 >>formatcompact,subplot(111)>>a=1; >>nn=0: 11;xn=a.^nn;>>[X,W]=dtft(xn,120); -4 -3-2-1 01234 051015 20w abs -4 -3-2-1 01234 -200 -1000100 200w phase -4 -3-2-1 01234 02 4 6 8 10 12 w abs >>plot(W,imag(X)); >>xlabel('w'),ylabel('imag') 3.绘制DTFT的幅度 >>formatcompact,subplot(111)>>a=1; >>nn=0: 11;xn=a.^nn;>>[X,W]=dtft(xn,120);>>plot(W,abs(X)); >>xlabel('w'),ylabel('abs') C.注意asinc函数零点的位置是规则分布的,对奇数脉冲,L=15的脉冲重复进行DTFT计算并绘出幅度;同样再次检验零点位置,注意峰值高度。 程序及图形显示如下: 温馨推荐 您可前往XX文库小程序 享受更优阅读体验 不去了 立即体验 -4 -3-2-1 01234 w abs -4 -3-2-1 01234 w abs 1.利用dtft函数 >>formatcompact,subplot(111)>>a=1; >>nn=0: 14;xn=a.^nn;>>[X,W]=dtft(xn,200);>>plot(W,abs(X)); >>xlabel('w'),ylabel('abs') 2.利用式 3.13 >>w=W; >>R=sin(w*15/2)./sin(w/2).*exp(-j.*w*14/2);>>plot(w,abs(R)); >>xlabel('w'),ylabel('abs') -4 -3-2-1 01234 w abs 结论: 在w=0处,峰值高度为脉冲长度。 d.对asinc函数零点的间距与asinc函数的直流值确定出通用规则。 二、asinc的M文件 实验内容: 编写一个MATLAB的函数如asinc(w,L),直接从式3.14计算在频率格上的asinc(w,L)。 应该有w频率和L长度两个输入量。 函数必须检查w=0de情形。 直接计算混叠sinc函数式3.13得到的脉冲信号DTFT,绘出幅度。 建立asinc函数如下所示: function[x]=asinc(w,L) %UNTITLED2Summaryofthisfunctiongoeshere%Detailedexplanationgoeshereifw==0x=L;%当w=0时,幅值为脉冲长度elsex=sin(w*L/2)./sin(w/2);end 利用asinc函数得到矩形脉冲的傅里叶变换幅值的程序: >>w=W; >>y=asinc(w,15); >>x=y.*exp(-j.*w*14/2);>>plot(w,abs(x)); >>xlabel('w'),ylabel('abs') %利用asinc函数得到矩形脉冲%的傅里叶变换幅值 四、指数信号 对于信号x[n]=(0.9)^n*u[n],使用freqz函数计算其DTFT。 a.对w在区间-pi= >>a=[1,-0.9];%H(exp(j*w))=1/(1-a*exp(-j*w))分母系数对应的向量>>b=1;%上式分子 >>N=100;%0到2pi共有100个抽样点 >>[HH,WW]=freqz(b,a,N,'whole');%利用freqz函数求无限长指数信号的傅里叶变换>>mid=ceil(N/2)+1;%ceil为从0朝正无穷大方向取整>>WW(mid: N)=WW(mid: N)-2*pi;%此句为移位操作>>WW=fftshift(WW);%频率格点WW和变换数值HH调整,让正半轴部分和>>HH=fftshift(HH);%负半轴部分的图像分别关于各自的中心对称。 >>subplot(211),plot(WW/2/pi,abs(HH));%将幅频特性和相频特性在双子图上显示>>subplot(212),plot(WW/2/pi,180/pi*angle(HH)); -0.5-0.4-0.3-0.2-0.100.10.20.30.40.5 05 10 15 -0.5 -0.4-0.3-0.2-0.100.10.20.30.40.5 -100-50050 100 0510 15202530 -1 -0.50 0.5 1n real 0510 15202530 -1 -0.500.5 1n imag -0.5 -0.4 -0.3 -0.2 -0.1 0.1 0.2 0.3 0.4 0.5 五、复指数信号 a.取z0=0.95*exp(j*3*pi/11),0= 用subplot指令将实 部和虚部对n绘制双子图。 程序如下: >>nn=0: 30; >>z0=0.95*exp(j*3*pi/11);>>x=z0.^nn; >>subplot(211),plot(nn,real(x));>>xlabel('n'),ylabel('real') >>subplot(212),plot(nn,imag(x));>>xlabel('n'),ylabel('imag') %用subplot指令将实部和%虚部在双子图上绘制 b.再一次取z0=0.95*exp(j*3*pi/11),计算其DTFT,并对w画出幅度。 注意幅度响应的尖峰位于何处,吧尖峰位置与z0的极坐标形式联系起来。 程序如下: >>formatcompact,subplot(111)>>a=[1,-0.95*exp(j*3*pi/11)];>>b=1;>>N=200; >>[HH,WW]=freqz(b,a,N,'whole');>>mid=ceil(N/2)+1; >>WW(mid: N)=WW(mid: N)-2*pi;>>WW=fftshift(WW);>>HH=fftshift(HH); >>plot(WW/2/pi,abs(HH)); %利用subplot指令绘制 %z0=0.95*exp(j*3*pi/11)的幅频特性 -0.5 -0.4-0.3-0.2-0.100.10.20.30.40.5 -0.5 -0.4-0.3-0.2-0.100.10.20.30.40.5 c.如果z0的角度变为3*pi/5,粗略绘制出预期的DTFT幅度,并通过对freqz的计算进行绘图。 程序如下: >>formatcompact,subplot(111) >>a=[1,-0.95*exp(3*pi/5)];>>b=1;>>N=200; >>[HH,WW]=freqz(b,a,N,'whole');>>mid=ceil(N/2)+1; >>WW(mid: N)=WW(mid: N)-2*pi;>>WW=fftshift(WW);>>HH=fftshift(HH); >>plot(WW/2/pi,abs(HH)); %利用subplot指令绘制 %z0=0.95*exp(j*3*pi/5)的傅里叶%变换的幅频特性 d.改变幅值,去四个数值: r=0.975,0.95,0.9,0.8.。 注意,当|z0|接近于1时,DTFT幅度尖峰的高度和带宽都在改变。 程序如下: 1.r=0.975 >>formatcompact,subplot(111)>>a=[1,-0.975*exp(j*3*pi/11)]; -0.5-0.4-0.3-0.2-0.100.10.20.30.40.501 2 3 45678910>>N=200; >>[HH,WW]=freqz(b,a,N,'whole');>>mid=ceil(N/2)+1; >>WW(mid: N)=WW(mid: N)-2*pi;>>WW=fftshift(WW); >>HH=fftshift(HH); >>plot(WW/2/pi,abs(HH)); %当幅值为0.975时,绘制 %z0=0.95*exp(j*3*pi/11)的傅里叶变换%的幅度特性 2.r=0.95 >>formatcompact,subplot(111)>>a=[1,-0.95*exp(j*3*pi/11)];>>b=1; >>N=200; >>[HH,WW]=freqz(b,a,N,'whole');>>mid=ceil(N/2)+1; >>WW(mid: N)=WW(mid: N)-2*pi;>>WW=fftshift(WW); >>HH=fftshift(HH); >>plot(WW/2/pi,abs(HH)); -0.5-0.4-0.3-0.2-0.100.10.20.30.40.50.51 1.5 2 2.5 33.544.5 5 >>formatcompact,subplot(111)>>a=[1,-0.9*exp(j*3*pi/11)];>>b=1; >>N=200; >>[HH,WW]=freqz(b,a,N,'whole');>>mid=ceil(N/2)+1; >>WW(mid: N)=WW(mid: N)-2*pi;>>WW=fftshift(WW);>>HH=fftshift(HH); >>plot(WW/2/pi,abs(HH)); 4.r=0.8 >>formatcompact,subplot(111)>>a=[1,-0.8*exp(j*3*pi/11)];>>b=1; >>N=200; >>[HH,WW]=freqz(b,a,N,'whole');>>mid=ceil(N/2)+1; >>WW(mid: N)=WW(mid: N)-2*pi;>>WW=fftshift(WW);>>HH=fftshift(HH); >>plot(WW/2/pi,abs(HH));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈尔滨工程 大学 数字信号 处理 实验