一、实验目的
(1)加深对离散傅里叶变换(DFT)基本性质的理解。
(2)了解有限长序列傅里叶变换(DFT)性质的研究方法。
(3)掌握用MATLAB语言进行离散傅里叶变换性质分析时程序编写的方法。
二、实验原理
1.线性性质
如果两个有限长序列分别为x1(n)和x2(n),长度分别为N1和N2,且y(n)=ax1(n)+bx2(n) (a、b均为常数)
则该y(n)的N点DFT为Y(k)=DFT[y(n)]=aX1(k)+bX2(k) 0≤k≤N-1
其中:N=max[N1,N2],X1(k)和X2(k)分别为x1(n)和x2(n)的N点DFT。
例1:
已知x1(n)=[0,1,2,4],x2(n)=[1,0,1,0,1],求:
(1)y(n)=2x1(n)+3x2(n),再由y(n)的N点DFT获得Y(k);
(2)由x1(n)、x2(n)求X1(k)、X2(k),再求Y(k)=2X1(k)+3X2(k)。
用图形分别表示以上结果,将两种方法求得的Y(k)进行比较,由此验证有限长序列傅里叶变换(DFT)的线性性质
代码:
xn1=[0,1,2,4]; %建立xn1序列
xn2=[1,0,1,0,1];%建立xn2序列
N1=length(xn1);
N2=length(xn2);
N=max(N1,N2);%确定N
if N1>N2
xn2=[xn2,zeros(1,N1-N2)];%对长度短的序列补0
elseif N2>N1
xn1=[xn1,zeros(1,N2-N1)];
end
yn=2*xn1+3*xn2;%计算yn
n=0:N-1;k=0:N-1;
Yk1=yn*(exp(-1j*2*pi/N)).^(n'*k);%求yn的N点DFT
Xk1=xn1*(exp(-1j*2*pi/N)).^(n'*k);%求xn1的N点DFT
Xk2=xn2*(exp(-1j*2*pi/N)).^(n'*k);%求xn2的N点DFT
Yk2=2*Xk1+3*Xk2;%由Xk1、Xk2求Yk
figure(1)
subplot(4,1,1);stem(xn1);
title('x1(n)')
subplot(4,1,2);stem(xn2);
title('x2(n)')
subplot(4,1,3);stem(yn);
title('y(n)')
subplot(4,1,4);stem(k,Yk1);
axis([0 4 -20 30])
title('DFT(y(n))')
figure(2)
subplot(3,1,1);stem(k,Xk1);
title('Xk1')
subplot(3,1,2);stem(k,Xk2);
title('Xk2')
subplot(3,1,3);stem(k,Yk2);
axis([0 4 -20 30])
title('Yk')
输出:
2.循环移位性质
如果有限长序列为x(n),长度为N,将x(n)左移m位,则:y(n)=x((n+m)N)RN(n)
x(n)左移m位的过程可由以下步骤获得:
(1)将x(n)以N为周期进行周期延拓,得到=x((n)N);
(2)将