kaiyun全站网页版登录 WGN:产生高斯白噪声

发布于:25-02-09 播放次数:

在MATLAB中产生高斯白噪声非常方便。可以直接应用两个功能,一个是WGN,另一个是AWGN。 WGN用于产生高斯白噪声,而AWGN用于在某个信号中添加高斯白噪声。

WGN:产生高斯白噪声

y = wgn(m,n,p)在m行和n列中产生高斯白噪声的矩阵,p指定DBW单位的输出噪声的强度。

y = wgn(m,n,p,imp)指定欧姆(ohm)单位的负载阻抗。

y = wgn(m,n,p,imp,state)重置兰德的状态。

一些标志性参数也可以在数值变量之后附加:

y = wgn(…,powertype)指定p的单位。 PowerType可以是“ DBW”,“ DBM”或“线性”。线性功率以瓦特为单位。

y = wgn(…,outputType)指定输出类型。 OutputType可以是“真实”或“复杂”。

AWGN:将高斯白噪声添加到某个信号

y = awgn(x,snr)向信号x添加高斯白噪声。信噪比SNR在DB中。假定X的强度为0dBW。如果x是一个复杂的数字,则添加复杂的噪声。

y = awgn(x,snr,sigpower)如果sigpower是数值值,则表示DBW中的信号强度;如果“测量” sigpower,则该功能将在添加噪声之前确定信号强度。

y = awgn(x,snr,sigpower,state)重置兰德的状态。

y = awgn(…,powerType)指定SNR和SIGPOPTOR的单位。 PowerType可以是“ DB”或“线性”。如果PowerType为“ DB”kaiyun.ccm,则SNR在DB中,而Sigpower在DBW中。如果PowerType为“线性”,则将SNR测量为比率,而Sigpower在瓦特中。

评论

分贝(DB):分贝(DB)是代表相对功率或振幅水平的标准单元。换句话说,这是我们用来表示两个能量之间差异的表示单位。这不是绝对单位。 。例如,在电子系统中,电压,电流和功率等物理量的强度通常称为水平。级别的单位通常以分贝表示,即作为参考值(0db)提前采用电压或电流,并且要表达的金额首先用作要表示的数量。与参考值的比率被视为对数,并将20乘以级别的分贝数(功率的级别值更改为10)。

DBW(DBW,DB瓦):指引用1W的输出功率时在分贝中测量的功率放大器的功率值。

DBM(DB-Milliwatt):通过将其与1毫米(毫米)进行比较而获得的数字。

0 dbm = 1 MW

10 dbm = 10 mW

20 dbm = 100 mW

您也可以直接使用randn函数来生成高斯分布序列,例如:

程序代码

y = randn(1,2500);

y = y/std(y);

y = y均值(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方差的随机数矩阵,则可以使用

y = o*randn(m,n)+u得到。

对于均匀分布,如果要在间隔[a,b]中生成一个均匀分布的随机数矩阵,则可以使用

y = rand(m,n)*(ba)+a获取。

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

以上信息基本上以完整的方式描述了原始问题,但是有几点可以解释:

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

程序代码

y = randn(1,2500);

y = y均值(y);

y = y/std(y);

a = 0.0128;

B = SQRT(0.9596);

y = a+b*y;

以上信息的最后一部分意味着Zhyuer版本的结论:

%zhyuer ============%

RAND在[0,1]上产生一个随机序列,分布均匀

兰德(Randn)产生一个具有平均0和方差1的高斯随机序列开yun体育app官网网页登录入口,即白噪声序列;

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

也就是说,您可以直接使用上述两个函数将噪声添加到原始信号(例如,y = x+rand(长度(x),1)或y = x+randn(长度(x),1,1 ))

3。实际上,无论是WGN还是AWGN函数云开·全站体育app登录,它本质上都是由Randn函数产生的噪声。也就是说,在WGN函数中调用了randn函数,并且在AWGN函数中调用WGN函数。让我解释以下内容:“在已知信号中添加特定信号噪声比(SNR)的高斯白噪声”,但是如果您读过AWGN的实现代码,则无需阅读它,哈哈。从上面,我们可以看到可以使用AWGN功能实现此任务。特定命令是:awgn(x,snr,“测量”,“线性”)。该命令的功能是将信噪比(比率)添加到原始信号F(x)SNR的噪声,在添加之前估算信号F的强度。这里涉及三个问题:如何在AWGN函数中计算SNR?信号的强度是多少? AWGN功能如何特别添加噪声?实际上,前两个问题是相关的,因为根据定义,SNR是信号的强度除以噪声的强度,所以让我们首先谈论信号的强度。实际上,信号的强度是指信号的能量。在连续的情况下,积分是在f(x)平方之后计算的,而在离散的情况下,总和自然被积分代替。 MATLAB也实现了这一点,但还有一个附加的标准化步骤:

sigpower = sum(abs(sig()。^2)/长度(sig())

这是信号的强度。在这一点是,没有对数步骤)。

最后,让我们谈谈AWGN功能如何添加噪音。实际上,它也很简单。在找到F的强度结合了指定的信号噪声比之后,您可以找到需要添加NoisePower = SigPower/SNR的噪声强度。由于我们使用高斯白噪声,即randn函数,因此randn的结果是强度为1的随机序列(try sum(randn(1000,1)。^2)/1000,请注意,信号的长度不能太小)。因此,要添加的噪声信号显然是:sqrt(noisepower)*randn(n,1),其中n是信号长度。