CAD3
3-22 考虑一个被噪声污染的信号,很难看出它所包含的频率分量。应用Matlab 中的傅立叶变换可以在噪声中发现淹没在其中的信号。Y = fft(X,n)即是采用n 点的FFT变换。
举例:一个由50MHz和120MHz正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为1000Hz。现可通过fft函数来分析其信号频率成份。
参考程序:
t=0:0.001:0.6;
X=sin(2*pi*50*t)+sin(2*pi*120*t);
y=X+1.5*randn(1,length(t));
Y=fft(y,512);
P=Y .*conj(Y)/512;
f=1000*(0:255)/512;
plot(f,P(1:256))
这样可得到信号功率谱密度图。
- MATLAB程序
MATLAB程序代码如下:
t=0:0.001:0.6;
X=sin(2*pi*50*t)+sin(2*pi*120*t);
y=X+1.5*randn(1,length(t));
Y=fft(y,512);
P=Y .*conj(Y)/512;
f=1000*(0:255)/512;
figure(1);
subplot(1,2,1);
plot(t,y,'b');
xlabel('t');
ylabel('y');
axis([0,0.6,0,8]);
subplot(1,2,2);
plot(f,P(1:256),'r')
xlabel('f');
ylabel('Y');
- 程序运行结果
运行程序得到信号功率谱密度图。
- 分析总结
- 由功率谱密度可以看出,谱线最大的两条对应输入的50Hz和120Hz,并受随机噪声的干扰。与题意相符。
- 熟悉MATLAB自带函数的使用。
- 分析信号要做到时域频域相结合。