用FFT做谱分析实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 用FFT 做谱分析
一、实验目的
1. 进一步加深DFT 算法原理和基本性质的理解(因为 FFT 只是DFT 的一种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质)。
2. 熟悉FFT 算法原理和FFT 子程序的应用。
3. 学习用FFT 对连续信号和时域离散信号进行谱分析的方法
二、实验原理
如果给出的是连续信号x a (t),则首先要根据其最高频率确定抽样频率f s 以及由频率分辨率选择抽样点数N ,然后对其进行软件抽样(即计算 x(n)=x a (nT),0≤n ≤N-1),产生对应序列 x(n)。
再利用MATLAB 所提供的库函数fft(n,x)进行FFT 计算
三、实验内容
①实验信号:
x1(n) = R4(n)
x 2(n) = ⎪⎩
⎪⎨⎧≤≤-≤≤+n n n n n 其他,074,
830,1 x 3(n) = ⎪⎩⎪⎨⎧≤≤-≤≤-n
n n n n 其他,074,
330,4 x 4(n) = cos(πn /4)
x 5(n) = sin(πn /8)
x 6(t) = cos8πt + cos16πt + cos20π
FFT 变换区间及x 6(t)抽样频率fs
x 1(n) , x 2(n) , x 3(n) , x 4(n) , x 5(n):N = 8 , 16
x 6(t):f s = 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([0 7 0 1])
X62=fft(x6,N2);
X62=abs(X62);
axis([0 7 0 1])
X63=fft(x6,N3);
X63=abs(X63);
axis([0 7 0 1])
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信号频谱波形
四、实验结论
1.离散时间信号的FFT 变换,其频谱是以抽样点数N 为周期的周期延拓
2.当N2为N1的整数倍时,以2N 为抽样点数的抽样的图形就是在以1N 为抽样点数的抽样图形的每两个点之间插入N2/N1个点的谱图形
五、思考题
(1) 在N=8时,x 2(n)和x 3(n)的幅频特性会相同吗?为什么?N=16呢?
在N=8时,x
2(n)和x
3
(n)的幅频特性会相同;在N=16时,x
2
(n)和x
3
(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子程序计算。