信号处理与MATLAB实践12020122孔欣然题目试用FFT找出隐藏或淹没在噪声时域信号中信号的频率成分。设计提示:1、建立试验数据,设数据的采样频率为1000Hz,给出时间坐标区间从t=0到t=0.5,步长0.001秒)。2、生成试验信号,要求生成一个包含随机噪声、且有50Hz、90Hz和120Hz三个频率成分的试验信号,并绘图。3、求出含噪声信号的离散傅立叶变换。4、求出含噪声信号的功率谱密度。5、对结果进行讨论。一:程序流程图二:主要函数名称:Plot()Subplot()Fft()Xcorr()%自相关函数三.功能首先建立试验数据,设数据的采样频率为1000Hz给出时间坐标区间从t=0到t=0.5,步长0.001秒)。生成试验信号,要求生成一个包含随机噪声、且有50Hz、90Hz和120Hz三个频率成分的试验信号,并绘图。t=0:.001:.25;x=sin(2*pi*50*t)+sin(2*pi*120*t)+sin(2*pi*90*t);%原始信号y=x+randn(size(t));%有噪声信号subplot(221)plot(x(1:50));title('原始信号')n1=1:50;Y=fft(y,256);subplot(223)Y=abs(Y(n1));plot(Y(n1));title('傅里叶变换')建立原始信号插入噪声傅里叶变换自相关函数功率谱密度subplot(222)plot(y(1:50));title('含噪信号')信号波形图如下:因为功率谱密度函数与自相关函数为一傅里叶变换对t=0:.001:.25;x=sin(2*pi*50*t)+sin(2*pi*120*t)+sin(2*pi*90*t);%原始信号y=x+randn(size(t));%有噪声信号subplot(221)plot(x(1:50));title('原始信号')n1=1:256;Y=fft(y,256);subplot(223)Y=abs(Y(n1));plot(Y(n1));title('傅里叶变换')subplot(222)plot(y(1:50));title('含噪信号')y2=xcorr(y,'unbiased');%自相关函数y2p=fft(y2,256);%功率谱yk=abs(y2p);n2=0:round(127);n3=n2*1000/256;px2=10*log10(yk(n2+1));subplot(224)plot(n3,px2);title('功率谱密度');