实验一:DFS、DFT与FFT
一、实验内容
2、已知某周期序列的主值序列为x(n)=[0,1,2,3,2,1,0],编程显示2个周期的序列波形。要求:
① 用傅里叶级数求信号的幅度谱和相位谱,并画出图形
② 求傅里叶级数逆变换的图形,并与原序列进行比较。
N=7;
xn=[0,1,2,3,2,1,0];
xn=[xn,xn];
n=0:2*N-1;
k=0:2*N-1;
Xk=xn*exp(-j*2*pi/N).^(n'*k);
x=(Xk*exp(j*2*pi/N).^(n'*k))/N;
subplot(2,2,1);stem(n,xn);
title('x(n)');axis([-1,2*N,1.1*min(xn),1.1*max(xn)]);
subplot(2,2,2);stem(n,abs(x));
title('IDFS|X(k)|');axis([-1,2*N,1.1*min(x),1.1*max(x)]);
subplot(2,2,3),stem(k,abs(Xk));
title('|X(k)|');axis([-1,2*N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]);
subplot(2,2,4),stem(k,angle(Xk));
title('arg|X(k)|');axis([-1,2*N,1.1*min(angle(Xk)),1.1*max(angle(Xk))]);
3、已知有限长序列x(n)=[1,0.5,0,0.5,1,1,0.5,0],要求:
① 求该序列的DFT、IDFT的图形;
xn=[1,0.5,0,0.5,1,1,0.5,0];
N=length(xn);
n=0:N-1;
k=0:N-1;
Xk=xn*exp(-1i*2*pi/N).^(n'*k);
matlab傅里叶变换的幅度谱和相位谱 x=(Xk*exp(1i*2*pi/N).^(n'*k))/N;
subplot(2,2,1);stem(n,xn);
title('x(n)');axis([-1,N,1.1*min(xn),1.1*max(xn)]);
subplot(2,2,2);stem(n,abs(x));
title('IDFT|X(k)|');axis([-1,N,1.1*min(x),1.1*max(x)]);
subplot(2,2,3),stem(k,abs(Xk));
title('|X(k)|');axis([-1,N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]);
subplot(2,2,4),stem(k,angle(Xk));
title('arg|X(k)|');axis([-1,N,1.1*min(angle(Xk)),1.1*max(angle(Xk))]);
② 用FFT算法求该序列的DFT、IDFT的图形;
xn=[1,0.5,0,0.5,1,1,0.5,0];
N=length(xn);
subplot(2,2,1);stem(n,xn);
title('x(n)');
k=0:N-1;
Xk=fft(xn,N);
subplot(2,1,2);stem(k,abs(Xk));
title('Xk=DFT(xn)');
xn1=ifft(Xk,N);
subplot(2,2,2);stem(n,xn1);
title('x(n)=IDFT(Xk)');
③ 假定采用频率Fs=20Hz,序列长度N分别取8、32和64,用FFT计算其幅度谱和相位谱。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论