如何在matlab中给图像加周期噪声

如何在matlab中给图像加周期噪声,第1张

A=imread('d:\1.bmp')

[m,n]=size(A)

for i=1:m

for j=1:n

MM(i,j)=MM(i,j)+20*sin(20*i)+20*sin(20*j)%添加周期噪声

end

end

figureimshow(MM)title(周期噪声图)%%%纯手打,楼主看着办吧

可以将正弦信号在每个时刻的值加上噪声即可实现加噪的目的。

把白噪声叠加到信号上去:

function

[Y,NOISE]

=

noisegen(X,SNR)

%

noisegen

add

white

Gaussian

noise

to

a

signal.

%

[Y,

NOISE]

=

NOISEGEN(X,SNR)

adds

white

Gaussian

NOISE

to

X.

The

SNR

is

in

dB.

NOISE=randn(size(X))

NOISE=NOISE-mean(NOISE)

signal_power

=

1/length(X)*sum(X.*X)

noise_variance

=

signal_power

/

(

10^(SNR/10)

)

NOISE=sqrt(noise_variance)/std(NOISE)*NOISE

Y=X+NOISE

其中X是纯信号,SNR是要求的信噪比,Y是带噪信号,NOISE是叠加在信号上的噪声。

对于上面的通用程序,如果X是正弦信号,SNR是要求的信噪比,那么输出的Y就是正弦信号加噪后的信号,NOISE就是所添加的噪声信号。

y = temp'*ones(1,100)%产生100个脉搏,可按需要修改

y = y(:)'

t = 0.002*[0:(length(y)-1)]+n*rand(1,length(y))%每个点为2ms即0.002s n为噪声最大值

不过一般用awgn函数添加噪声的

plot(t, y)

xlabel('时间/s')

ylabel('幅度/mV')

如果要使用randn函数添加噪声,应该如何添加,请帮忙把程序补充一下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11374694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存