实验四-离散傅里叶变换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四:离散傅里叶变换
实验原理:
DFT的快速算法FFT利用了的三个固有特性:(1)对称性(2)周期性(3)可约性。FFT算法基本上可以分为两大类,即按时间抽选法(DIT,Decimation-In-Time)和按频率抽选法(DIF,Decimation-In-frequency)。 MATLAB中提供了进行快速傅里叶变换的fft函数:
X=fft(x),基2时间抽取FFT算法,x是表示离散信号的向量;X是系数向量;
X=fft(x,N),补零或截断的N点DFT,当x得长度小于N时,对补零使其长度为N,当x的长度大于N时,对x截断使其长度为N。
实验内容:
=60;
n=[0:1:k/2];
xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);
subplot(321)
stem(n,xa1)
xlabel('N');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1)
subplot(322)
stem(n,xk1)
xlabel('k');ylabel('X(k)');
n=[0:1:k*];
xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);
subplot(323)
stem(n,xa1)
xlabel('N');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1)
subplot(324)
stem(n,xk1)
xlabel('k');ylabel('X(k)');
n=[0:1:k*2];
xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);
subplot(325)
stem(n,xa1)
xlabel('N');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1)
subplot(326)
stem(n,xk1)
xlabel('k');ylabel('X(k)');
结果分析:当选取的采样分析长度不为周期信号周期T的整数倍时,就会发生频率泄露,如上图。反之则不会发生频率泄露
2.
n=[0:7];
L=length(n);
x=ones(L,1);
N=32;
n1=[0:N-1];
xk=fft(x,N);
subplot(221);
n2=(2*pi/N)*[0:(N-1)]';
stem(n2,abs(xk));
xlabel('k'),ylabel('幅度');
title('N = 32');
subplot(223);
stem(n2,angle(xk));
xlabel('k'),ylabel('相位');
N=64;
n1=[0:N-1];
xk=fft(x,N);
subplot(222);
n2=(2*pi/N)*[0:(N-1)]';
stem(n2,abs(xk));
xlabel('k'),ylabel('幅度');
title('N = 64');
subplot(224);
stem(n2,angle(xk));
xlabel('k'),ylabel('相位');
结果分析:当采样点数越大时,用STEM绘制出的图形包络线越接近于真实的连续幅频和相频特性的连续曲线。