杭电_数字信号处理课程设计_实验2

实验2 利用快速离散傅里叶变换分析信号的频谱

一、实验目的
1、通过这一实验,能够熟练掌握快速离散傅里叶变换FFT的原理及其用 FFT 进行频谱分析的基本方法。
2、在通过计算机上用软件实现 FFT 及信号的频谱分析。
3、通过实验对离散傅里叶变换的主要性质及 FFT 在数字信号处理中的重要作用有进一步的了解。

二、实验要求及内容

第一题代码:
clear all;
N=32;
n=0:N-1;
xn=sin(2pin/32);
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=32’);

第二题代码:
clear all;
N=100;
n=0:N-1;
xn=0.9sin(2pi/Nn)+0.6cos(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);
ylabel(‘x(n)’);
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(2pi100x3)].cos(2pi600x3);
xn3=cos(2
pi600/3000x3)+0.5cos(2pi700/3000x3)+0.5cos(2pi500/3000x3);
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;
x30=0:1:N30-1;
%xn30=[1+cos(2pi100x30)].cos(2pi600x30);
xn30=cos(2
pi600/3000x30)+0.5cos(2pi700/3000x30)+0.5cos(2pi500/3000x30);
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’);

三、实验结果与分析:
题目一结果与分析:
杭电_数字信号处理课程设计_实验2
从图像中可以看出,当0≤n≤N-1,N=32时,当且仅当K=1和K=31时,|X(k)|=16,其余点的|X(k)|=0,与笔算结果相同,符合题目要求。

题目二结果与分析:
杭电_数字信号处理课程设计_实验2
该实验结果与笔算结果相同,符合题目要求。

题目三结果与分析:
杭电_数字信号处理课程设计_实验2
N 点 DFT的幅频曲线图中,0~7这8个点,只有当k=0时|X(k)|不为零,而2N点DFT的幅频曲线则不一样。这是因为,在同一个周期内,2N点的DFT比N点DFT要多取一些点,因此原本N点DFT没有显示的点将在2N点DFT中显示出来。而且,我们可以知道,取的点越多,幅频曲线图将会越精确。该实验结果与笔算结果相同,符合题目要求

题目四结果与分析:
杭电_数字信号处理课程设计_实验2
该实验结果经过笔算验证,符合题目要求。

思考题分析:
A.混叠现象: 对于带限连续信号, 只要提高抽样频率使之满足时域抽样定理; 对于非带限信号, 可以根据实际情况对其进行低通滤波, 使之成为带限信号。 工程中的信号一般都不是带限信号, 连续信号在抽样前通常都进过一个低通滤波器 (即抗混叠滤波器) 进行低通滤波,以减少混叠误差,提高频谱分析精度。
B.泄漏现象:在选择矩形窗口的长度时,适当增加窗的长度,可以提高频谱分辨率,但是不能减小旁瓣引起的频谱泄露, 因此可以选择旁瓣幅度很小甚至为零的非矩形窗对信号进行加窗处理,就可以降低频谱泄露。
C.栅栏现象: 改善栅栏现象最常用的方法是在离散序列之后补零, 得到一个比原有序列更长的序列,这样就可以增加频谱图中的很多细节,降低栅栏现象。

四、实验总结:
通过本次实验,使我能够熟练掌握快速离散傅里叶变换FFT的原理及其用 FFT 进行频谱分析的基本方法,让我学会了通过计算机上用软件实现 FFT 及信号的频谱分析,并且使我对离散傅里叶变换的主要性质及 FFT 在数字信号处理中的重要作用有了进一步的了解。