3 FFT 频谱分析及应用
3.1 实验目的
1、通过实验加深对FFT 的理解;
2、熟悉应用FFT 对典型信号进行频谱分析的方法。
3.1 实验原理
在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT 不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。
有限长序列的 DFT 是其z 变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT 是DFT 的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。在 MATLAB 信号处理工具箱中的函数fft(x,n),可以用来实现序列的N 点快速傅立叶变换。
经函数fft求得的序列一般是复序列,通常要求出其幅值和相位。MATLAB中提供了求复数的幅值和相位的函数:abs、angle,这些函数一般和fft同时使用。
3.3.3 实验内容以及步骤
被噪声污染得信号,比较难看出所包含得频率分量,如一个由50Hz 和120Hz正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为1000Hz,试用FFT 函数来分析其信号频率成分,要求:○1 画出时域波形;○2 分析信号功率谱密度。
N = 40;
n = 0:N-1;
t = 0.01*n;
x = 2*sin(4*pi*t) + 5*cos(8*pi*t);
k = 0:N/2;
w = 2*pi/N*k;
X = fft(x, N);
magX = abs(X(1:N/2+1));
subplot(2, 1, 1);stem(n, x, '.');title('signal x(n)');
subplot(2, 1, 2);stem(magX);title('FFT N=40');
xlabel('f (unit : pi)'); ylabel('|X|');grid
3.3.4 实验结果分析