matlab产生高斯白噪声

matlab产生高斯白噪声函数介绍matlab里和随机数有关的函数:(1)rand:产生均值为0.5、幅度在0~1之间的伪随机数。(2)randn:产生均值为0、方差为1的高斯白噪声。(3)randperm(n):产生1到n的均匀分布随机序列。(4)normrnd(a,b,c,d):产生均值为a、方差为b大小为cXd的随机矩阵。rand:返回一个在区间(0,1)内均匀分布的随机数。rand(n):生成0到1之间的n阶(n×n)随机数方阵。rand(m,n):生成0到1之间的m×n的随机数矩阵。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

函数介绍

matlab里和随机数有关的函数:
(1) rand:产生均值为0.5、幅度在0~1之间的伪随机数。
(2) randn:产生均值为0、方差为1的高斯白噪声。
(3) randperm(n):产生1到n的均匀分布随机序列。
(4) normrnd(a,b,c,d):产生均值为a、方差为b大小为cXd的 随机矩阵。

  • rand:返回一个在区间 (0,1) 内均匀分布的随机数。

    • rand(n):生成0到1之间的n阶( n×n )随机数方阵。
    • rand(m,n):生成0到1之间的m×n的随机数矩阵。
  • randn:返回一个从标准正态分布中得到的随机标量。

    • randn()命令是产生白噪声的,白噪声应该是0均值,方差为1的一组数。
    • 同rand函数一样,randn(n),randn(m,n)含义与上述一致。
    • randn(size(A)),返回一个和A有同样维数大小的随机数组。
  • randperm:整数的随机排列。

    • p = randperm(n) 返回行向量,其中包含从 1 到 n 没有重复元素的整数随机排列。
    • p = randperm(n,k) 返回行向量,其中包含在 1 到 n 之间随机选择的 k 个唯一整数
  • normrnd:生成服从正态分布的随机数

    • r = normrnd(mu,sigma)均值参数为 mu标准差参数为 sigma 的正态分布中生成随机数。
    • R=norrmrnd(MU,SIGMA,m):从均值参数为 mu标准差参数为 sigma 的正态分布中生成随机数,矩阵的形式由m定义。m是一个1×2向量,其中的两个元素分别代表返回值R 中行与列的维数。
    • R=normrnd(MU,SIGMA,m,n): 生成m×n形式的正态分布的随机数矩阵。

注:

  • 一般来说,可以使用公式r = a + (b-a).*rand(N,1)生成区间 (a,b) 内的 N 个随机数。
  • rand是0-1的均匀分布,randn是均值为0方差为1的正态分布。
  • 理论上randn()生成的随机数分布范围为(-∞,+∞),即无穷大。Matlab中randn()是产生正态分布的随机数或矩阵的函数,它产生均值为0,方差为1,标准差为1的正态分布的随机数或矩阵的函数。

高斯白噪声函数

  • 高斯白噪声概念解释
    • 高斯白噪声(white Gaussian noise; WGN):均匀分布于给定频带上的高斯噪声
      • 如果一个噪声,它的幅度服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
      • 高斯白噪声中的高斯是指概率分布是正态函数,而白噪声是指:它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。这是考察一个信号的两个不同方面的问题。
      • 热噪声散粒噪声高斯白噪声
  • matlab高斯白噪声函数介绍:——wgn( )、awgn( )
    • WGN:产生高斯白噪声
      • y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度
      • y = wgn(m,n,p,imp)欧姆(Ohm)为单位指定负载阻抗
      • y= **wgn(…,outputtype)**指定输出类型,OUTPUTTYPE可以是’real’或’complex’来获得复噪声信号。
      • y=**wgn(…,powertype)**指定p的单位。POWERTYPE可以是’dBW’, ‘dBm’或’linear’。线性强度(linear power)以瓦特(Watt)为单位。
      • linear表示线性强度(linear power),单位为Watt。如果输入其他:‘dBw’或缺省则表示用dBw作为功率单位
    • 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以瓦特为单位。

注:

  • 一阶矩就是随机变量的期望二阶矩就是随机变量平方的期望,以此可以类推高阶的矩。
  • 分贝(decibel, dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。
    • 例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数(以10为底的对数),再乘以20作为电平的分贝数(功率的电平值改乘10)。
    • 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值
      • dBm (dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。
      • 0 dBm = 1 mW 10 dBm = 10mW 20 dBm = 100 mW

总结

  • 在matlab中无论是wgn还是awgn函数实质都是由randn函数产生的噪声
  • 即:wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。
  • awgn(x,snr,’measured’,’linear’)表示向已知信号添加某个信噪比(SNR)的高斯白噪声“,命令的作用是对原信号x添加信噪比(比值)为SNR的噪声,在添加之前先估计信号x的强度
    • 定义解释:
      • SNR就是信号的强度除以噪声的强度或者信号功率与噪声功率之比((注:由于采用的是比值而非db,所以与下面“计算信噪比”所使用的方式不同,即没有求对数步骤))
      • 信号的强度指的就是信号的能量,在连续的情形就是对x平方后求积分,而在离散的情形是求和代替积分(在matlab中sigPower= sum(abs(sig(: )).^2)/length(sig(: )),这就是信号的强度,这里sig(: )为信号。)
    • 在求出x的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower = sigPower/ SNR。由于使用的是高斯白噪声即randn函数,而randn的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就知道了,注意信号的长度不能太小)。于是,所要添加的噪声信号显然就是: sqrt(noisePower)*randn(n,1)其中n为信号长度。
    • matlab 例子:
X = sqrt(2)*sin(0:pi/1000000:6*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

Jetbrains全家桶1年46,售后保障稳定

  • 运算结果如下所示:
    在这里插入图片描述
    • WGN(m,n,p)产生功率为p dBW的m*n的高斯白噪声矩阵,其中p是以dbW为单位的输出强度。若要产生一个均值0,方差为0.0965 的高斯白噪声,不可直接用WGN(N,1,0.0965)产生(单位不对应)
    • 对高斯白噪声,其方差和功率(单位为W)是一样的。因此,对方差,要做的只是将w变换成dbw,即dbw=10log(w)
    • 做法如下有两种:
%% 方法一:
N=1000;
x=sqrt(0.0965)*randn(N,1);
Px=(x.'*x)/N   % 验证,这里Px的求法与上面noisePower=sum(abs(Y-X).^2)/length(Y-X)的求法是一致的
%% 方法二:
N=1000;
y=wgn(N,1,10*log10(0.0965));
Py=(y.'*y)/N   % 验证

信噪比,英文名称叫做SNR或S/N(Signal Noise Ratio),是指系统中信号与噪声的比例。信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存在的无规则的额外信号(或信息),并且该种信号并不随原信号的变化而变化。
信噪比的计量单位是dB,其计算方法是10LOG(Ps/Pn),其中Ps和Pn分别代表信号和噪声的有效功率,也可以换算成电压幅值的比率关系:20LOG(Vs/Vn),Vs和Vn分别代表信号和噪声电压的“有效值”。信噪比应该越高越好。

参考来源

matlab 中产生高斯白噪声
高斯白噪声及Matlab常用实现方法
关于dB 分贝
Matlab产生高斯白噪声
MATLAB产生特定功率谱密度的高斯白噪声的两种方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/198372.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • STM32F103C8T6芯片的引脚分布,及注意事项(用于芯片选型)「建议收藏」

    STM32F103C8T6芯片的引脚分布,及注意事项(用于芯片选型)「建议收藏」STM32F103C8T6这款芯片,是我们使用单片机做项目常用到的一款芯片。它具有价格便宜、性能强大、资源齐全等各种优点。我常常使用的是黑金的c8t6核心板,如下:以下将介绍他的资源配置该款芯片各个管脚的功能分配如下(注意:凡是引脚标注有ADC功能的,该引脚都是3.3V耐压,不可接5V信号,否则会使该引脚烧毁或者芯片烧毁)附件为:1.官方c8t6的数据手册(中英文)2….

    2022年10月15日
  • Android生存指南:Eclipse快捷键

    Android生存指南:Eclipse快捷键

  • 什么叫侧面指纹识别_侧面指纹VS屏下指纹和后置指纹,原来我们都低估了侧面指纹…「建议收藏」

    什么叫侧面指纹识别_侧面指纹VS屏下指纹和后置指纹,原来我们都低估了侧面指纹…「建议收藏」原标题:侧面指纹VS屏下指纹和后置指纹,原来我们都低估了侧面指纹随着科技的发展,手机花式解锁方式也是让人眼花缭乱。最早的指纹解锁就是密码和手势解锁,后来为了增加屏幕屏占比,还采用了屏下指纹和前后置指纹解锁,以及侧面指纹解锁。这么多指纹解锁方式你最喜欢哪个呢?屏下解锁2018年1月,vivo发布全球首款屏下指纹解锁手机,vivoX20UD屏幕指纹版。指纹解锁速度在0.6S左右,与传统指纹识别0…

  • linux 移动 文件,linux移动文件命令[通俗易懂]

    linux 移动 文件,linux移动文件命令[通俗易懂]linux移动文件命令mv命令功能:为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。语法:mv[选项]源文件或目录目标文件或目录说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源…

  • python爬虫总是爬不到数据,你需要解决反爬虫了

    python爬虫总是爬不到数据,你需要解决反爬虫了

    2021年11月10日
  • oracle优化书籍推荐

    经常听到有做应用的朋友抱怨数据库的性能问题,比如非常低的并发,令人崩溃的响应时间,长时间的锁等待,锁升级,甚至是死锁,等等。本文针对应用开发人员经常接触的性能问题,推荐几本书,请大家关注。 一、《 oracle9i/10g 编程艺术》内容简介 本书是一本关于Oracle9jaz&10g数据库体系结构的权威图书,涵盖了所有最重要的Ora

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号