首先,我们需要生成一个随机信号。
加入下面几行代码,已注释:
fs=500; %采样率
f1=7; %信号频率
f2=9; %信号频率
T=1; %时宽1s
n=round(T*fs); %采样点个数(四舍五入)
o=2*pi*rand; %生成(0:2π)之间的随机相位
t=linspace(0,T,n);%时域横坐标
x=2+cos(2*pi*f1*t+o)+2*cos(2*pi*f2*t+o);%形成三频信号,注意第二个频率信号幅度为2,直流幅度为3。
这样我们可以生成一个随机信号,将横坐标的范围值确定一下,在使用MATLAB作图工具绘制,如图所示:
plot(t,x);%画时域图
再对信号进行傅里叶变换:
X=fftshift(fft(x)); %用fft得出离散傅里叶变换,并将零频信号,搬移到频谱中心。
最重要的一部就是确定横坐标f(HZ),坐标范围可以根据奈奎斯特定律划定,得出频谱图:
f=linspace(-fs/2,fs/2,n);%频域横坐标,根据奈奎斯特采样定理。
plot(f,abs(X));%画双侧频谱幅度图,可用绝对值也可去掉。
再试试对信号加入高斯白噪声,首先确认一个均值为0,方差为4的高斯白噪声信号,并加在原始信号x上,画出加噪后的信号图:
N=2*randn(size(t));%生成一个均值为0,方差为4的高斯噪声信号
y=x+N;%给信号加上高斯噪声干扰
plot(t,y);
最后对加噪后的信号进行傅里叶变化得到频谱图:
Y=fftshift(fft(y))%快速傅里叶变化得出频域,再将其搬移到中心。
plot(f,abs(Y));
把上述生成图放一块对比分析后,形成下列图像
如有错误还请各位大佬多多指点。