小波变换与低通高通滤波器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

请高手指点一下:std_n=20; % Gaussian noise standard deviation In=randn(size(X))*std_n; % White Gaussian noise

X=X+In;这样加给原图像的噪声偏差是20,那么它的噪声方差是多少啊?请问

一下噪声方差和噪声偏差是什么关系啊!randn产生了均值为0方差为1的随

机数,那么它乘以20是不是就是均值为0方差为20的随机数阿?谢谢了

MATLAB 还想问问这种方式得到的噪声与 imnoise(I,‘gaussian’,v)得

到的有什么区别

方差定义:var(x)=E[(x-E(x))^2]E(x)=0时,有var(x)=E(x^2)则

var(ax)=E((ax)^2)=a^2*E(x^2) In=randn(size(X))*std_n得到的数据方差为

(std_n)^2。

matlab中awgn函数为例说明:

在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪

声。即,wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。

根据awgn的实现代码可以知道“向已知信号添加某个信噪比(SNR)的高斯白

噪声”,

即:awgn(x,snr,’measured’,'linear’),命令的作用是对原信号x添加信

噪比(比值)为SNR的噪声,在添加之前先估计信号x的强度。

这里涉及三个问题:在awgn这个函数中,SNR是如何计算的?什么是信号

的强度?awgn函数具体是如何添加噪声的?

事实上,前两个问题是相关的,因为根据定义,SNR就是信号的强度除以噪声

的强度,所以,首先来讲讲信号的强度。其实信号的强度指的就是信号的能

量,在连续的情形就是对x平方后求积分,而在离散的情形自然是求和代替积

分了。在matlab中也是这样实现的,只不过多了一个规范化步骤罢了:

sigPower = sum(abs(sig(: )).^2)/length(sig(: ))

这就是信号的强度。至此,SNR的具体实现也不用多说了(注:由于采用的是

比值而非db,所以与下面“计算信噪比”所使用的方式不同,即没有求对数步

骤)。

最后说说awgn函数具体是如何添加噪声的。事实上也很简单,在求出x的强度

后,结合指定的信噪比,就可以求出需要添加的噪声的强度

noisePower=sigPower/SNR。由于使用的是高斯白噪声即randn函数,而randn

的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就

知道了,注意信号的长度不能太小)。于是,所要添加的噪声信号显然就是:sqrt(noisePower)*randn(n,1),其中n为信号长度。

自然要求的白噪声的方差也可以求出来了!

更新

程序如下

function snr=SNR(I,In)

% 计算信号噪声比函数

% I :original signal

% In:noisy signal(ie. original signal + noise signal)

% snr=10*log10(sigma2(I2)/sigma2(I2-I1))

[row,col,nchannel]=size(I);

snr=0;

if nchannel==1%gray image

Ps=sum(sum((I-mean(mean(I))).^2));%signal power

Pn=sum(sum((I-In).^2));%noise power

snr=10*log10(Ps/Pn);

elseif nchannel==3%color image

for i=1:3

Ps=sum(sum((I(:,:,i)-mean(mean(I(:,:,i)))).^2));%signal power

Pn=sum(sum((I(:,:,i)-In(:,:,i)).^2));%noise power

snr=snr+10*log10(Ps/Pn);

end

snr=snr/3;

end

相关文档
最新文档