实验内容

实验目的

学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT。

实验原理与方法

用FFT对信号做频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2\pi /N,因此要求2\pi /N \leqslant D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT做频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度做FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。

对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

实验内容及步骤

对下列序列进行谱分析:x_{1}(n)=R_{4}(n)

选择FFT的变换区间N为8和16两种情况进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。

对下列周期序列进行频谱分析:

x_{4}=cos\frac{\pi }{4}n

x_{5}=cos\frac{\pi }{4}n+cos\frac{\pi}{8}n

选择FFT的变换区间N为8和16两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。

对模拟周期信号进行频谱分析:

x_{6}(t)=cos8 \pi t+cos16\pi t+cos20\pi t

选择采样率Fs=64Hz,对变换区间N=16,32,64三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。

实验程序

%《数字信号处理(第4版)》第10章实验2程序exp2a.m
% 西安电子科技大学出版社出版  高西全  丁玉美 合著 2016年
% 时域采样理论验证
Tp=64/1000;
%产生M长采样序列x(n)
% Fs=1000;T=1/Fs;
Fs=1000;T=1/Fs;
M=Tp*Fs;n=0:M-1;
A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);  %M点FFT[xnt)]
yn='xa(nT)';
subplot(3,2,1);tstem(xnt,yn);box on;title('(a) Fs=1000Hz');
k=0:M-1;fk=k/Tp;
subplot(3,2,2);plot(fk,abs(Xk));title('(a) 	T*FT[xa(nT)],Fs=1000Hz');
xlabel('f(Hz)');
ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])
% Fs=300;T=1/Fs;
Fs=300;T=1/Fs;
M=ceil(Tp*Fs);n=0:M-1;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);  %M点FFT[xnt)]
yn='xa(nT)';
subplot(3,2,3);tstem(xnt,yn);box on;title('(b) Fs=300Hz');
k=0:M-1;fk=k/Tp;
subplot(3,2,4);plot(fk,abs(Xk));title('(b) 	T*FT[xa(nT),Fs=300Hz');
xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])
% Fs=200;T=1/Fs;
Fs=200;T=1/Fs;
M=ceil(Tp*Fs);n=0:M-1;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);  %M点FFT[xnt)]
yn='xa(nT)';subplot(3,2,5);tstem(xnt,yn);box on;title('(c) 	Fs=200Hz');
k=0:M-1;fk=k/Tp;
subplot(3,2,6);plot(fk,abs(Xk));title('(c) 	T*FT[xa(nT),Fs=200Hz');
xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])

 实验结果:

实验结果分析及实验总结

        图1a和1b说明x1(n)=R4(n)的8点DFT和16点DFT分别是x1(n)的频谱函数的8点采样和16点采样,图2a和图3a表明x3(n)=x2(n+3)8R8(n)的8点DFT的模相等,但是当N=16时,x3(n)与x2(n)不满足位移关系,所以导致2b和3b的模不相同。

        x4(n)的周期为8,所以N=8和N=16是其周期的整数倍,得到正确的单一频率正弦波的频谱,仅在0.25Π处有1跟单一谱线,如图4a和4b所示。

        X5(n)的周期为16,所以N=8时,得到的频谱不正确,如5a所示。当N=16时,为其周期的整数倍,故能得到正确的频谱,在0.25Π和0.125Π处有两根单一谱线,如图5b所示。

        x6(n)有三个频率成分,f1=4hz,f2=8hz,f3=10hz。所以x6(n)的周期为0.5,采样频率Fs=64Hz = 16f1 = 8f2 = 6.4f3。变换区间N=16时,观察时间Tp = 16T = 0.25s,不是x6(t)的整数倍周期,所以所得频谱不正确,如图6a所示。变换区间N=32,64时,观察时间Tp=0.5s,1s,是x6(t)的整数周期,所以所得频谱正确,如图6b和6c所示。图中3根谱线正好位于4Hz,8Hz,10Hz处。变换区间N=64时频谱幅度是变换区间N=32时2倍.

        通过以上实验进一步论证了当周期信号的频谱是离散谱,只有用整数倍周期的长度做FFT,得到的离散谱才能代表周期信号的频谱。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐