云开·全站体育app登录 MATLAB中产生高斯白噪声,涉及到awgn和wgn函数

发布于:25-01-28 播放次数:

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

1.WGN:高斯白噪声

y = wgn(m,n,p)生成一个Micrine的Gauz -White噪声矩阵。 P使用DBW指定单元中输出噪声的强度。

Y = WGN(M,N,P,IMP)指定OM(OHM)单位中的负载阻抗。

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

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

y = wgn(…,powrtype)指定P. powrtype的单元可以是'dbw','dbm'或'linearear'。线性功率基于瓦特。

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

2.awgn:将高斯白噪声添加到信号

y = awgn(x,snr)在信号x中添加高斯白噪声。信号 - to -noise比率SNR基于db。假定X的强度为0DBW。如果x是复数,请添加重复噪声。

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

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

y = awgn(…,powerType)指定snr和sigpower的单位。 powrtype可以是“ db”或“线性”。如果Powrtype为“ db”,则SNR在db中,而Sigpower在DBW中。如果powrtype为“线性”,则将SNR用作比率,而SIGPOPTOR将WATT用作单位。

注解

1。分贝(DB):约会(DB)是代表相对功率或振幅水平的标准单元。绝对单位。例如,在电子系统中,电压,电流开yun体育app官网网页登录入口,功率和其他物理量的强度通常称为水平。在与参考值相同的值中,将20乘以级别的分贝数(功率级别更改为10)。

2。动态DBW(DBW瓦):指用分贝测量功率放大器测量的功率放大器时,当输出功率为1W时。

3。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。如果您想产生一个随机变量以产生相同的分布,但要制作新的分布

机器变量参数会更改,平均值为MU_1,正方形差为VAR_1^2。您可以使用以下公式进行转换:

y = var_1/var*(x-mu)+mu_1,其中x是一个随机变量,其余是常数(原始分布参数)。

特定于正态分布,如果M*n的平均值(平均值为u^2),则可以使用

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

对于均匀分布,如果要在[A,B]间隔的均匀分布中生成M*n的随机数矩阵,则可以使用

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

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

以上信息基本上完全描述了原始问题云开·全站体育app登录,但是指令附带了一些内容:

1。首先,纠正一个错误。我认为kaiyun.ccm,在“生成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;

2。以上信息的最后一部分包含Zhyuer版本的朋友的结论:

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

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

2)RANDN的平均值为0,而高斯随机序列的方差为1,即白噪声序列;

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

换句话说,您可以使用以上两个函数将噪声添加到原始信号(例如,y = x+rand(length(x),1)或y = x+randn(长度(x),1)

3。实际上,无论是WGN还是AWGN函数,它本质上都是由Randn函数产生的噪声。也就是说,在WGN函数中调用了randn函数,并且在AWGN函数中调用WGN函数。让我解释一下“在已知信号中添加一定信号 - 命名比(SNR)的高斯白噪声”,但是如果您阅读AWGN的实现代码,则不需要查看它,哈哈。从上面可以看出,可以使用AWGN功能实现此任务。特定命令是:awgn(x,snr,'scoudud','linear'),该命令的作用是将信号 - 到 - 命名比(比率)添加到原始信号f(x)作为噪声在添加信号f的强度之前,估算了SNR。这里三个问题:如何在AWGN函数中计算SNR?信号的强度是什么? AWGN功能如何添加噪声?实际上,前两个问题是相关的,因为根据定义,SNR的强度是信号划分的强度除以噪声的强度。因此,首先谈论信号的强度。实际上,信号的强度是指信号的能量。在连续的情况下,是在f(x)之后寻求积分,而离散情况自然要求替换积分。在MATLAB中是相同的,但是只有一个标准化的步骤:

sigpower = sum(abs(sig(:))。^2)/length(sig(:))

这是信号的强度。此时,不需要说SNR的具体实现(注意:由于使用比率而不是DB,因此它与下面的“信号 - to -noise比率计算”中使用的方法不同,也就是,没有配对步骤)。

最后,谈论AWGN功能如何添加噪音。实际上,它也很简单。在找到F的强度并结合了指定的信号 - 到命名比之后,您可以找到需要添加的噪声的强度。 NoisePower =标志/snr。因为高斯白噪声是randn函数,而randn的结果是一个随机序列,强度为1(try sum(randn(1000,1)。^2)/1000,只需知道信号的长度即可。小的)。因此,要添加的噪声信号显然是:sqrt(noisepower)*randn(n,1),其中n是信号长度。