matlab常见分布的分布函数的命令,Matlab统计工具箱中各类概率分布函数使用方法介绍...

本帖最后由 winner245 于 2013-4-24 22:47 编辑

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内部模块实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值