FFT频谱分析及应用实训报告.docx
《FFT频谱分析及应用实训报告.docx》由会员分享,可在线阅读,更多相关《FFT频谱分析及应用实训报告.docx(9页珍藏版)》请在冰点文库上搜索。
FFT频谱分析及应用实训报告
实验二FFT频谱分析及应用实训报告
一、实验目的:
1、通过实验加深对FFT的理解;
2、熟悉应用FFT对典型信号进行频谱分析的方法。
二、实验内容
使用MATLAB程序实现信号频域特性的分析。
涉及到离散傅立叶变换(DFT)、快速傅立叶变换(FFT)及信号频率分辨率等知识点。
三、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生根据实验要求,读懂并理解相应的程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;
4、教师在学生实验过程中予以必要的辅导,独立完成实验;
5、采用集中授课形式。
四、实验条件
1、具有WINDOWS98/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后,在CommandWindow中输入实验程序,并执行;
记录运行结果图形,作分析。
具体步骤如下:
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函数实现富氏变换
closeall;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)))
衰减正弦序列
n=0:
15;%定义序列的长度是16
x=exp(-0.2*n).*sin(2*pi*0.1*n);
%利用fft函数实现富氏变换
closeall;subplot(211);
stem(x);subplot(212);stem(abs(fft(x)))
2、模拟信号
,以
进行采样,求:
(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('signalx(n)');
subplot(2,1,2);plot(w/pi,magX);title('FFTN=40');
xlabel('w(unit:
pi)');ylabel('|X|');grid
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('signalx(n)');
subplot(2,1,2);plot(w/pi,magX);title('FFTN=120');
xlabel('w(unit:
pi)');ylabel('|X|');grid
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('signalx(n)');
subplot(2,1,2);plot(w/pi,magX);title('FFTN=40');
xlabel('w(unit:
pi)');ylabel('|X|');grid
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=[21013];h=[1321];
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([0807]);
title('圆周卷积');
xlabel('Timeindexk1');ylabel('Amplitude');
y2=conv(x,h)
k2=0:
length(x)+length(h)-2;
subplot(212);
stem(k2,real(y2));axis([0607]);
title('线性卷积');
xlabel('Timeindexk2');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([0809]);
title('圆周卷积');
xlabel('Timeindexk');ylabel('Amplitude');
y2=conv(x,h)
subplot(212);
stem(k,real(y2));axis([0809]);
title('线性卷积');
xlabel('Timeindexk');ylabel('Amplitude');
x=[21013];h=[1321];
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([0707]);
title('圆周卷积');
xlabel('Timeindexk1');ylabel('Amplitude');
y2=conv(x,h)
k2=0:
length(x)+length(h)-2;
subplot(212);
stem(k2,real(y2));axis([08010]);
title('线性卷积');
xlabel('Timeindexk2');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([0807]);
title('圆周卷积');
xlabel('Timeindexk1');ylabel('Amplitude');
y2=conv(x,h)
k2=0:
length(x)+length(h)-2;
subplot(212);
stem(k2,real(y2));axis([0607]);
title('线性卷积');
xlabel('Timeindexk2');ylabel('Amplitude');
七、实验报告要求
1、报告中要给出实验的MATLAB程序;
2、简述实验目的和原理;
3、按实验步骤附上实验信号序列和幅频特性曲线,分析所得到的图形,回答每一步提出的问题。