jisai 发表于 2012-8-31 22:58

求助:一维信号中加5%、10%高斯白噪声(matlab实现)

本帖最后由 jisai 于 2012-8-31 22:58 编辑

经常在文献中看到,一维信号添加5%、10%、20%的高斯白噪声,在matlab中如何实现呢?
一、《加速度信号中加10%的噪声》中VibrationMaster 先生提到用如下方法解决(加10%噪声):
forum.vibunion.com/forum-viewthread-tid-97095-fromuid-188501.html

1. 假定x(1),x(2),....,x(n)是计算得到的加速度.
2. 计算出它的方差 sigma
3. 用 sigma*sqrt(10%)*randn(1,n) 或 sigma*sqrt(10%)*randn(n,1)产生n个随机数
4.将n个随机数分别加到x(1),x(2),....,x(n)-->完成任务

二、matlab中函数: AWGN可在某一信号中加入高斯白噪声信号中
y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。
具体见eight大侠的《关于信噪比与向已知信号添加噪声的整理及个人心得》
forum.vibunion.com/article-49-1.html

三、那么加5%、10%、20%的高斯白噪声和信噪比SNR之间的关系是什么呢?(求助)
根据信噪比的定义,baike.baidu.com/view/7271.htm#4
SNR=10*log10(信号能量/噪声能量),那么:

1、一维信号中加5%的高斯白噪声是否可理解为:加入的噪声能量为信号的5%;设信号能量为1,则噪声能量为0.05,则:
   一维信号中加5%的高斯白噪声相当于加信噪比SNR=10*log10(1/0.05)=10*log10(20)=13.01的噪声信号;
   matlab程序:y=awgn(x,13.01) %对x加5%的高斯白噪声

2、同理:
   y=awgn(x,10);         %对x加10%的高斯白噪声
   y=awgn(x,6.9897);%对x加20%的高斯白噪声

以上理解是否正确,请各位大侠指正。谢谢

jisai 发表于 2012-9-2 20:33

自己顶一下,盼高手能帮忙分析一下,用awgn函数,加5%、10%、20%噪声的使用方法,谢谢。
页: [1]
查看完整版本: 求助:一维信号中加5%、10%高斯白噪声(matlab实现)