码迷,mamicode.com
首页 > 其他好文 > 详细

Matlab中rand、randn、randi、rands的区别以及用randn生成白噪声的示例

时间:2020-05-30 22:14:11      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:标准   pre   rand   百度百科   函数   code   因此   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中rand、randn、randi、rands的区别以及用randn生成白噪声的示例

标签:标准   pre   rand   百度百科   函数   code   因此   randn   叠加   

原文地址:https://www.cnblogs.com/CCWangsj/p/12994809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!