Matlab中randrandnrandirands的区别以及用randn生成白噪声的示例
Posted ccwangsj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中randrandnrandirands的区别以及用randn生成白噪声的示例的主要内容,如果未能解决你的问题,请参考以下文章