随机信号分析常用函数及示例1、熟悉练习使用下列MATLAB函数,给出各个函数的功能说明和内部参数的意义,并给出至少一个使用例子和运行结果。
rand():函数功能:生成均匀分布的伪随机数使用方法:r = rand(n)生成n*n的包含标准均匀分布的随机矩阵,其元素在(0,1)内。
rand(m,n)或rand([m,n])生成的m*n随机矩阵。
rand(m,n,p,...)或rand([m,n,p,...])生成的m*n*p随机矩数组。
rand ()产生一个随机数。
rand(size(A))生成与数组A大小相同的随机数组。
r = rand(..., 'double')或r = rand(..., 'single')返回指定类型的标准随机数,其中double指随机数为双精度浮点数,single 指随机数为单精度浮点数。
例:r=rand(3,4);运行结果:r= 0.4235 0.4329 0.7604 0.20910.5155 0.2259 0.5298 0.37980.3340 0.5798 0.6405 0.7833randn():函数功能:生成正态分布伪随机数使用方法:r = randn(n)生成n*n的包含标准正态分布的随机矩阵。
randn(m,n)或randn([m,n])生成的m*n随机矩阵。
randn(m,n,p,...)或randn([m,n,p,...])生成的m*n*p随机矩数组。
randn ()产生一个随机数。
randn(size(A))生成与数组A大小相同的随机数组。
r = randn(..., 'double')或r = randn(..., 'single')返回指定类型的标准随机数,其中double指随机数为双精度浮点数,single 指随机数为单精度浮点数。
例:产生一个均值为1,标准差为2的正态分布随机值:r=1+2.*randn(10,1);运行结果:r= -1.37563.40462.9727-0.03731.65471.46811.0429-1.0079-0.89430.2511normrnd()函数功能:生成正态分布的随机数使用方法:R = normrnd(mu,sigma)生成服从均值参数为mu和标准差参数sigma的正态分布的随机数。
mu和sigma可能是有相同大小的向量、矩阵或多维数组,也和R有相同的大小。
如果mu或sigma是标量,则被扩展为和另一个输入有相同维数的数组。
R = normrnd(mu,sigma,v)生成服从均值参数为mu和标准差参数sigma的正态分布的v个随机数组,其中v是行向量。
如果v是1*2的向量,则R是有v(1)行和v(2)列的矩阵。
如果v是1*n的向量,则R是一个n维数组。
R = normrnd(mu,sigma,m,n)生成服从均值参数为mu和标准差差参数sigma的正态分布的m*n的随机数矩阵。
例:r=normrnd(0,1,[1 5]);运行结果:r= -1.1859 -1.0559 1.4725 0.0557 -1.2173mean()函数功能:求数组的平均数或者均值使用方法:M = mean(A)返回沿数组中不同维的元素的平均值。
如果A是一个向量,mean(A)返回A中元素的平均值。
如果A是一个矩阵,mean(A)将中的各列视为向量,把矩阵中的每列看成一个向量,返回一个包含每一列所有元素的平均值的行向量。
如果A是一个多元数组,mean(A)将数组中第一个非单一维的值看成一个向量,返回每个向量的平均值。
M = mean(A,dim)返回A中沿着标量dim指定的维数上的元素的平均值。
对于矩阵,mean(A,2)就是包含每一行的平均值的列向量。
例:a=[1 2 3;4 5 6; 7 8 9;10 11 12; ];mean(a)ans =5.50006.50007.5000mean(a,2)ans =25811var()函数功能:计算方差使用方法:V = var(X)如果X是一个向量,返回向量X的方差。
如果X是一个矩阵,var(X)返回一个包含矩阵X每一列方差的行向量。
如果X是一个N维数组,var沿着第一个X的非单一维进行操作。
只要X是独立同分布的,结果V是X分布的总体方差的无偏估计。
当N>1时,var由N-1来标准化,其中N是样本大小。
只要样本是独立同分布的,它就是X分布的总体方差的无偏估计。
对N=1来说,v由N来标准化。
V = var(X,1)由N来标准化,并且生成了样本关于其均值的二阶矩,var(X,0)等价于var(X)。
V = var(X,w)计算向量X的方差利用权重向量w,向量w中元素的数目必须和X中的列的数目相同,向量w中的元素必须全是正数。
var归一化w是的总和为1。
V = var(X,w,dim)沿着指定维数dim求X的方差,默认用N-1标准化这时w为0,w为1时用N标准化。
例:x=[4 5 3 5 2 5 6];var(x)ans =1.9048xcorr()函数功能:互相关函数使用方法:c = xcorr(x,y)求x,y的互相关函数。
c = xcorr(x) 为矢量x的自相关估计;c = xcorr(x,y,'option') 为有正规化选项的互相关计算;其中选项为"biased"为有偏的互相关函数估计;"unbiased"为无偏的互相关函数估计;"coeff"为0延时的正规化序列的自相关计算;"none"为原始的互相关计算;c = xcorr(x,y,maxlags) 返回一个延迟范围在[-maxlags,maxlags]的互相关函数序列,输出c的程度为2*maxlags-1.c = xcorr(x,maxlags) 返回一个延迟范围在[-maxlags,maxlags]的自相关函数序列,输出c的程度为2*maxlags-1.c = xcorr(x,y,maxlags,'option') 同时指定maxlags和option的互相关计算.c = xcorr(x,maxlags,'option') 同时指定maxlags和option的自相关计算. [c,lags] = xcorr(...)返回一个在c进行相关估计的延迟矢量lag,其范围为[-maxlags:maxlags],当maxlags没有指定时,其范围为[-N+1,N-1]例:r=randn(1000,1);[c,lags]=xcorr(r,10,'coeff');stem(lags,c);periodogram()函数功能:返回序列x,用周期图法的功率谱估计,加参数window是采用修正的周期图法,window制定窗的系数。
使用方法:[Pxx,w]=periodogram(x)[Pxx,w]=periodogram(x,window)例:Fs = 1000; t = 0:1/Fs:.3;x = cos(2*pi*t*200)+randn(size(t));periodogram(x,[],'twosided',512,Fs);fft()函数功能:快速傅里叶变换使用方法:X=fft(x)例:x=[1 3 5 4 2 5 6 7];X=fft(x);X =33.0000 -0.2929 + 4.5355i -8.0000 + 3.0000i -1.7071 + 2.5355i -5.0000 -1.7071 - 2.5355i -8.0000 - 3.0000i -0.2929 - 4.5355inormpdf()函数功能:求解正态分布概率密度函数使用方法:Y=normpdf(X,MU,SIMA)求解数学期望为MU,标准差为SIMA的正态分布随机变量的概率密度函数在x处的值,若输入时MU,SIGMA为空,则默认为标准正态分布.MU为0,SIGMA为1例:x=0;y=normpdf(x,0,1)y =0.3989normcdf()函数功能:正态分布概率分布函数使用方法:P=normcdf(X,MU,SIGMA)求解数学期望为MU,标准差为SIMA的正态分布随机变量的累积概率分布函数,X 表示X处的概率分布函数值,若输入时MU,SIGMA为空,则默认为标准正态分布.MU为0,SIGMA为1例:x=0;y=normcdf(x,0,1)y =0.5000unifpdf()函数功能:均匀分布概率密度函数使用方法:Y=unifpdf(x,a,b)a,b表示在[a,b]区间内均匀分布的随机变量,x表示其在x处的概率密度值,若输入时a,b为空,则默认a为0,b为1。
例:x=3;y=unifpdf(x,2,6);y =0.2500unifcdf()函数功能:均匀分布累积概率分布函数使用方法:Y=unifcdf(x,a,b)a,b表示在[a,b]区间内均匀分布的随机变量,x表示其在x处的概率分布函数值,若输入时a,b为空,则默认a为0,b为1。
例:x=4;y=unifpdf(x,2,6);y =0.5000raylpdf()函数功能:瑞利分布概率密度函数使用方法:Y=raylpdf(x,b)参数为b的瑞利分布在x处的概率密度函数。
例:x=1;y=raylpdf(x,2)y=0.2206raylcdf()函数功能:瑞利分布概率分布函数使用方法:Y=raylcdf(x,b)参数为b的瑞利分布在x处的概率分布函数值。
例:x=1;y=raylcdf(x,2)y=0.1175exppdf()函数功能:指数分布概率密度函数使用方法:Y=exppdf(x,mu)位置参数为mu的指数分布在x处的概率密度函数值,若mu处输入为空,则默认mu=1.例:x=1;y=exppdf(x,3)y=0.2388expcdf()函数功能:指数分布概率分布函数使用方法:Y=exppdf(x,mu)位置参数为mu的指数分布在x处的概率分布函数值,若mu处输入为空,则默认mu=1.例:x=1;y=expcdf(x,3)y=0.2835chol()函数功能:Cholesky(矩阵)分解使用方法:R = chol(A)从矩阵A的对角线和上三角生成一个上三角矩阵R,满足R'*R=A。
下三角被认为是上三角的(复共轭)转置,矩阵A必须是正定的,否则,MATLAB显示错误信息。
L = chol(A,'lower')从矩阵A的对角线和下三角生成一个下三角矩阵L,满足L*L'=A。
当A为稀疏矩阵,chol是非常快的。