Matlab统计工具箱中各类概率分布函数使用方法介绍

1.      Matlab Statistics Toolbox 中概率分布函数介绍
Matlab Statistics Toolbox 提供了对几乎所有概率分布的支持,可以方便产生服从各类分布的随机数及其PDF/CDF 函数。其中,既提供了针对所有分布的通用分布函数,其参数是指定的特定分布;也提供了针对特定分布的专用分布函数,其函数名直接针对某种特定分布,故该函数的无需再提供分布特性参数。

常用的 通用分布函数 如下:
1)      pdf:用于生成各类概率分布的PDF
2)      cdf:用于生成各类概率分布的CDF
3)      icdf:用于生成各类概率分布的inverse CDF
4)      random:用于生成各类概率分布的随机数
5)      fitdist:用于生成各类概率分布拟合给定随机数据的统计参数(如均值、方差)


常用 专用分布函数如下:( *表示通配符,用于指定特定分布)
1)      *pdf:生成特定的*概率分布的PDF
2)      *cdf:生成特定的*概率分布的CDF
3)      *inv:生成特定的*概率分布的inverseCDF
4)      *rnd:生成特定的*概率分布的随机数
5)      *fit:生成特定的*概率分布拟合给定随机数据的统计参数
6)      *stat:得到特定的*概率分布的统计参数



2.      分布函数调用举例

通用分布函数 举例:
Y = pdf(name,X,A) computes the PDF for theone-parameter family of distributions specified by name. A contains parametervalues for the distribution. Densities are evaluated at the values in X andreturned in Y.

Y = cdf(name,X,A) computes the CDF for theone-parameter family of distributions specified by name. A contains parametervalues for the distribution. The CDF is evaluated at the values in X and its valuesare returned in Y.

Y = icdf(name,X,A) computes the inverse CDF for theone-parameter family of distributions specified by name. Parameter values forthe distribution are given in A. The inverse CDF is evaluated at the values inX and its values are returned in Y.

Y = random(name,A,m,n):Generate random numbers Y (ofm rows and n columns) from the one-parameter family of distributions specifiedby name. Parameter values for the distribution are given in A.

PD = fitdist(X, name) fits the probabilitydistribution specified by name to the data in the column vector X, and returnsPD, an object representing the fitted distribution.

A指定描述分布的统计参数(如均值、方差),name 指定概率分布类型。例如: name 'norm' or 'Normal' 表示 Gaussian 分布, name 'rayl' or 'Rayleigh' 表示 Rayleigh 分布, name 'rician' 表示 Rician 分布, name为'nakagami'表示Nakagami-m分布 Matlab 统计工具箱几乎支持所有的分布,具体查看统计工具箱。


专用分布函数 举例:
1).    *pdf:normpdf, raylpdf,exppdf, gampdf, betapdf得到Gaussian, Rayleigh, Exponential, Gamma, Beta的PDF函数。(Rician和Nakagami-m没有专用分布函数,所以,其PDF只能用通用函数pdf指定name为’rician’或’nakagami’得到)

2).    *cdf: normcdf, raylcdf,expcdf, gamcdf, betacdf得到Gaussian, Rayleigh, Exponential, Gamma, Beta 的CDF函数。(Rician和Nakagami-m没有专用分布函数,所以,其CDF只能用通用函数cdf指定name为’rician’或’nakagami’得到)

3).    *inv: norminv, raylinv,expinv, gaminv, betainv得到Gaussian, Rayleigh, Exponential, Gamma, Beta 的inverse CDF函数。(Rician和Nakagami-m没有专用inverseCDF函数,所以,其inverse CDF只能用通用函数icdf指定name为’rician’或’nakagami’得到)

4).    *rnd: normrnd, raylrnd, exprnd, gamrnd,betarnd得到Gaussian, Rayleigh, Exponential, Gamma, Beta分布的随机数据。(Rician和Nakagami-m没有专用的函数,所以,对应的随机数只能用通用函数random指定name为’rician’或’nakagami’得到)

5).    *fit:normfit, raylfit,expfit, gamfit, betafit得到Gaussian, Rayleigh, Exponential, Gamma, Beta分布的拟合结果。(Rician和Nakagami-m没有专用的函数,所以,对应的拟合只能用通用函数fitdist指定name为’rician’或’nakagami’得到)

6).    *stat:normstat, raylstat,expstat, gamstat, betastat得到Gaussian, Rayleigh, Exponential, Gamma, Beta分布统计参数。(Rician和Nakagami-m没有专用的函数也无通用函数,故无法通过调用系统函数得到其统计参数)



3.      无线通信系统中的应用

可用于产生服从各类分布的伪随机数。例如,在通信系统中,经常需要对 无线信道进行仿真。尤其是需要对Rayleigh、Rician、Nakagami-m、log-normal、Weibull等信道进行仿真,此时,可利用Matlab Statistics Toolbox来方便地产生各类信道。例如,可以通过调用random(’nakagami’,A,m,n) 产生一个m行n列的MIMO Nakagami-m信道,其参数由A指定。另外,通信系统中往往伴随各类分布的 噪声,最常见的是高斯噪声,有时还会遇到非高斯的特定分布,此时,此工具箱中的函数可以方便的用于产生服从各类分布的随机噪声。


4.      总结

如果无需调用Toolbox的情况下,Matlab内置(built-in)函数(如randn)就可以实现功能,就优先使用Matlab内置函数,不要使用Toolbox中的函数。因为Matlab内置函数具备较高的效率,而Toolbox中的函数在程序入口处往往设置许多分支判断,降低了程序效率。除非是Matlab内置函数无法完成的功能,才使用Toolbox中的函数例如, Matlab 内置函数 randn 可以得到 Gaussian 分布随机数,故无需使用 Toolbox 中的 random 或者 normrnd 来生成 Gaussian 分布随机数。但是 Matlab 没有提供生成 Nakagami-m 随机数的内置函数,此时,只能通过 Toolbox 中的 random 来生成 Nakagami-m 随机数。

当使用Matlab Statistics Toolbox时,优先使用上述的专用函数,而非通用函数,因为通用函数为使程序具有较好的通用性,在程序入口处增加了很多条件分支判断,降低了程序效率,而专用函数则直接执行针对特定分布的操作,故具备更高的效率 。事实上,输入editrandom 后,会发现random.m 的实现也是通过switch ….. case ….. 来判断需要调用特定的专用函数,例如当random 函数的name 参数设置为’normal’ 时,实际上会调用normrnd 函数。对于没有专用函数的,如Nakagami-m Rician ,则不会调用专用函数,而是通过random 内部模块实现。

猜你喜欢

转载自blog.csdn.net/LucyLiHHU/article/details/78583619