matlab中如何给一组数据加入给定方差的高斯噪声

g=[4,5]';
H=[1,2;1,3];
a=[2,3]';
A=g-H*a;
请问如何给g的每个元素叠加高斯白噪声为SNR=30dB,40dB,50dB

矩阵g太小,所以不明显。
一般用于大一点的矩阵实验效果会更好,例如:
h=imread('photo.jpg'); %读入彩色图片
c=rgb2gray(h); %把彩色图片转化成灰度图片,256级
figure,imshow(c),title('原始图象'); %显示原始图象
g=imnoise(c,'gaussian',0.1,0.002); %加入高斯噪声
figure,imshow(g),title('加入高斯噪声之后的图象'); %显示加入高斯噪声之后
上面倒数第二句就是在原图加上高斯噪声的效果。追问

谢谢你!但是我还是不明白的是,imnoise是给图像加噪声,我是想给矩阵的没个元素加高斯噪声,所以用imnoise好像不行。

追答

图像也是二维矩阵,我程序中不是已经转换为灰度矩阵了嘛!注意imnoise参数的用法!

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-08
方法一:
I=imread(‘lena.bmp’);
I=double(I);
J=I+15*randn(size(I));
imshow(uint8(J));
方法二:nos=nos_mean+sqrt(nos_vari)*randn(framesize)
方法三:nos=normrnd(MU,SIGMA,m,n)
MU:noise mean;SIGMA:noise variance; image size:m*n
相似回答