精华内容
下载资源
问答
  • matlab添加高斯白噪声
    千次阅读
    2021-12-07 15:04:12

    noise_y=randn(1,N);
    noise_y=noise_y-mean(noise_y);
    noise_y=noise_y/std(noise_y);
    a=0;                                                    %a为均值,b为方差,也就是标准差的平方
    b=sqrt(0.01);
    noise_y=a+b*noise_y;

    注:randn(1,N)函数为产生1*N的随机变量矩阵;

    mean(noise_y)将noise_y的列作为向量处理,并返回一个行向量,其元素是每列的平均值。

    noise_y=a+b*noise_y,a为高斯噪声的均值,b为标准差;

    更多相关内容
  • <转>Matlab中添加高斯白噪声

    千次阅读 2021-04-19 07:29:51
    定义:白噪声是指功率谱密度在整个频域内均匀分布的噪声。即其功率谱密度:(为常数),白噪声的自相关函数:因为,所以其自相关函数为: (2.8-1)由式(2.8-1)可知,白噪声的自相关函数仅在时才不为零;而对于其他任意的,它...

    定义:白噪声是指功率谱密度在整个频域内均匀分布的噪声。即

    其功率谱密度:

    a4c26d1e5885305701be709a3d33442f.png(

    a4c26d1e5885305701be709a3d33442f.png为常数),

    a4c26d1e5885305701be709a3d33442f.png

    白噪声的自相关函数:

    因为

    a4c26d1e5885305701be709a3d33442f.png,所以其自相关函数为:

    a4c26d1e5885305701be709a3d33442f.png (2.8-1)

    由式(2.8-1)可知,白噪声的自相关函数仅在

    a4c26d1e5885305701be709a3d33442f.png时才不为零;而对于其他任意的

    a4c26d1e5885305701be709a3d33442f.png,它都为零。这说明只有在

    a4c26d1e5885305701be709a3d33442f.png时才相关,而它在任意两个时刻上的随机变量都是不相关的。白噪声的自相关函数及其功率谱密度,如图2-8-1所示。

    a4c26d1e5885305701be709a3d33442f.png

    图2-8-1 白噪声的(

    a4c26d1e5885305701be709a3d33442f.png)功率谱密度和(

    a4c26d1e5885305701be709a3d33442f.png)自相关函数

    严格地说,白噪声只是一种理想化模型,因为实际噪声的功率谱密度不可能具有无限宽的带宽,否则它的平均功率将是无限大,是物理上不可实现的。然而,白噪声在数学处理上比较方便,因此它是系统分析的有力工具。一般,只要一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽,并且在该带宽中其频谱密度基本上可以作为常数来考虑,就可以把它作为白噪声来处理。例如,热噪声和散弹噪声在很宽的频率范围内具有均匀的功率谱密度,通常可以认为它们是白噪声。

    a4c26d1e5885305701be709a3d33442f.pngMATLAB中产生高斯白噪声的两个函数

    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以瓦特为单位。

    展开全文
  • (很好的资料,做实验就参考这个代码了,代码的注释很详细)基于MATLAB语音信号去白噪声、高斯白噪声分析的源程序,将白噪声的1/10改成1/50就可滤除白噪声,高斯白噪声的就不用改了!
  • matlab实现均值滤波去除高斯白噪声. 用matlab实现均值滤波去除高斯白噪声. 用matlab实现均值滤波去除高斯白噪声. 用matlab实现均值滤波去除高斯白噪声.
  • awgn函数可以将白色高斯噪声添加到信号。语法y = awgn(x,snr) y = awgn(x,snr,sigpower) y = awgn(x,snr,'measured') y = awgn(x,snr,sigpower,state) y = awgn(x,snr,'measured',state) y = awgn(...,power...

    信噪比
    信噪比,电子设备或者通信系统中有效信号和噪声的比值,英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO);

    awgn描述
    awgn函数可以将白色高斯噪声添加到信号中。

    语法

    y = awgn(x,snr) 
    y = awgn(x,snr,sigpower) 
    y = awgn(x,snr,'measured') 
    y = awgn(x,snr,sigpower,state) 
    y = awgn(x,snr,'measured',state) 
    y = awgn(...,powertype) 

    描述

    y = awgn(x,snr)将白高斯噪声添加到向量信号x中。标量snr指定了每一个采样点信号与噪声的比率,单位为dB。如果x是复数的,awgn将会添加复数噪声。这个语法假设x的能量是0dBW。
    y = awgn(x,snr,sigpower)和上面的语法相同,除了sigpower是x的能量,单位为dBW。
    y = awgn(x,snr,‘measured’)和y = awgn(x,snr)是相同的,除了agwn在添加噪声之前测量了x的能量。
    y = awgn(x,snr,sigpower,state)和y = awgn(x,snr,sigpower)是相同的,除了awgn首先重置了正态随机数产生器randn的状态为整数状态。
    y = awgn(x,snr,‘measured’,state)和y = awgn(x,snr,‘measured’)是相同的,除了awgn首先重置了正态随机数产生器randn的状态为整数状态。
    y = awgn(…,powertype)和前面的语法相同,除了字符串powertype指定了snr和sigpower的单位。powertype的选择有’db’ and ‘linear’,如果powertype是’db’,那么snr是按照dB为单位测量的,sigpower是按照dBW为单位测量的。如果powertype是线性的,snr是按照一个比率测量的,sigpower是以瓦特为单位测量的。Relationship Among SNR, Es/N0, and Eb/N0
    对于SNR和其他的噪声相对能量测量的关系,查看Describing the Noise Level of an AWGN Channel。

    ———————————————————————————————————————
    以下主要分析y = awgn(x,snr,‘measured’) 是如何添加噪声

    ‘measured’为根据x自动计算出来的本身功率,即用x本身的功率当作指定功率:
    px_W= norm(x)^2/length(x)                   (1)
    px_dBW=10log10(px_W/1W)                (2)

    有了信噪比snr和信号的功率,就可以计算出来要添加的高斯白噪声的功率了
     

     

    展开全文
  • 利用matlab高斯白噪声的频谱,自相关函数以及功率谱进行分析
  • 添加高斯白噪声MATLAB代码,高斯白噪声经常被作为噪声被添加在图片等上,作为水印
  • 如何给图像添加高斯白噪声今天下午到晚上都在看添加高斯噪声的问题,这也是困扰我半年的一个问题了,非常的难以忍受,今天决定征服它!在网上查阅无数资料后,锁定在振动论坛上的这篇文章:...

    如何给图像添加高斯白噪声

    今天下午到晚上都在看添加高斯噪声的问题,这也是困扰我半年的一个问题了,非常的难以忍受,今天决定征服它!在网上查阅无数资料后,锁定在振动论坛上的这篇文章中:http://www.chinavib.com/forum/viewthread.php?tid=31086&extra=page=1&filter=digest。文中很多思路对我很有裨益,下面我试图理解性的叙述一下。

    噪声中有两种性质的噪声,加性噪声和乘性噪声。白噪声(白杂讯),是一种功率频谱密度为常数的随机信号或随机过程,是功率谱密度在整个频域内均匀分布的噪声。此信号在各个频段上的功率是一样的,由于白光是由各种频率(颜色)的单色光混合而成,因而此信号的这种具有平坦功率谱的性质被称作是“白色的”,此信号也因此被称作白噪声。相对的,其他不具有这一性质的噪声信号(功率谱密度不均匀分布)被称为有色噪声。

    一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽。理想的白噪声具有无限带宽,因而其能量是无限大,这在现实世界是不可能存在的。实际上,我们常常将有限带宽的平整讯号视为白噪音,因为这让我们在数学分析上更加方便。然而,白噪声在数学处理上比较方便,因此它是系统分析的有力工具。一般,只要一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽,并且在该带宽中其频谱密度基本上可以作为常数来考虑,就可以把它作为白噪声来处理。例如,热噪声和散弹噪声在很宽的频率范围内具有均匀的功率谱密度,通常可以认为它们是白噪声。

    加性噪声一般指热噪声、散弹噪声等,它们与信号的关系是相加,不管有没有信号,噪声都存在。而乘性噪声一般由信道不理想引起,它们与信号的关系是相乘,信号在它在,信号不在他也就不在。一般通信中把加性随机性看成是系统的背景噪声;而乘性随机性看成系统的时变性(如衰落或者多普勒)或者非线性所造成的。

    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);

    a=0.0128;

    b=sqrt(0.9596);

    y=a+b*y;

    就得到了 N ( 0.0128, 0.9596 ) 的高斯分布序列

    产生指定方差和均值的随机数

    设某个随机变量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. 上面资料最后部分隐含了一个出自zhyuer 版友的结论:

    %=========================================%

    1)  rand产生的是[0,1]上的均匀分布的随机序列

    2)  randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;

    %=========================================%

    也就是说,可以直接使用上面两个函数对原始信号添加噪声(例如y=x+rand(length(x),1)或者y=x+randn(length(x),1))

    2.

    事实上,无论是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. 上面所说的都是具有分布特性(相关的)随机序列,如果需要添加不相关的随机序列,则可以使用jimin版友的方法:

    %=========================================%

    for i=1:100

    x(i)=randn(1);

    end

    %=========================================%

    即先产生噪声信号,后再与原信号叠加。

    最后是另外的一些常见问题,整理如下:

    1. Matlab中如何产生值为0,1的随机序列?【转bainhome版友】:round(rand(5))

    2. Matlab中如何计算信噪比?下面的代码转自Happy教授:

    %=========================================%

    function snr=SNR(I,In)

    % 计算信号噪声比函数

    % by Qulei

    % 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

    %=========================================%

    3. 随机产生1-n的索引排列:randperm函数

    4. 随机产生1-60的正整数一个(三种方法):

    A=randperm(60);

    b=A(1)

    A=round(100*rand(1,10))

    b=A(1)

    b =

    unidrnd(60,1,1)

    展开全文
  • matlab产生高斯白噪声

    万次阅读 多人点赞 2021-02-06 17:57:32
    (2) randn:产生均值为0、方差为1的高斯白噪声。 (3) randperm(n):产生1到n的均匀分布随机序列。 (4) normrnd(a,b,c,d):产生均值为a、方差为b大小为cXd的 随机矩阵。 rand:返回一个在区间 (0,1) 内均匀...
  • 摘 要 CDMA(Code Division Multiple Access)是在扩频通信的基础上发展起来的所谓扩频是将原信号频谱扩展到宽带进行传输的一种技术它主要利用相互正交(或尽可能正交)的不同随机码区分用户实现多用户同时使用同一...
  • clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 ... % R + 白噪声 G = imnoise(im(:,:,2),‘gaussian’,0,0.01); % G + 白噪声 B =.
  • matlab去除高斯白噪声

    千次阅读 2021-03-03 17:10:31
    ('高斯噪声滤波后的图像'); PS:MATLAB 小波分析...姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号:103320430109033 MATLAB 环境下的正弦信号及高斯白噪声仿真程序说明一、信号的产生及时域观察 1、...
  • matlab 高斯白噪声.zip

    2020-07-10 08:53:48
    matlab高斯白噪声的生成,是自己用代码生成的,不是直接调用matlab画高斯白噪声的函数,需要手动编码的朋友可以下载
  • 高斯白噪声MATLAB

    2020-07-09 10:38:27
    了解Simulink的基本图符库,并能做出简单的高斯白噪声仿真。用一个高斯白噪声发生器模块来产生高斯白噪声信号,使其通过三个带宽不同的低通滤波器系统,对输出信号的时域波形进行观察和比较。
  • 包括0均值和给定方差的高斯白噪声生成函数,以及复高斯白噪声生成函数
  • matlab方法去除高斯白噪声,比较全面,有效。很好用的代码
  • 产生高斯白噪声,标准差和期望都固定,如N=f(0.1,2),这种形式的,随机产生40个
  • MATLAB中产生高斯白噪声
  • Matlab高斯白噪声的产生

    千次阅读 2022-01-27 09:36:59
    匹配滤波中高斯白噪声的产生 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的...
  • 给信号x添加噪声功率为某个值的高斯白噪声。 snr为信噪比,单位dB。 px_dBW为信号x的指定功率(注意,是指定功率,而不是x本身的功率),单位dBW。 缺省时为0dBW,即: awgn(x,snr)=awgn(x,snr,0) ‘measured’为...
  • 资源名:Matlab产生正弦波、均匀白噪声、高斯白噪声,并将两种噪声叠加到正弦波上。并给出自相关和功率谱密度波形 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果...
  • MATLAB中产生高斯白噪声的两个函数》由会员分享,可在线阅读,更多相关《MATLAB中产生高斯白噪声的两个函数(2...WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn...
  • MATLAB多方法去高斯白噪声,亲测可用。本程序是对图片高斯白噪声去除,可以移植到其他地方,进行去噪
  • 高斯白噪声matlab代码数字通讯系统 CE 3006:课程项目目的:使用MATLAB开发基本的数字通信系统。 该项目的基本实施包括三个阶段。 阶段1:数据生成 阶段2:通信调制 阶段3:基本的错误控制编码,以提高性能 阶段1:...
  • 程序基于“Fast and reliable structure-oriented video noise estimation”并做了改进,分为针对CFA...程序实现上可进一步优化以提高处理速度(比如记录K个最小值的最大值位置等),感兴趣的朋友可以自己动手改动。
  • 本文主要内容是用matlab生成高斯白噪声和均匀白噪声及其频谱。
  • matlab编写gui界面,通过gui界面产生高斯白噪声然后再通过声卡输出高斯白噪声,实现利用声卡作为信号发生器。通过修改代码,可以把高斯白噪声函数替换成其它函数例如正弦函数实现其它波形输出。
  • 目录1、窄带高斯白噪声2、程序运行结果 2、程序运行结果
  • 高斯白噪声、有色噪声MATLAB程序,超详细,值得推荐! 产生高斯白噪声的程序,信号加载高斯白噪声的程序,产生有色噪声的程序。
  • matlab软件生成高斯白噪声的程序及具体说明。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,347
精华内容 2,138
关键字:

matlab添加高斯白噪声