杭电_数字信号处理课程设计_实验2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 利用快速离散傅里叶变换分析信号的频谱
一、实验目的
1、通过这一实验,能够熟练掌握快速离散傅里叶变换FFT的原理及其用FFT 进行频谱分析的基本方法。
2、在通过计算机上用软件实现FFT 及信号的频谱分析。
3、通过实验对离散傅里叶变换的主要性质及FFT 在数字信号处理中的重要作用有进一步的了解。
二、实验要求及内容
第一题代码:
clear all;
N=32;
n=0:N-1;
xn=sin(2*pi*n/32);
subplot(2,1,1);
plot(n,xn);
ylabel('x(n)');
title('x(n) N=32');
XK=fft(xn,N);
magXK=abs(XK); %幅频特性
phaXK=angle(XK); %相频特性
subplot(2,1,2);
k=0:length(magXK)-1;
stem(k,magXK,'.'); %信号幅频特性曲线xlabel('k');
ylabel('|X(k)|');
title('X(k) N=32');
第二题代码:
clear all;
N=100;
n=0:N-1;
xn=0.9*sin(2*pi/N*n)+0.6*cos(2*pi/(N/3)*n); subplot(2,1,1);
plot(n,xn);
xlabel('n');
ylabel('x(n)');
title('x(n) N=32');
XK=fft(xn,N);
magXK=abs(XK); %幅频特性
phaXK=angle(XK); %相频特性
subplot(2,1,2);
k=0:length(magXK)-1;
stem(k,magXK,'.'); %信号幅频特性曲线xlabel('k');
ylabel('|X(k)|');
title('X(k) N=100');
第三题代码:
clear all;
N=8;
x=[ones(1,8),zeros(1,N-8)];
n=0:N-1;
X=dft(x,N);
magX=abs(X);
phaX=angle(X)*180/pi;
k=(0:length(magX)'-1)*N/length(magX); subplot(2,2,1);
stem(n,x);
subplot(2,2,2);
stem(k,magX,'.');
axis([0,10,0,8]);
ylabel('|X(k)| of N=8');
N=16;
x=[ones(1,8),zeros(1,N-8)];
n=0:N-1;
X=dft(x,N);
magX=abs(X);
phaX=angle(X)*180/pi;
k=(0:length(magX)'-1)*N/length(magX);
subplot(2,2,3);
stem(n,x,'.');
ylabel('x(n)');
subplot(2,2,4);
stem(k,magX,'.');
axis([0,15,0,8]);
ylabel('|X(k)| of N=16');
%用到的函数:
function[Xk]=dft(xn,N)
n=[0:1:N-1];
k=[0:1:N-1];
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
End
第四题代码:
clear all;
N3=120;
x3=0:1:N3-1;
%xn3=[1+cos(2*pi*100*x3)].*cos(2*pi*600*x3);
xn3=cos(2*pi*600/3000*x3)+0.5*cos(2*pi*700/3000*x3)+0.5*cos(2*pi*500/3000*x3); subplot(2,2,1);
plot(x3,xn3);
title('xn3');
XK3=fft(xn3,N3);
XK3=abs(XK3);
subplot(2,2,2);
stem(0:length(XK3)-1,XK3,'.');
title('XK3 N=120点DFT');
N30=128;
%xn30=[1+cos(2*pi*100*x30)].*cos(2*pi*600*x30);
xn30=cos(2*pi*600/3000*x30)+0.5*cos(2*pi*700/3000*x30)+0.5*cos(2*pi*500/3000*x30); subplot(2,2,3);
plot(x30,xn30);
title('xn30');
XK30=fft(xn30,2*N30);
XK30=abs(XK30);
subplot(2,2,4);
stem(0:length(XK30)-1,XK30,'.');
title('XK30 N=128点DFT');
三、实验结果与分析:
题目一结果与分析:
从图像中可以看出,当0≤n≤N-1,N=32时,当且仅当K=1和K=31时,|X(k)|=16,其余点的|X(k)|=0,与笔算结果相同,符合题目要求。
题目二结果与分析:
该实验结果与笔算结果相同,符合题目要求。