| 查看: 7291 | 回复: 2 | ||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||||
Ra_50914金虫 (初入文坛)
Ra
|
[交流]
如何给图像添加高斯噪声(MATLAB)已有2人参与
|
|||
|
噪声分两种性质,加性噪声和乘性噪声。加性噪声一般指热噪声、散弹噪声等,它们与信号的关系是相加,不管有没有信号,噪声都存在。而乘性噪声一般由信道不理想引起,它们与信号的关系是相乘,信号在它在,信号不在他也就不在。一般通信中把加性随机性看成是系统的背景噪声;而乘性随机性看成系统的时变性(如衰落或者多普勒)或者非线性所造成的。 白噪声,是一种功率频谱密度为常数的随机信号或随机过程,是功率谱密度在整个频域内均匀分布的噪声。此信号在各个频段上的功率是一样的,由于白光是由各种频率(颜色)的单色光混合而成,因而此信号的这种具有平坦功率谱的性质被称作是“白色的”,此信号也因此被称作白噪声。相对的,其他不具有这一性质的噪声信号(功率谱密度不均匀分布)被称为有色噪声。理想的白噪声具有无限带宽,因而其能量是无限大,这在现实世界是不可能存在的。实际上,我们常常将有限带宽的平整讯号视为白噪音,因为这让我们在数学分析上更加方便。然而,白噪声在数学处理上比较方便,因此它是系统分析的有力工具。一般,只要一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽,并且在该带宽中其频谱密度基本上可以作为常数来考虑,就可以把它作为白噪声来处理。 MATLAB中产生高斯白噪声可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于将高斯白噪声加入到某一信号中 。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dB为单位指定输出噪声的强度。 y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。 在数值变量后还可附加一些标志性参数: 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是数值,则其代表以dBE为单位的信号强度;如果sigpower为'measured',则函数将在加入噪声之前测定信号强度。 y = awgn(…,powertype) 指定snr和sigpower的单位。powertype可以是'dB'或'linear'。如果powertype是'dB',那么snr以dB为单位,而sigpower以dBW为单位。如果powertype是'linear',那么snr作为比值来度量,而sigpower以瓦特为单位。 顺带说明: 事实上,无论是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为信号长度。 |
» 收录本帖的淘帖专辑推荐
国自科基金标书 |
» 猜你喜欢
请问有评职称,把科研教学业绩算分排序的高校吗
已经有3人回复
孩子确诊有中度注意力缺陷
已经有12人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
2026博士申请-功能高分子,水凝胶方向
已经有6人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
小木虫: 金币+0.5, 给个红包,谢谢回帖
|
楼主,我一直有个困惑,在wgn函数是一个矩阵,这个矩阵在加入信号后是怎样进行计算的?或者说这个矩阵上每一行每一列具体有什么物理意义呢? 发自小木虫Android客户端 |
3楼2016-08-24 08:48:15
feixiaolin
荣誉版主 (文坛精英)
-

专家经验: +518 - 信息EPI: 3
- 应助: 942 (博后)
- 贵宾: 1.275
- 金币: 2930
- 散金: 58785
- 红花: 532
- 沙发: 11
- 帖子: 24215
- 在线: 2601.8小时
- 虫号: 2139575
- 注册: 2012-11-21
- 专业: 光学信息获取与处理
- 管辖: 数学
2楼2016-08-23 08:58:46














回复此楼