- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二预作结果序列的DFT及谱分析
实验二 离散傅立叶变换及谱分析预做实验
实验目的
1.掌握离散傅里叶变换的计算机实现方法。
2.检验实序列傅里叶变换的性质。
3.掌握计算序列的圆周卷积的方法。
4.熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
5.学习用DFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差,以便在实际中正确应用DFT。
实验内容
1.实现离散傅里叶变换。
2.计算序列圆周卷积。
3.计算实序列傅里叶变换并检验DFT性质。
4.实现连续信号傅里叶变换以及由不同采样频率采样得到的离散信号的傅里叶变换。
5.实现补零序列的傅里叶变换。
6.实现高密度谱和高分辨率谱,并比较二者的不同。
三、实验结果
1.计算离散傅里叶变换
设序列为 x(n)={ 1 2 3 4 5 6 7 8},对其进行DFT
程序:x=[1 2 3 4 5 6 7 8];
Xk=dft(x,8);
结果:
Xk =
Columns 1 through 3
36.0000 -4.0000 + 9.6569i -4.0000 + 4.0000i
Columns 4 through 6
-4.0000 + 1.6569i -4.0000 -4.0000 - 1.6569i
Columns 7 through 8
-4.0000 - 4.0000i -4.0000 - 9.6569i
2.计算实序列x(n)=10*(0.8).^n 0=n=10 的DFT并检验DFT的性质
DFT[xec(n)]=Re[X(k)] DFT[xoc(n)]=Im[X(k)]
程序:
n=0:10;
x=10*(0.8).^n;
[xec,xoc]=circevod(x);
subplot(2,1,1);stem(n,xec);
title(Circular -even component)
xlabel(n);ylabel(xec(n));axis([-0.5,10.5,-1,11])
subplot(2,1,2);stem(n,xoc);
title(Circular -odd component)
xlabel(n);ylabel(xoc(n));axis([-0.5,10.5,-4,4])
figure(2)
X=dft(x,11);
Xec=dft(xec,11);
Xoc=dft(xoc,11);
subplot(2,2,1);stem(n,real(X));axis([-0.5,10.5,-5,50])
title(Real{DFT[x(n)]});xlabel(k);
subplot(2,2,2);stem(n,imag(X));axis([-0.5,10.5,-20,20])
title(Imag{DFT[x(n)]});xlabel(k);
subplot(2,2,3);stem(n,Xec);axis([-0.5,10.5,-5,50])
title(DFT[xec(n)]);xlabel(k);
subplot(2,2,4);stem(n,imag(Xoc));axis([-0.5,10.5,-20,20])
title(DFT[xoc(n)]);xlabel(k);
该图中 上图为序列的共轭对称分量;下图为共轭反对称分量。
该图中左上角的图为序列DFT的实部;右上角图为DFT的虚部
左下角的图为序列的共轭对称部分的DFT;右下角的图为序列的共轭反对称部分的DFT
可以看出 DFT[xec(n)]=Re[X(k)] DFT[xoc(n)]=Im[X(k)
3.计算序列的循环卷积
程序:
if length(x1)N
error(N must be = the length of x1)
end
if length(x2)N
error(N must be = the length of x2)
end
x1=[x1 zeros(1,N-length(x1))];
x2=[x2 zeros(1,N-length(x2))];
m=[0:1:N-1];
x2=x2(mod(-m,N)+1);
H=zeros(N,N);
for n=1:1:N
H(n,:)=cirshftt(x2,n-1,N);
end
y=x1*H
将以上程序存入文件a2.m,然后在 matlab command 窗口输入:
x1=[3 5 2 7 6 8 ];x2=[1 4 6 3 7];N=6;
则运行结果为:
y =
文档评论(0)