用FFT做谱分析实验报告

用FFT做谱分析实验报告
用FFT做谱分析实验报告

实验二 用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子程序计算

相关主题
相关文档
最新文档