实验二用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子程序计算
因篇幅问题不能全部显示,请点此查看更多更全内容