西南科技大学信号与系统A实验二(信号频谱分析)
一、实验目的
1.掌握用 matlab 软件绘制信号频谱的方法;
2.进一步理解抽样定理;
3.理解傅里叶变换的性质(频移特性).
二、实验原理
(一)fft 函数的调用
matlab 提供 fft 函数来计算信号 x(n)的快速离散傅里叶变换 (FFT).
z 格式:y=fft(x)
计算信号 x 的快速离散傅里叶变换 y.若 x 的数据长度为 2 的整数次幂时,用基-2 算法,运算速度较快,否则采用较慢的分裂算法.
z 格式:y=fft(x,N)
计算信号 x 的 N 点快速离散傅里叶变换,若 x 的数据长度大于 N,截断 x,若 x 的数据实际长度小于 N,则自动补一些零,使之长度等于 N.
快速离散傅里叶反变换(IFFT).
z x=ifft(Y)
注意: 1.频率计算.若 N 点序列 x(n)(n=0,1,…,N-1)是在采样频率 fs(Hz)下获得,它的快速离散傅里叶 变换(FFT)也是 N 点序列. 即 X(k)(k=0,1,…,N-1),则第 k 点所对应的实际频率 f=k×fs/N. 2.作快速离散傅里叶变换时,幅值大小与选择点数 N 有关,但不影响分析结果.
(二)频谱分析
例:用 FFT 分析信号频率成分
一被噪声污染的信号,很难看出它所包含的频率分量,如一个由 50Hz 和 150Hz 正弦信号
构成的信号,受到均值为零、均方差为 0.5 的高斯随机信号的于扰,数据采样率 fs=500Hz.通过FFT 来分析其信号频率成分,用 matlab 实现如下:
fs=500; %采样频率 fs=500Hz.
t=0:1/fs:1; %采样周期为 1/fs.
f=sin(2*pi*50*t); % 产生信号 f(t)
subplot(3,1,1);plot(t,f);title('原始信号');
y=f+0.5*randn(1,length(t)); %加噪
subplot(3,1,2);plot(t,y);title('受噪声污染的信号');
N=250;
Y=fft(y,N); %对加噪信号进行 FFT
k=0:N-1;
f=fs*k/N;
subplot(3,1,3);plot(f,abs(Y));title('FFT(幅度谱)');
(由频谱图可见,在 50Hz 和