内容发布更新时间 : 2024/11/17 8:25:41星期一 下面是文章的全部内容请认真阅读。
东莞理工学院实验报告
课程名称: 数字信号处理 实验室名称: 实验名称:实验二 用FFT对信号进行频谱分析 指导老师:
所在院系: 专业班级: 姓名: 学号: 日期: 成绩:
1、实验目的
学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其产生原因,以便正确应用FFT。
2、实验原理与方法
用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率F和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2π/N,因此要求2π/N≤F。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。
对于长度为M的有限长序列x(n),其N点DFT(N≥M)X(k)就是x(n)的FT即X(e)在[0,2π]内的N点等间隔采样,频谱分辨率就是采样间隔2π/N。
j?x(n),其频谱是离散谱: 对于周期为N的周期序列~2?X(e)?FT[x(n)]?Nj?2??~?X(k)???k? ??N??k????x(n)其中,X(k)?DFS[~x(n)],因此周期序列的频谱结构也可以用离散傅立叶级数系数X(k)表示。截取~的主值序列x(n)?~x(n)RN(n),并进行N点DFT,得到:
~~~X(k)?DFT[x(n)]N?X(k)RN(k)
x(n)的频谱结构。 因此也可以用X(k)表示~x(n)的整数个周期mN,m为整数,即xmN(n)?~如果截取长度为~x(n)RmN(n),那么
??k??mX??k/m?整数 XmN(k)?DFT[xmN(n)]???m?k/m?整数?0?x(n)的频谱结构。 于是,XmN(k)也可以表示~由此可见,对于周期序列,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对一般的非周期模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果模拟信号持续时间很长,采样点数太多,会导致无法存储和计算,需截取有限点进行DFT。因此对模拟信号进行频谱分析必然是近似的,其近似程度与信号带宽、采样频率和截取长度有关。工程上,滤除幅度很小的高频成分和截去幅度很小的部分信号是允许的。如果是模拟信号为周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
3、实验内容及步骤
(1)对以下序列进行谱分析:
x1(n)?R4(n)?n?1,? x2(n)??8?n,?0,??4?n,?x3(n)??n?3,?0,?0?n?34?n?7 其它n0?n?34?n?7其它n 先绘制各序列的FT频谱图,然后选择FFT的变换区间N为8和16 两种情况,通过序列的DFT分析其频谱。分别打印其幅频特性曲线,并进行对比、分析和讨论。 (2)对以下周期序列进行谱分析:
x(n)?cos?n
44 x5(n)?cos(?n/4)?cos(?n/8)
选择FFT的变换区间N为8和16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。
(3)对模拟周期信号进行谱分析
x6(t)?cos8?t?cos16?t?cos20?t
选择采样频率Fs?64Hz,变换区间N=16,32,64 三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。
4、实验程序清单
clear all;close all
%****内容一:有限长序列的频谱分析************ %产生三个序列 x1n=ones(1,4);
M=8;xa=1:(M/2); xb=(M/2):-1:1;
x2n=[xa,xb]; %产生长度为8的三角波序列
x3n=[xb,xa];
%获得序列x1n的傅立叶变换
X1jw=fft(x1n,1024); %用1024个点的fft获得傅立叶变换的密集采样 w=2*pi/1024*(0:1023);%采样频率位置
subplot(3,1,1);plot(w/pi,abs(X1jw)); %绘制FT的幅频特性
title('(1a) X_1(e^{j\\omega})'); xlabel('\\omega/\\pi');;ylabel('幅度'); X1k8=fft(x1n,8); %8个点DFT X1k16=fft(x1n,16); 个点DFT
%补充绘图8个点及16个点的DFT幅频特性,提示用stem指令绘图 w=2*pi/8*(0:7);
subplot(3,1,2);stem(w/pi,X1k8,'.'); %绘制FT的幅频特性
title('(1b) 8点DFT[x1(n)])'); xlabel('\\omega/\\pi');;ylabel('幅度'); w=2*pi/16*(0:15);
subplot(3,1,3);stem(w/pi,X1k16,'.'); %绘制FT的幅频特性
title('(1c) 16点DFT[x1(n)])'); xlabel('\\omega/\\pi');;ylabel('幅度');
%补充程序对x2n及x3n的频谱进行分析 clear all;close all
M=8;xa=1:(M/2); xb=(M/2):-1:1;
x2n=[xa,xb]; %产生长度为8的三角波序列
X2jw=fft(x2n,1024); %用1024个点的fft获得傅立叶变换的密集采样 w=2*pi/1024*(0:1023);%采样频率位置
subplot(3,1,1);plot(w/pi,abs(X2jw)); %绘制FT的幅频特性
title('(2a) X_2(e^{j\\omega})'); xlabel('\\omega/\\pi');;ylabel('幅度'); X2k8=fft(x2n,8); %8个点DFT X2k16=fft(x2n,16); 个点DFT w=2*pi/8*(0:7);
subplot(3,1,2);stem(w/pi,abs(X2k8),'.'); %绘制FT的幅频特性 title('(2b) 8点DFT[x2(n)])'); xlabel('\\omega/\\pi');;ylabel('幅度'); w=2*pi/16*(0:15);
subplot(3,1,3);stem(w/pi,abs(X2k16),'.'); %绘制FT的幅频特性 title('(2c) 16点DFT[x2(n)])'); xlabel('\\omega/\\pi');;ylabel('幅度');
clear all;close all
M=8;xa=1:(M/2); xb=(M/2):-1:1; x3n=[xb,xa];
X3jw=fft(x3n,1024); %用1024个点的fft获得傅立叶变换的密集采样 w=2*pi/1024*(0:1023);%采样频率位置
subplot(3,1,1);plot(w/pi,abs(X3jw)); %绘制FT的幅频特性
title('(3a) X_2(e^{j\\omega})'); xlabel('\\omega/\\pi');;ylabel('幅度'); X3k8=fft(x3n,8); %8个点DFT X3k16=fft(x3n,16); 个点DFT w=2*pi/8*(0:7);
subplot(3,1,2);stem(w/pi,abs(X3k8),'.'); %绘制FT的幅频特性