FFT频谱分析及应用

更新时间:2024-06-23 12:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验二 FFT频谱分析及应用 一、实验目的:

1、通过实验加深对FFT的理解;

2、熟悉应用FFT对典型信号进行频谱分析的方法。 二、实验内容

使用MATLAB程序实现信号频域特性的分析。涉及到离散傅立叶变换(DFT)、快速傅立叶变换(FFT)及信号频率分辨率等知识点。 三、实验原理与方法和手段

在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。

有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。

在MATLAB信号处理工具箱中的函数

fft(x,N),可以用来实现序列的N点快速傅立叶变换。

经函数fft求得的序列一般是复序列,通常要求出其幅值和相位。MATLAB中提供了求复数的幅值和相位的函数:abs、angle,这些函数一般和fft同时使用。 四、实验组织运行要求

1、学生在进行实验前必须进行充分的预习,熟悉实验内容;

1

2、学生根据实验要求,读懂并理解相应的程序;

3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;

4、教师在学生实验过程中予以必要的辅导,独立完成实验; 5、采用集中授课形式。 五、实验条件

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

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

1、用FFT 进行典型信号的频谱分析: ① 高斯序列:

??

参数:p=3,q=6;p=2,q=9;p=5,q=7。 ?T进行高斯序列的频谱分析

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)))

2

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)))

10.52010.52010.520051015200051015200510152006405101520051015200640510152064

② 衰减正弦序列

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)))

3

10.50-0.5024681012141621.510.500246810121416

2、模拟信号

x(t)?2sin4(?t)?5cos8?(t),以

t?0.01n(n?0:N?1)进行采样,求:

(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');

4

xlabel('w (unit :pi)');ylabel('|X|');grid

signal x(n)1050-5-1005101520FFT N=4025303540100|X|50000.10.20.30.40.50.6w (unit :pi)0.70.80.91

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

signal x(n)1050-5-100204060FFT N=12080100120300200|X|100000.10.20.30.40.50.6w (unit :pi)0.70.80.91 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;

5

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

signal x(n)420-2-4050100150200250300FFT N=40400300|X|200100000.10.20.30.40.50.60.70.80.91w (unit :pi)

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;

6

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');

7

圆周卷积8Amplitude642001234Time index k线性卷积56788Amplitude642001234Time index k5678

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;

8

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');

圆周卷积6edut4ilpmA20012345678Time index k1线性卷积6edut4ilpmA200123456Time index k2

七、实验报告要求

1、报告中要给出实验的MATLAB程序; 2、简述实验目的和原理;

3、按实验步骤附上实验信号序列和幅频特性曲线,分析所得到的图

9

形,回答每一步提出的问题。

10

本文来源:https://www.bwwdw.com/article/7w23.html

Top