FFT频谱分析及应用实训报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二 FFT频谱分析及应用实训报告
一、实验目的:
1、通过实验加深对FFT的理解;
2、熟悉应用FFT对典型信号进行频谱分析的方法。

二、实验内容
使用MATLAB程序实现信号频域特性的分析。

涉及到离散傅立叶变换(DFT)、快速傅立叶变换(FFT)及信号频率分辨率等知识点。

三、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生根据实验要求,读懂并理解相应的程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;
4、教师在学生实验过程中予以必要的辅导,独立完成实验;
5、采用集中授课形式。

四、实验条件
1、具有WINDOWS 98/2000/NT/XP操作系统的计算机一台;
2.、MATLAB编程软件。

五、实验原理与方法和手段
在各种信号序列中,有限长序列占重要地位。

对有限长序列可以利用离散傅立叶变换(DFT)进行分析。

DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。

有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说
是序列傅立叶的等距离采样,因此可以用于序列的谱分析。

FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。

在MATLAB信号处理工具箱中的函数
fft(x,N),可以用来实现序列的N点快速傅立叶变换。

经函数fft求得的序列一般是复序列,通常要求出其幅值和相位。

MATLAB中提供了求复数的幅值和相位的函数:abs、angle,这些函数一般和fft同时使用。

四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生根据实验要求,读懂并理解相应的程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;
4、教师在学生实验过程中予以必要的辅导,独立完成实验;
5、采用集中授课形式。

六、实验步骤
在“开始--程序”菜单中,找到MATLAB程序,运行启动;
进入MATLAB后,在Command Window中输入实验程序,并执行;记录运行结果图形,作分析。

具体步骤如下:
1、用FFT 进行典型信号的频谱分析:
①高斯序列:
参数: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)))
p=2; q=9; x=exp(-1*(n-p).^2/q); %改变信号参数,重新计算 subplot(3,2,3);stem(x);subplot(3,2,4); stem(abs(fft(x)))
p=5; q=7; x=exp(-1*(n-p).^2/q);
subplot(3,2,5);stem(x);subplot(3,2,6); stem(abs(fft(x)))
051015200
0.5
1
0510152002
4
6051015200
0.5
1
0510152002
4
60510152000.5
1
0510152002
46
② 衰减正弦序列
n=0:15; %定义序列的长度是16
x=exp(-0.2*n).*sin(2*pi*0.1*n);
%利用fft 函数实现富氏变换
close all; subplot(211);
stem(x);subplot(212);stem(abs(fft(x)))
0246810121416
-0.50
0.5
1
024681012141600.5
1
1.5
2
2、模拟信号)8c o s (5)4s i n (2)(t t t x ππ+=,以)1:0(01.0-==N n n t 进行采样,求:
(1)N =40点FFT 的幅度频谱,从图中能否观察出信号的2个频谱分量?
(2)提高采样点数,如N =128,再求该信号的幅度频谱,此时幅度频谱发生了什么变化?信号的2个模拟频率和数字频率各为多少?FFT 频谱分析结果与理论上是否一致?
N=40;n=0:N-1;
t=0.01*n;
x=2*sin(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=40');
xlabel('w (unit :pi)');ylabel('|X|');grid
05101520
25303540
-10-5
5
10
signal x(n)
00.10.20.30.40.50.6
0.70.80.91050
100
FFT N=40w (unit :pi)|X |
N=120;n=0:N-1;
t=0.01*n;
x=2*sin(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
020406080100120
-10-5
5
10
signal x(n)
00.10.20.30.40.50.60.70.80.91
0100
200
300
FFT N=120
w (unit :pi)|X
|
N=256;n=0:N-1;
t=0.01*n;
x=sin(3*pi*t)+3*cos(7*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=40');
xlabel('w (unit :pi)');ylabel('|X|');grid
050100150200250300
-4-2
2
4
signal x(n)
00.10.20.30.40.50.60.70.80.91
0100
200
300
400
FFT N=40
w (unit :pi)|X |
3、有限长序列x(n)={2,1,0,1,3};nx=[0:4];h(n)
={1,3,2,1};nh=[0:3],试利用FFT 实现由DFT 计算线性卷积,并与线性卷积手工直接计算的结果进行比较。

% 用FFT实现由DFT计算线性卷积
%lyy12
x=[2 1 0 1 3];h=[1 3 2 1];
L=9;
XE=fft(x,L);HE=fft(h,L);
y1=ifft(XE.*HE)
%画出由圆周卷积计算线性卷积结果
k1=0:L-1;
subplot(211);stem(k1,real(y1));axis([0 8 0 7]);
title('圆周卷积');
xlabel('Time index k1');ylabel('Amplitude');
y2=conv(x,h)
k2=0: length(x)+length(h)-2;
subplot(212);
stem(k2,real(y2));axis([0 6 0 7]);
title('线性卷积');
xlabel('Time index k2');ylabel('Amplitude');L=length(x)+length(h)-1; XE=fft(x,L);HE=fft(h,L);
y1=ifft(XE.*HE)
%画出由圆周卷积计算线性卷积结果
k=0:L-1;
subplot(211);stem(k,real(y1));axis([0 8 0 9]);
title('圆周卷积');
xlabel('Time index k');ylabel('Amplitude');
y2=conv(x,h)
subplot(212);
stem(k,real(y2));axis([0 8 0 9]);
title('线性卷积');
xlabel('Time index k');ylabel('Amplitude'); 01234
5678
02
4
68
圆周卷积
Time index k
A m p l i t u d e 01234
567802
4
68
线性卷积Time index k A m p l i t u d e
x=[2 1 0 1 3];h=[1 3 2 1];
L=10;
XE=fft(x,L);HE=fft(h,L);
y1=ifft(XE.*HE)
%画出由圆周卷积计算线性卷积结果
k1=0:L-1;
subplot(211);stem(k1,real(y1));axis([0 7 0 7]);
title('圆周卷积');
xlabel('Time index k1');ylabel('Amplitude');
y2=conv(x,h)
k2=0: length(x)+length(h)-2;
subplot(212);
stem(k2,real(y2));axis([0 8 0 10]);
title('线性卷积');
xlabel('Time index k2');ylabel('Amplitude');L=9; XE=fft(x,L);HE=fft(h,L);
y1=ifft(XE.*HE)
%画出由圆周卷积计算线性卷积结果
k1=0:L-1;
subplot(211);stem(k1,real(y1));axis([0 8 0 7]); title('圆周卷积');
xlabel('Time index k1');ylabel('Amplitude');
y2=conv(x,h)
k2=0: length(x)+length(h)-2;
subplot(212);
stem(k2,real(y2));axis([0 6 0 7]);
title('线性卷积');
xlabel('Time index k2');ylabel('Amplitude');
012345678
02
4
6
圆周卷积
Time index k1
A m
p
l i
t u
d e 0123456
02
4
6
线性卷积
Time index k2A m
p
l i
t u
d e
七、实验报告要求
1、报告中要给出实验的MATLAB 程序;
2、简述实验目的和原理;
3、按实验步骤附上实验信号序列和幅频特性曲线,分析所得到的图
形,回答每一步提出的问题。

相关文档
最新文档