用fft做谱分析实验报告.docx
《用fft做谱分析实验报告.docx》由会员分享,可在线阅读,更多相关《用fft做谱分析实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
用fft做谱分析实验报告
实验二用FFT做谱分析
1、实验目的
1.进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
2.熟悉FFT算法原理和FFT子程序的应用。
3.学习用FFT对连续信号和时域离散信号进行谱分析的方法
2、实验原理
如果给出的是连续信号xa(t),则首先要根据其最高频率确定抽样频率fs以及由频率分辨率选择抽样点数N,然后对其进行软件抽样(即计算x(n)=xa(nT),0≤n≤N-1),产生对应序列x(n)。
再利用MATLAB所提供的库函数fft(n,x)进行FFT计算
3、实验内容
①实验信号:
x1(n)=R4(n)
x2(n)=
x3(n)=
x4(n)=cos(πn/4)
x5(n)=sin(πn/8)
x6(t)=cos8πt+cos16πt+cos20π
FFT变换区间及x6(t)抽样频率fs
x1(n),x2(n),x3(n),x4(n),x5(n):
N=8,16
x6(t):
fs=64(Hz),N=16,32,64
②MATLAB程序代码
N1=8;
N2=16;
x1=ones(1,4);
x2=[1:
4,4:
-1:
1];
x3=[4:
-1:
1,1:
4];
n=0:
1:
16;
x4=cos(pi*n/4);
x5=sin(pi*n/8);
X11=fft(x1,N1);
X11=abs(X11);
X21=fft(x2,N1);
X21=abs(X21);
X31=fft(x3,N1);
X31=abs(X31);
X41=fft(x4,N1);
X41=abs(X41);
X51=fft(x5,N1);
X51=abs(X51);
X12=fft(x1,N2);
X12=abs(X12);
X22=fft(x2,N2);
X22=abs(X22);
X32=fft(x3,N2);
X32=abs(X32);
X42=fft(x4,N2);
X42=abs(X42);
X52=fft(x5,N2);
X52=abs(X52);
figure
(1);
subplot(3,1,1);stem(x1);grid;%x1时域波形
xlabel('n');ylabel('x1(n)')
title('N=8的时域图')
subplot(3,1,2);stem(X11);grid;%x1在N=8的FFT变换频谱图
xlabel('Hz');ylabel('|X11(k)|')
title('N=8的频谱图')
subplot(3,1,3);stem(X12);grid;%x1在N=16的FFT变换频谱图
xlabel('Hz');ylabel('|X12(k)|')
title('N=16的频谱图')
figure
(2);
subplot(3,1,1);stem(x2);grid;%x2时域波形
xlabel('n');ylabel('x2(n)')
title('N=8的时域图')
subplot(3,1,2);stem(X21);grid;%x2在N=8的FFT变换频谱图
xlabel('Hz');ylabel('|X21(k)|')
title('N=8的频谱图')
subplot(3,1,3);stem(X22);grid;%x2在N=16的FFT变换频谱图
xlabel('Hz');ylabel('|X22(k)|')
title('N=16的频谱图')
figure(3);
subplot(3,1,1);stem(x3);grid;%x3时域波形
xlabel('n');ylabel('x3(n)')
title('N=8的时域图')
subplot(3,1,2);stem(X31);grid;%x3在N=8的FFT变换频谱图
xlabel('Hz');ylabel('|X31(k)|')
title('N=8的频谱图')
subplot(3,1,3);stem(X32);grid;%x3在N=16的FFT变换频谱图
xlabel('Hz');ylabel('|X32(k)|')
title('N=16的频谱图')
figure(4);
subplot(3,1,1);stem(x4);grid;%x4时域波形
xlabel('n');ylabel('x4(n)')
title('N=8的时域图')
subplot(3,1,2);stem(X41);grid;%x4在N=8的FFT变换频谱图
xlabel('Hz');ylabel('|X41(k)|')
title('N=8的频谱图')
subplot(3,1,3);stem(X42);grid;%x4在N=16的FFT变换频谱图
xlabel('Hz');ylabel('|X42(k)|')
title('N=16的频谱图')
figure(5);
subplot(3,1,1);stem(x5);grid;%x5时域波形
xlabel('n');ylabel('x5(n)')
title('N=8的时域图')
subplot(3,1,2);stem(X51);grid;%x5在N=8的FFT变换频谱图
xlabel('Hz');ylabel('|X51(k)|')
title('N=8的频谱图')
subplot(3,1,3);stem(X52);grid;%x5在N=16的FFT变换频谱图
xlabel('Hz');ylabel('|X52(k)|')
title('N=16的频谱图')
x6信号程序代码
fs=64;
T=1/fs;
t=0:
T:
1-T;
x6=cos(2*pi*4*t)+cos(2*pi*8*t)+cos(2*pi*10*t);
N1=16;
N2=32;
N3=64;
X61=fft(x6,N1);
X61=abs(X61);
axis([0701])
X62=fft(x6,N2);
X62=abs(X62);
axis([0701])
X63=fft(x6,N3);
X63=abs(X63);
axis([0701])
figure
(1);
stem(x6);grid;
xlabel('n');ylabel('x6(n)');
title('x6时域波形')
figure
(2)
subplot(3,1,1);stem(X61);grid;
xlabel('Hz');ylabel('X6(k)');
title('N=16时x6频谱波形')
subplot(3,1,2);stem(X62);grid;
xlabel('Hz');ylabel('X6(k)');
title('N=32时x6频谱波形')
subplot(3,1,3);stem(X63);grid;
xlabel('Hz');ylabel('X6(k)');
title('N=64时x6频谱波形')
③信号时域、FFT变换后的频谱波形
a.x1信号时域、频谱波形
b.x2信号时域、频谱波形
c.x3信号时域、频谱波形
d.x4信号时域、频谱波形
e.x5信号时域、频谱波形
f.x5信号时域波形
g.x5信号频谱波形
4、实验结论
1.离散时间信号的FFT变换,其频谱是以抽样点数N为周期的周期延拓
2.当N2为N1的整数倍时,以
为抽样点数的抽样的图形就是在以
为抽样点数的抽样图形的每两个点之间插入N2/N1个点的谱图形
5、思考题
(1)在N=8时,x2(n)和x3(n)的幅频特性会相同吗?
为什么?
N=16呢?
在N=8时,x2(n)和x3(n)的幅频特性会相同;在N=16时,x2(n)和x3(n)的幅频特性会相同;
因为当N=8时,x2(n)={1,2,3,4,4,3,2,1},x3(n)={4,3,2,1,1,2,3,4}而采样的频率都为8,x1((n))8与x2((n))8相等
当N=16时x2(n)={1,2,3,4,4,3,2,1,0,0,0,0,0,0,0,0}
x3(n)={4,3,2,1,1,2,3,4,0,0,0,0,0,0,0,0}而采样频率都为16,进行周期延拓后,x1((n))16与x2((n))16不相等
(2)如果周期信号的周期预先不知道,如何用FFT进行谱分析?
确定一个N,再在MATLAB中调用FFT子程序计算