MATLAB学习笔记——加入高斯白噪声信号傅里叶fft转换生成频谱图

2 篇文章 0 订阅
2 篇文章 0 订阅

首先,我们需要生成一个随机信号。 

加入下面几行代码,已注释:

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));

把上述生成图放一块对比分析后,形成下列图像

如有错误还请各位大佬多多指点。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值