DFT 变换的性质与应用Word下载.docx
《DFT 变换的性质与应用Word下载.docx》由会员分享,可在线阅读,更多相关《DFT 变换的性质与应用Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
立叶变换X(k),并比较三种程序的计算机运行时间。
步骤:
a.用for循环语句编制函数文件,实现循环计算X(k);
b.编写矩阵运算的函数文件,实现矩阵计算X(k);
c.调用FFT函数直接计算X(K)
任务2、给定x(n)=nR16(n),h(n)=R8(n)利用DFT实现两序列的
线性卷积运算,并研究DFT的点数与混叠的关系,并用stem(n,y)画出相应的图形。
任务3、讨论序列补零及增加数据长度对信号频谱的影响
(1)求出序列x(n)=cos(0.48n)+cos(0.52n)基于有限个样点n=10的频谱;
(2)求n=100时,取x(n)的前10个,后90个设为零,得到x(n)的频谱;
(3)增加x(n)有效的样点数,取100个样点得到x(n)的频谱
实验步骤
方法
关键代码
一、任务1
function[am,pha]=dft1(x)
N=length(x);
w=exp(-1i*2*pi/N);
fork=1:
N
sum=0;
forn=1:
sum=sum+x(n)*w^((k-1)*(n-1));
end
am(k)=abs(sum);
pha(k)=angle(sum);
end
function[am,pha]=dft2(x)
n=[0:
N-1];
k=[0:
w=exp(-j*2*pi/N);
nk=n'
*k;
wnk=w.^(nk);
Xk=x*wnk;
am=abs(Xk);
pha=angle(Xk);
function[amfft,phafft]=dft3(x)
Xk=fft(x);
amfft=abs(Xk);
phafft=angle(Xk);
三种程序的计算机运行时间
x=ones(1,8);
figure
(1)
[am,pha]=det1(x);
t1=cputime
subplot(3,1,1);
stem(x);
subplot(3,1,2);
stem(am);
subplot(3,1,3);
stem(pha);
figure
(2)
[am,pha]=dft2(x)
t2=cputime
figure(3)
[amfft,phafft]=dft3(x)
t3=cputime
二、任务2
%N1+N2-1=23<
32
N=32;
x=[0:
15];
xx=[x,zeros(1,16)];
h=[ones(1,8),zeros(1,24)];
Xk=fft(xx,N);
Hk=fft(h,N);
Yk=Xk.*Hk;
y=ifft(Yk,N);
n=0:
N-1;
stem(n,y);
holdon
%N=N1=16
N1=16;
x1=[0:
h1=[ones(1,8),zeros(1,8)];
Xk1=fft(x1,N1);
Hk1=fft(h1,N1);
Yk1=Xk1.*Hk1;
y1=ifft(Yk1,N1);
n1=0:
N1-1;
stem(n1,y1,'
.'
'
m'
);
(接上页)
三、任务3
%x(n)基于10个样点的频谱
1:
99];
x=cos(0.48*pi*n)+cos(0.52*pi*n);
n1=[0:
9];
y1=x(1:
10);
subplot(2,1,1);
stem(n1,y1);
title('
signalx(n),0<
=n<
=9'
xlabel('
n'
)
axis([0,10,-2.5,2.5])
Y1=fft(y1);
magY1=abs(Y1(1:
6));
k1=0:
5;
w1=2*pi/10*k1;
subplot(2,1,2);
stem(w1/pi,magY1);
10点DET'
w/pi'
axis([0,1,0,10])
%在10个样点的基础上添90个零,得到密度高的频谱
n3=[0:
y3=[x(1:
10)zeros(1,90)];
%添90个零,得到100个数据
stem(n3,y3);
=9<
=9+90zeros'
axis([0,100,-2.5,2.5])
Y3=fft(y3);
magY3=abs(Y3(1:
51));
k3=0:
w3=2*pi/100*k3;
stem(w3/pi,magY1);
100点DET'
%增加x(n)有效的样点数,取100个样点
stem(n,x);
=99'
X=fft(x);
magX=abs(X(1:
k=0:
50;
w=2*pi/100*k;
stem(w/pi,magX);
100点DFT'
(w/pi)'
axis([0,1,0,60])
测试记录
分析
结论
小结
本次实验总共包括三个任务。
在第一个任务实验中,用不同的DFT程序运算傅里叶变换,通过观察计算机的运行时间来判别运算的复杂度。
本次我选择的样点个数为8,通过实验可知在循环计算过程中总共计时t1=118.7500,矩阵计算中运算时间t3=118.8906,而在FFT函数直接计算时运算时间t3=119.0156,由此可知以上三种运算的复杂程度由低到高分别是循环计算、矩阵计算、FFT函数直接运算。
在第二个任务实验中,利用DFT实现两个序列的线性卷积运算,并观察DFT的点数与混叠现象,实验结果显示,DFT的混叠现象与两个取样点的点数有关,当L>
=M+N=1时没有混叠现象,当L1/2>
=L>
=L1时存在部分混叠,当L<
L1/2就会发生完全混叠现象。
因此,可总结出一个结论,即在一定条件下,圆周卷积和线性卷积是相等的,可以采用计算圆周卷积来代替线性卷积的计算。
在第三个任务实验中,讨论了补零及增加数据长度对信号频谱的影响,通过实验结果显示可知:
在原运算的基础上补零可以发现其频谱图发生了明显的变化,由于x=cos(0.48*pi*n)+cos(0.52*pi*n)其频率分别是0.48和0.52,可发现补零后频谱图中集中在0.4到0.6之间。
但在后面增加数据的有效长度后发现,频谱图依然发生了明显的变化,其频谱图十分准确的显示了其频率0.48和0.52。
通过本次综合性实验,探究了DFT变换的性质和应用,巩固了我们平时课堂上学习的有关离散傅里叶变换的知识点。
通过实际动手编写程序以及观察实验结果可让我们发现自己平时学习过程中的盲点、误点以及遗漏,对微码掌握知识点是一个不断更新和完善的过程。
这次课程设计使我了解了MATLAB的使用方法,提高了分析和动手实践能力,同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助!
以下由实验教师填写
记事
评议
成绩评定
平时成绩_______实验报告成绩________综合成绩_________
指导教师签名: