指点成金-最美分享吧

登录

matlab 产生白噪声

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了matlab 产生白噪声相关的知识,希望对你有一定的参考价值。

用matlab产生服从高斯分布,均匀分布,指数分布,瑞利分布的白噪声,并绘出噪声信号及其直方图

y=randn(1,100);高斯分布

y=rand(1,100);均与分布

R=exprnd(MU,m,n) 生成m×n形式的指数分布的随机数矩阵。

RAYLCDF Rayleigh cumulative distribution function.

P = RAYLCDF(X,B) returns the Rayleigh cumulative distribution

function with parameter B at the values in X.

The size of P is the common size of X and B. A scalar input

functions as a constant matrix of the same size as the other input.

扩展资料

matlab中噪声功率、噪声方差关系,以matlab中awgn函数为例说明:

在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即:wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。

根据awgn的实现代码可以知道”向已知信号添加某个信噪比(SNR)的高斯白噪声“,即:awgn(x,snr,’measured’,"linear’),命令的作用是对原信号x添加信噪比(比值)为SNR的噪声,在添加之前先估计信号x的强度。

在求出x的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower=sigPower/SNR。

由于使用的是高斯白噪声即randn函数,而randn的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就知道了,注意信号的长度不能太小)。于是,所要添加的噪声信号显然就是:sqrt(noisePower)*randn(n,1)

其中n为信号长度,自然要求的白噪声的方差也可以求出来。

参考资料来源:百度百科 - 白噪声

百度百科 - MATLAB

百度百科 - AWGN



参考技术A

这样:

randn函数产生高斯分布序列,例如:

y=randn(1,2500); 

y=y/std(y); 

y=y-mean(y); 

a=0.0128; 

b=sqrt(0.9596); 

y=a+b*y;

y=rand(1,100);均与分布

R=exprnd(MU,m,n) 生成m×n形式的指数分布的随机数矩阵。

RAYLCDF Rayleigh cumulative distribution function.

P = RAYLCDF(X,B) returns the Rayleigh cumulative distribution

function with parameter B at the values in X.

The size of P is the common size of X and B. A scalar input

functions as a constant matrix of the same size as the other input.

扩展资料:

注意事项

在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即,wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。

根据awgn的实现代码可以知道“向已知信号添加某个信噪比(SNR)的高斯白噪声”,即:awgn(x,snr,’measured’,"linear’),命令的作用是对原信号x添加信噪比(比值)为SNR的噪声,在添加之前先估计信号x的强度。

直接对原始信号添加噪声:

y=x+rand(length(x),1)

y=x+randn(length(x),1))

参考技术B y=randn(1,100);高斯分布
y=rand(1,100);均与分布
R=exprnd(MU,m,n) 生成m×n形式的指数分布的随机数矩阵。
RAYLCDF Rayleigh cumulative distribution function.
P = RAYLCDF(X,B) returns the Rayleigh cumulative distribution
function with parameter B at the values in X.

The size of P is the common size of X and B. A scalar input
functions as a constant matrix of the same size as the other input.本回答被提问者采纳

Matlab中randrandnrandirands的区别以及用randn生成白噪声的示例

2020-05-30 20:42:05

Matlab中生成随机数的函数有多个:rand、randn、randi、rands,其简要说明和区别如下:


rand(m,n)                        : 在 ( 0~1 ) 内生成m行n列均匀分布的伪随机数矩阵;
randn (m,n)                     : 生成m行n列标准正态分布 ( 均值为0,方差为1 ) 的伪随机数矩阵;
rands(m,n)                      : 在 ( -1~1 ) 内生成m行n列均匀分布的伪随机数;
randi( [min,max] , m , n) : 在 [min,max] 内生成m行n列的均匀分布的随机整数矩阵;

 

下面重点讨论randn函数:

randn用法详细说明:

x = randn——返回一个伪随机数x,其值来自于均值为0,标准差为1的正态分布;

x = randn(n)——返回一个n x n的矩阵,其元素值来自于均值为0,标准差为1的正态分布;

x = rand( m ,n ) 或 x = x = rand( [m ,n] ),——返回一个 m x n的矩阵,其元素值来自于均值为0,标准差为1的正态分布。

 

在音频算法测试中,常常要用到白噪声(例如给纯净音频叠加白噪声等),由于白噪声的定义和特性:

白噪声一种功率谱密度为常数的随机信号,换言之,白噪声在各个频段上的功率相等(若不满足以上条件,则不是白噪声,而被称为“有色噪声”),百度百科:白噪声

因此,由于白噪声的功率谱是正态分布的,所以要用randn来生成白噪声,Matlab中生成幅值为0~1的白噪声的代码如下:

1 noise_white=randn(1,wav_len);                     % 生成长度为wav_len的白噪声,满足正态分布;2 noise_white=noise_white/max(abs(noise_white));    % 白噪声信号幅度归一化,此处白噪声幅值范围:0~1;

 

以上是关于matlab 产生白噪声的主要内容,如果未能解决你的问题,请参考以下文章