精华内容
下载资源
问答
  • matlab函数wgn,awgn用法整理

    千次阅读 2017-02-16 13:57:36
    MATLAB学习笔记——函数使用

    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以瓦特为单位。
      注释
    3. 分贝(decibel,dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。
    4. 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。
    5. 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的MN的随机数矩阵,可以用
    y=o
    randn(M,N)+u得到。
    对于均匀分布,若要产生[a,b]区间的均匀分布的MN的随机数矩阵,则可以用
    y=rand(M,N)
    (b-a)+a得到。
    %===========================================================%
    上述资料基本上完整地描述了原始问题,不过有几点内容附带说明一下:

    1. 首先更正一个错误,我认为在“生成N ( 0.0128, 0.9596 ) 的高斯分布序列”的程序中,应该改为以下的代码:

    程序代码
    y=randn(1,2500);
    y=y-mean(y);
    y=y/std(y);
    a=0.0128;
    b=sqrt(0.9596);
    y=a+b*y;
    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为信号长度。

    展开全文
  • Matlab函数——wgn

    万次阅读 2013-10-29 18:28:37
    wgn 产生白色高斯噪声 语法  y = wgn(m,n,p) y = wgn(m,n,p,imp) y = wgn(m,n,p,imp,state) y = wgn(...,powertype) y = wgn(...,outputtype) 描述 y = wgn(m,n,p)产生一个m*n的白...
    wgn
    产生白色高斯噪声



    语法 
    y = wgn(m,n,p)
    y = wgn(m,n,p,imp)
    y = wgn(m,n,p,imp,state)
    y = wgn(...,powertype)
    y = wgn(...,outputtype)



    描述
    y = wgn(m,n,p)产生一个m*n的白高斯噪声矩阵。p指定了y的在相对于a瓦特的分贝上能量。缺省的负载阻抗是1欧姆。
    y = wgn(m,n,p,imp)和前面的语法相同,除了img指定了负载阻抗的欧姆数。
    y = wgn(m,n,p,imp,state)和前面的语法相同,除了wgn第一次重置正态随机数产生器randn的状态到整数状态。
    y = wgn(...,powertype)和前面的语法相同,除了字符串powertype指定了p的单位。powertype的选项有 'dBW', 'dBm', 和'linear'。
    y = wgn(...,outputtype)和前面的语法相同,除了字符串outputtype指定了噪声是实数的还是虚数的。outputtype的选项有'real' and 'complex'。如果outputtype是'complex',那么y的实部和虚部都会有一个能量为p/2的噪声。
    注意:wgn方程的输出测量单位是伏特。对于能量的计算,假设有一个1欧姆的负载阻抗。



    例子
    To generate a column vector of length 100 containing real white Gaussian noise of power 0 dBW, use this command:
    y1 = wgn(100,1,0);
    To generate a column vector of length 100 containing complex white Gaussian noise, each component of which has a noise power of 0 dBW, use this command:
    y2 = wgn(100,1,0,'complex');



    See Also
    randn, awgn, Signal Sources
    展开全文
  • matlab中rand randn wgn 的区别

    千次阅读 2017-11-17 14:53:08
    matlab中rand randn wgn 的区别1)rand 生成在(0, 1)之间均匀分布的随机数2)randn 生成N(0,1)的正态分布的随机数,randn(m,n)表示生成矩阵的规模ps:若要生成均值p,方差q的正态分布随机数序列x 则x=p+sqrt(q)*...

    matlab中rand randn wgn 的区别

    1)rand
    生成在(0, 1)之间均匀分布的随机数

    2)randn
    生成N(0,1)的正态分布的随机数,randn(m,n)表示生成矩阵的规模

    ps:若要生成均值p,方差q的正态分布随机数序列x
    则x=p+sqrt(q)*randn(m,n)

    3)wgn
    y = wgn(m,n,p) 产生一个m*n的高斯白噪声的矩阵,
    p以dBW为单位指定输出噪声的强度。

    展开全文
  • MATLAB中白噪声的WGN和AWGN函数的使用

    万次阅读 2018-05-17 10:48:32
    MATLAB中白噪声的WGN和AWGN函数的使用MATLAB中白噪声的WGN和AWGN函数的 使用如下:MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一 信号...

    MATLAB中白噪声的WGN和AWGN函数的使用

    MATLAB中白噪声的WGN和AWGN函数的 使用如下:

    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中白噪声的WGN和AWGN函数的使用说明 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 WGN:产生高斯白...
  • MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声  y = wgn(m,n,p) 产生一个m行n列的...
  • 我需要用到awgn函数,然后从网上找来了awgn的代码。但是它又提示需要wgn函数,跪求wgn函数的代码。 或者哪里能下载到函数包?谢谢了!!!!!!!!万分感谢!!!
  • 解决matlab缺少awgn和wgn函数的问题

    千次阅读 2015-04-16 13:38:13
    ps:这两个m文件来自 "MATLAB\R2009a\toolbox\comm\comm" awgn.m function y=awgn(varargin) %AWGN Add white Gaussian noise to a signal. % Y = AWGN(X,SNR) adds white Gaussian noise to X.
  • Matlab中rand,randn,wgn的区别

    千次阅读 2018-12-14 10:24:50
    (1)rand 生成在(0,1)之间均匀分布的随机数 (2)randn 生成N(0,1)的正态分布的随机数,randn(m,n)表示生成矩阵的规模 ...y = wgn(m,n,p)产生一个m*n的高斯白噪声的矩阵,p以dBW为单位的指定输出噪声的强度...
  • Matlab中产生白噪声的命令,wgn和awgn (转),非原创,只是为了学习,分享而已。
  • MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1.WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白...
  • 文档说明http://blog.csdn.net/szlcw1/article/details/41758711
  • MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的...
  • MATLAB中产生高斯白噪声,涉及到awgn和wgn函数 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生...
  • function y=awgn(varargin) %AWGN Add white Gaussian noise to a signal. % Y = AWGN(X,SNR) adds white Gaussian noise to X. The SNR is in dB. % The power of X is assumed to be 0 dBW. If X is complex, then
  • 本文科普一下高斯白噪声(white Gaussian noise,WGN)。 百度百科上解释为“高斯白噪声,幅度分布服从高斯分布,功率谱密度服从均匀分布”,听起来有些晦涩难懂,下面结合例子通俗而详细地介绍一下。 白噪声,...
  •  在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即,wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。 根据awgn的实现代码可以知道“向已知信号添加某个信噪比(SNR)的高斯白噪声”, ...
  • MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白...
  • y=wgn(m,n,p,imp):产生m*n的白噪声矩阵,功率(dBW)为p,指定负载的电阻为imp,单位欧姆。 例如: >> y1=wgn(5,6,0) y1 = -1.1564 -0.0200 -0.7145 -0.8479 -1.2571 -2.3299 -0.5336 -0.0348 1.3514 -1....
  •  在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即:wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。  根据awgn的实现代码可以知道”向已知信号添加某个信噪比(SNR)的高斯白噪声...
  • Matlab系列】Matlab信号添加噪声及信噪比SNR的计算

    万次阅读 多人点赞 2018-03-18 19:17:38
    转载自:http://blog.csdn.net/han____shuai/article/details/51087383一、MATLAB中自带的高斯白噪声的两个函数MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白...
  • Matlab 函数大全 信源函数 randerr 产生比特误差样本 randint 产生均匀分布的随机整数矩阵 randsrc 根据给定的数字表产生随机矩阵 wgn 产生高斯白噪声 信号分析函数 biterr 计算比特误差数和比特误差率 eyediagram ...
  • MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的...
  • Matlab中的snr

    千次阅读 2019-05-05 15:22:47
    matlab中产生高斯白噪声 可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白...

空空如也

空空如也

1 2 3 4 5
收藏数 99
精华内容 39
关键字:

matlabwgn

matlab 订阅