您的当前位置:首页正文

用FFT做谱分析实验报告

2022-11-15 来源:客趣旅游网

实验二用FFT做谱分析

一、实验目的

1.进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。

2.熟悉FFT算法原理和FFT子程序的应用。

3.学习用FFT对连续信号和时域离散信号进行谱分析的方法

二、实验原理

如果给出的是连续信号_a(t),则首先要根据其最高频率确定抽样频率fs以及由频率分辨率选择抽样点数N,然后对其进行软件抽样(即计算_(n)=_a(nT),0≤n≤N-1),产生对应序列_(n)。再利用MATLAB所提供的库函数fft(n,_)进行FFT计算

三、实验内容

①实验信号:

_1(n)=R4(n)

n1,_2(n)=8n,

4n,_3(n)=n3,

0,0n34n7其他n0n34n7其他n

_4(n)=cos(πn/4)

_5(n)=sin(πn/8)

_6(t)=cos8πt+cos16πt+cos20π

FFT变换区间及_6(t)抽样频率fs

_1(n),_2(n),_3(n),_4(n),_5(n):N=8,16

_6(t):fs=64(Hz),N=16,32,64

②MATLAB程序代码

N1=8;

N2=16;

_1=ones(1,4);

_2=[1:4,4:-1:1];

_3=[4:-1:1,1:4];

n=0:1:16;

_4=cos(pin/4);

_5=sin(pin/8);

_11=fft(_1,N1);

_11=abs(_11);

_21=fft(_2,N1);

_21=abs(_21);

_31=fft(_3,N1);

_31=abs(_31);

_41=fft(_4,N1);

_41=abs(_41);

_51=fft(_5,N1);

_51=abs(_51);

_12=fft(_1,N2);

_12=abs(_12);

_22=fft(_2,N2);

_22=abs(_22);

_32=fft(_3,N2);

_32=abs(_32);

_42=fft(_4,N2);

_42=abs(_42);

_52=fft(_5,N2);

_52=abs(_52);

figure(1);

subplot(3,1,1);stem(_1);grid;%_1时域波形

_label('n');ylabel('_1(n)')

title('N=8的时域图')

subplot(3,1,2);stem(_11);grid;%_1在N=8的FFT变换频谱图_label('Hz');ylabel('|_11(k)|')

title('N=8的频谱图')

subplot(3,1,3);stem(_12);grid;%_1在N=16的FFT变换频谱图_label('Hz');ylabel('|_12(k)|')

title('N=16的频谱图')

figure(2);

subplot(3,1,1);stem(_2);grid;%_2时域波形

_label('n');ylabel('_2(n)')

title('N=8的时域图')

subplot(3,1,2);stem(_21);grid;%_2在N=8的FFT变换频谱图_label('Hz');ylabel('|_21(k)|')

title('N=8的频谱图')

subplot(3,1,3);stem(_22);grid;%_2在N=16的FFT变换频谱图_label('Hz');ylabel('|_22(k)|')

title('N=16的频谱图')

figure(3);

subplot(3,1,1);stem(_3);grid;%_3时域波形

_label('n');ylabel('_3(n)')

title('N=8的时域图')

subplot(3,1,2);stem(_31);grid;%_3在N=8的FFT变换频谱图_label('Hz');ylabel('|_31(k)|')

title('N=8的频谱图')

subplot(3,1,3);stem(_32);grid;%_3在N=16的FFT变换频谱图_label('Hz');ylabel('|_32(k)|')

title('N=16的频谱图')

figure(4);

subplot(3,1,1);stem(_4);grid;%_4时域波形

_label('n');ylabel('_4(n)')

title('N=8的时域图')

subplot(3,1,2);stem(_41);grid;%_4在N=8的FFT变换频谱图_label('Hz');ylabel('|_41(k)|')

title('N=8的频谱图')

subplot(3,1,3);stem(_42);grid;%_4在N=16的FFT变换频谱图_label('Hz');ylabel('|_42(k)|')

title('N=16的频谱图')

figure(5);

subplot(3,1,1);stem(_5);grid;%_5时域波形

_label('n');ylabel('_5(n)')

title('N=8的时域图')

subplot(3,1,2);stem(_51);grid;%_5在N=8的FFT变换频谱图_label('Hz');ylabel('|_51(k)|')

title('N=8的频谱图')

subplot(3,1,3);stem(_52);grid;%_5在N=16的FFT变换频谱图_label('Hz');ylabel('|_52(k)|')

title('N=16的频谱图')

_6信号程序代码

fs=64;

T=1/fs;

t=0:T:1-T;

_6=cos(2pi4t)+cos(2pi8t)+cos(2pi10t);

N1=16;

N2=32;

N3=64;

_61=fft(_6,N1);

_61=abs(_61);

a_is([0701])

_62=fft(_6,N2);

_62=abs(_62);

a_is([0701])

_63=fft(_6,N3);

_63=abs(_63);

a_is([0701])

figure(1);

stem(_6);grid;

_label('n');ylabel('_6(n)');

title('_6时域波形')

figure(2)

subplot(3,1,1);stem(_61);grid;

_label('Hz');ylabel('_6(k)');

title('N=16时_6频谱波形')

subplot(3,1,2);stem(_62);grid;

_label('Hz');ylabel('_6(k)');

title('N=32时_6频谱波形')

subplot(3,1,3);stem(_63);grid;

_label('Hz');ylabel('_6(k)');

title('N=64时_6频谱波形')

③信号时域、FFT变换后的频谱波形

a._1信号时域、频谱波形

b._2信号时域、频谱波形

c._3信号时域、频谱波形

d._4信号时域、频谱波形

e._5信号时域、频谱波形

f._5信号时域波形

g._5信号频谱波形

四、实验结论

1.离散时间信号的FFT变换,其频谱是以抽样点数N为周期的周期延拓

2.当N2为N1的整数倍时,以N2为抽样点数的抽样的图形就是在以N1为抽样点数的抽样图形的每两个点之间插入N2/N1个点的谱图形

五、思考题

(1)在N=8时,_2(n)和_3(n)的幅频特性会相同吗为什么N=16呢

在N=8时,_2(n)和_3(n)的幅频特性会相同;在N=16时,_2(n)和_3(n)的幅频特性会相同;

因为当N=8时,_2(n)={1,2,3,4,4,3,2,1},_3(n)={4,3,2,1,1,2,3,4}而采样的频率都为8,_1((n))8与_2((n))8相等

当N=16时_2(n)={1,2,3,4,4,3,2,1,0,0,0,0,0,0,0,0}

_3(n)={4,3,2,1,1,2,3,4,0,0,0,0,0,0,0,0}而采样频率都为16,进行周期延拓后,_1((n))16与_2((n))16不相等

(2)如果周期信号的周期预先不知道,如何用FFT进行谱分析确定一个N,再在MATLAB中调用FFT子程序计算

因篇幅问题不能全部显示,请点此查看更多更全内容