实验二 FFT 频谱分析及应用
一、实验目的:
1、通过实验加深对 FFT 的理解;
2、熟悉应用 FFT 对典型信号进行频谱分析的方法。
二、实验内容
使用 MATLAB 程序实现信号频域特性的分析。涉及到离散傅立 叶变换(DFT)、快速傅立叶变换(FFT)及信号频率分辨率等知识点。
三、实验原理与方法和手段
在各种信号序列中, 有限长序列占重要地位。 对有限长序列可以 利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列 的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。
有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说 是序列傅立叶的等距离采样,因此可以用于序列的谱分析。 FFT DFT 的一种快速算法, 它是对变换式进行一次次分解, 使其成为假设干 小数据点的组合,从而减少运算量。
MATLAB 信号处理工具箱中的函数
fft(x,N)可以用来实现序列的N点快速傅立叶变换。
经函数 fft 求得的序列一般是复序列,通常要求出其幅值和相位。用subplot函数
MATLAB中提供了求复数的幅值和相位的函数:    abs angle,这些函
数一般和 fft 同时使用。
四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、    学生根据实验要求,读懂并理解相应的程序;
3、    学生严格遵守实验室的各项规章制度,注意人身和设备平安,配 合和服从实验室人员管理;
4、    教师在学生实验过程中予以必要的辅导,独立完成实验;
5、    采用集中授课形式。
五、    实验条件
1、    具有 WINDOWS 98/2000/NT/XP操作系统的计算机一台;
2.MATLAB编程软件。
六、    实验步骤
在“开始--程序〞菜单中,到MATLAB程序,运行启动;
进入MATLAB后,在Comma nd Win dow中输入实验程序,并执行;
记录运行结果图形,作分析。
具体步骤如下:
1、用FFT进行典型信号的频谱分析:
①咼斯序列:
xM= *已    ,0乞科冬15
0. else
参数:p=3 , q=6 p=2 , q=9 p=5 , q=7
%FFT进行高斯序列的频谱分析
n=0:15;    %定义序列的长度是16
p=3; q=6; x=exp(-1*(n-p).2/q);    %利用fft函数实现富氏变换
close all; subplot(3,2,1);
stem(x);subplot(3,2,2);stem(abs(fft(x)))
subplot(3,2,3);stem(x);subplot(3,2,4); stem(abs(fft(x))) p=5; q=7; x=exp(-1*( n-p).A2/q);
subplot(3,2,5);stem(x);subplot(3,2,6); stem(abs(fft(x)))
②衰减正弦序列
z    sin IjrfnS) <n <15
Xb(H)=    专:
0. else
n=0:15;    %定义序列的长度是16
x=exp(-0.2* n).*si n(2*pi*0.1* n);
%利用fft函数实现富氏变换
close all; subplot(211);
stem(x);subplot(212);stem(abs(fft(x)))
0
t= 0.01n(n = 0: N 1)进行采样,求:
(1) N = 40FFT的幅度频谱,从图中能否观察出信号的 2个频谱 分量
(2)提高采样点数,女口 N = 128,再求该信号的幅度频谱,此时幅度 频谱发生了什么变化?信号的 2个模拟频率和数字频率各为多少?
FFT频谱分析结果与理论上是否一致?
N=40 ;n=0:N-1;
t=0.01* n;
x=2*si n(4*pi*t)+5*cos(8*pi*t);
k=0:N/2;w=2*pi/N*k;
X=fft(x,N);
magXabs(X(1:N/2+1));
subplot(2,1,1);stem(n,x,'.');title('signal x(n)');
subplot(2,1,2);plot(w/pi,magX);title('FFT N=40');
xlabel('w (unit :pi)');ylabel('|X|');grid
N=120; n=0:N-1;
t=0.01* n;
x=2*si n(4*pi*t)+5*cos(8*pi*t);
k=0:N/2;w=2*pi/N*k;
X=fft(x,N);
magX=abs(X(1:N/2+1));
subplot(2,1,1);stem(n,x,'.');title('signal x(n)');
subplot(2,1,2);plot(w/pi,magX);title('FFT N=120');
xlabel('w (unit :pi)');ylabel('|X|');grid
t=0.01* n;
x=si n( 3*pi*t)+3*cos(7*pi*t); k=0:N/2;w=2*pi/N*k;
N=256; n=0:N-1;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。