深入理解awgn函数如何向信号中添加高斯白噪声功率谱密度函数

t = 0:.1:10;
y = awgn(x,5); % Add white Gaussian noise.
plot(t,x,t,y) % Plot both signals.legend('Original signal','Signal with AWGN');
t = 0:.1:10;
y = awgn(x,5,'measured'); % Add white Gaussian noise.
plot(t,x,t,y) % Plot both signals.
legend('Original signal','Signal with AWGN');
注意是否使用'measured'属性,对产生的噪声的影响是很大的。
白噪声,高斯噪声,高斯白噪声
白噪声,就是说频谱为一常数;也就是说,其协方差函数在delay=0时不为0,在delay不等于0时值为零;换句话说,样本点互不相关。所以,“白”与“不白”是和分布没有关系。当随机的从高斯分布中获取采样...
图像基本噪声添加函数
以前学习图像处理时,写的函数代码呀!
编程环境:windows下结合opencv库。enum NOISE_TYPE
//图像噪声类型
//均匀噪声,高斯噪声,椒盐噪声
NOISE_UNIF...
向数据中添加高斯噪声
什么是高斯噪声高斯噪声既是符合高斯正态分布的误差。一些情况下我们需要向标准数据中加入合适的高斯噪声会让数据变得有一定误差而具有实验价值。高斯噪声还有一些其他用途但是我不太了解,这里我是为了实现多项式拟...
AWGN函数详解
(matlab)
Matlab函数——awgn
awgn白高斯噪声
6415人阅读 评论(0)
本文章已收录于:
Matlab函数——awgn
将白色高斯噪声添加到信号中
y = awgn(x,snr)
y = awgn(x,snr,sigpower)
y = awgn(x,snr,'mea...
awgn、wgn函数添加噪声原理
川草天涯的博客
以matlab中awgn函数为例说明:
在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即:wgn函数中调用了randn函数,...
深入理解awgn函数如何向信号中添加高斯白噪声
引言在数值模拟应用中,经常在模拟信号中添加噪声数据,分析不同模型的信号解析能力。博文使用MATLAB中提供的awgnawgn函数向信号XX添加高斯白噪声,但从实现原理上分析了awgnawgn的实现过程...
Matlab实现高斯白噪声
英文名称:white
定义:均匀分布于给定频带上的高斯噪声;
所谓高斯白噪声中的高斯是指概率...
MATLAB中产生高斯白噪声,涉及到awgn和wgn函数(转)
MATLAB中产生高斯白噪声,涉及到awgn和wgn函数
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信...
用 FPGA 产生高斯白噪声序列的一种快速方法
用 FPGA 产生高斯白噪声序列的一种快速方法
http://www.21ic.com/app/eda/16.htm
http://www....
没有更多推荐了,您的位置: &
AWGN信道下匹配滤波器对8PSK信号的接收建模
优质期刊推荐 上传我的文档
 上传文档
 下载
 收藏
粉丝量:34
该文档贡献者很忙,什么也没留下。
 下载此文档
matlab的高斯白噪声
下载积分:600
内容提示:matlab的高斯白噪声
文档格式:PDF|
浏览次数:760|
上传日期: 00:09:47|
文档星级:
全文阅读已结束,如果下载本文需要使用
 600 积分
下载此文档
该用户还上传了这些文档
matlab的高斯白噪声
关注微信公众号扫一扫,访问微社区
只需一步,快速开始
请完成以下验证码
请完成以下验证码
查看: 97673|回复: 67|关注: 0
MATLAB中产生高斯白噪声,涉及到awgn和wgn函数
<h1 style="color:#0 麦片财富积分
入门, 积分 100, 距离下一级还需 400 积分
关注者: 28
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。
1. WGN:产生高斯白噪声
y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。
y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。
y = wgn(m,n,p,imp,state) 重置RANDN的状态。
在数值变量后还可附加一些标志性参数:
y = wgn(…,POWERTYPE) 指定p的单位。POWERTYPE可以是'dBW', 'dBm'或'linear'。线性强度(linear power)以瓦特(Watt)为单位。
y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE可以是'real'或'complex'。
2. AWGN:在某一信号中加入高斯白噪声
y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。
y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。
y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。
y = awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。
1. 分贝(decibel,dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。
2. 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。
3. dBm (dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。
0 dBm = 1 mW
10 dBm = 10 mW
20 dBm = 100 mW
也可直接用randn函数产生高斯分布序列,例如:
y=randn(1,2500);
y=y/std(y);
y=y-mean(y);
b=sqrt(0.9596);
就得到了 N ( 0.6 ) 的高斯分布序列
产生指定方差和均值的随机数
设某个随机变量x均值为mu,方差为var^2,若要产生同样分布的随机变量y,但使新的随
机变量参数改变,均值为mu_1,方差为var_1^2,可以用如下公式进行变换:
y=var_1/var*(x-mu)+mu_1,其中x为随机变量,其余为常数(原分布参数)。
具体到正态分布,若要产生均值为u,方差为o^2的M*N的随机数矩阵,可以用
y=o*randn(M,N)+u得到。
对于均匀分布,若要产生[a,b]区间的均匀分布的M*N的随机数矩阵,则可以用
y=rand(M,N)*(b-a)+a得到。
%===========================================================%
上述资料基本上完整地描述了原始问题,不过有几点内容附带说明一下:
1. 首先更正一个错误,我认为在“生成N ( 0.6 ) 的高斯分布序列”的程序中,应该改为以下的代码:
y=randn(1,2500);
y=y-mean(y);
y=y/std(y);
b=sqrt(0.9596);
2. 上面资料最后部分隐含了一个出自zhyuer 版友的结论:
%==========================zhyuer===================================%
1)& && && &rand产生的是[0,1]上的均匀分布的随机序列
2)& && && &randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;
%===================================================================%
也就是说,可以直接使用上面两个函数对原始信号添加噪声(例如y=x+rand(length(x),1)或者y=x+randn(length(x),1))
3.事实上,无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即,wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。下面就我熟悉的“向已知信号添加某个信噪比(SNR)的高斯白噪声”来说明一下,不过如果大家阅读过awgn的实现代码就不用看下去了,呵呵。从上述可知,这个任务可以使用awgn函数实现,具体命令是:awgn(x,snr,’measured’,'linear’),命令的作用是对原信号f(x)添加信噪比(比值)为SNR的噪声,在添加之前先估计信号f的强度。这里涉及三个问题:在awgn这个函数中,SNR是如何计算的?什么是信号的强度?awgn函数具体是如何添加噪声的?事实上,前两个问题是相关的,因为根据定义,SNR就是信号的强度除以噪声的强度,所以,首先来讲讲信号的强度。其实信号的强度指的就是信号的能量,在连续的情形就是对f(x)平方后求积分,而在离散的情形自然是求和代替积分了。在matlab中也是这样实现的,只不过多了一个规范化步骤罢了:
& & sigPower = sum(abs(sig(:)).^2)/length(sig(:))
这就是信号的强度。至此,SNR的具体实现也不用多说了(注:由于采用的是比值而非db,所以与下面“计算信噪比”所使用的方式不同,即没有求对数步骤)。
最后说说awgn函数具体是如何添加噪声的。事实上也很简单,在求出f的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower=sigPower/SNR。由于使用的是高斯白噪声即randn函数,而randn的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就知道了,注意信号的长度不能太小)。于是,所要添加的噪声信号显然就是:sqrt(noisePower)*randn(n,1),其中n为信号长度。
污染一个地方有两种方法——垃圾,钞票!
<h1 style="color:# 麦片财富积分
我来顶一下,写的不错,思路清晰。
<h1 style="color:# 麦片财富积分
感谢楼主分享!
<h1 style="color:# 麦片财富积分
回复 1# strongbox 的帖子
内容非常的详细,顶一下,谢谢分享!
<h1 style="color:# 麦片财富积分
太有用了,清楚明了,谢谢楼主
<h1 style="color:# 麦片财富积分
内容非常的详细,顶一下,谢谢分享!
<h1 style="color:# 麦片财富积分
谢谢楼主,应该给楼主加分,呵呵
<h1 style="color:# 麦片财富积分
其实这两个噪声
<h1 style="color:# 麦片财富积分
好东西,支持一下
<h1 style="color:# 麦片财富积分
关注者: 4
楼主这个是原创还是转贴啊,
这篇资料是您发的吗?
熟悉智能算法、混沌、规划问题、图像处理、GUI制作,可联系QQ
站长推荐 /3
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区以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(: ))
这就是信号的强度,这里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);
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
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);
snr=snr/3;
****************************************************************************************************************************************
一个例子:
X = sqrt(2)*sin(0:pi/*pi);
%产生正弦信号
Y = awgn(X,10,'measured');
%加入信噪比为10db的噪声,加入前预估信号的功率(强度)
sigPower = sum(abs(X).^2)/length(X)
%求出信号功率
noisePower=sum(abs(Y-X).^2)/length(Y-X)
%求出噪声功率
SNR=10*log10(sigPower/noisePower)
%由信噪比定义求出信噪比,单位为db
*******************************************************************************************************************************************
WGN(m,n,p)产生功率为p dBW的m*n的高斯白噪声矩阵,其中p是以dbW为单位的输出强度。
若要产生一个均值0,方差为0.0965 的高斯白噪声,不可直接用WGN(N,1,0.0965)产生,而应该如下:
1. N=1000;
x=sqrt(0.0965)*randn(N,1);
Px=(x.'*x)/N
% 验证,这里Px的求法与上面noisePower=sum(abs(Y-X).^2)/length(Y-X)的求法是一致的
2. N=1000;
y=wgn(N,1,10*log10(0.0965));
Py=(y.'*y)/N
一点说明,对高斯白噪声,其方差和功率(单位为W)是一样的。因此,对方差,要做的只是将w变换成dbw,即dbw=10log(w)。
**************************************************************************************************************************************
信噪比,英文名称叫做SNR或S/N(Signal Noise Ratio),是指系统中信号与噪声的比例。信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存在的无规则的额外信号(或信息),并且该种信号并不随原信号的变化而变化。
信噪比的计量单位是dB,其计算方法是10LOG(Ps/Pn),其中Ps和Pn分别代表信号和噪声的有效功率,也可以换算成电压幅值的比率关系:20LOG(Vs/Vn),Vs和Vn分别代表信号和噪声电压的“有效值”。信噪比应该越高越好。
MATLAB中白噪声的WGN和AWGN函数的使用
MATLAB中白噪声的WGN和AWGN函数的使用MATLAB中白噪声的WGN和AWGN函数的 使用如下:MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WG...
Matlab函数——awgn
将白色高斯噪声添加到信号中
y = awgn(x,snr)
y = awgn(x,snr,sigpower)
y = awgn(x,snr,'mea...
解决matlab缺少awgn和wgn函数的问题
将以下两个.m文件放到同一文件夹内运行
ps:这两个m文件来自
&MATLAB\R2009a\toolbox\comm\comm&
function y=awgn(varargi...
高斯白噪声(white Gaussian noise,WGN)及matlab演示
原文链接:http://wenku.baidu.com/link?url=mj_wz_9l7PAlURQYi1iOnTnweMxyPvoTWGgoIQdCh2v0Yugt7v_G9QsUkS6Ww-r...
&em&matlab&/em&产生高斯白噪声的两个函数总结
matlab函数wgn,awgn用法整理
MATLAB学习笔记——函数使用
matlab中噪声功率、噪声方差关系
以matlab中awgn函数为例说明:
在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即:wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。
MATLAB中产生高斯白噪声,涉及到awgn和wgn函数(转)
MATLAB中产生高斯白噪声,涉及到awgn和wgn函数
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信...
Matlab实现高斯白噪声
英文名称:white
定义:均匀分布于给定频带上的高斯噪声;
所谓高斯白噪声中的高斯是指概率...
没有更多推荐了,}

我要回帖

更多关于 加性高斯白噪声函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信