概率论六大分布函数:从高斯到Nakagami-m的通信实战梳理
概率论中的六大分布函数从高斯到Nakagami-m一个通信工程师的实战梳理做通信系统仿真、信号处理或者无线信道建模的朋友迟早都会撞上这一组分布函数。高斯分布、复高斯分布、瑞利分布、Nakagami-m分布、均匀分布、卡方分布这几兄弟几乎贯穿了从噪声建模、信道衰落到信号检测的所有核心环节。我自己刚入行那会儿看到论文里一会儿一个CN(0, σ²)一会儿又是Rayleigh fading后来又是Nakagami-m说实话人是懵的。这些分布之间到底什么关系什么时候用哪个仿真的时候怎么产生对应随机数翻教材觉得太理论查资料又太零散花了很长时间才把这些东西串成一条线。这篇文章就按我实际工作里的理解方式把这六个分布函数从头到尾捋一遍。不讲太深的测度论重点放在三件事每个分布长什么样、物理上代表什么场景、工程上怎么用怎么算。适合正在做通信仿真、信号检测、信道估计的工程师和学生也适合想把概率论基础补扎实的读者。1. 整体思路为什么这六个分布总是扎堆出现1.1 一条完整的信号处理链路很多人学分布是零散地学学完高斯忘瑞利考试能过遇到实际问题还是不会选。我后来发现这六个分布其实是沿着一条完整的信号观测链路自然浮现出来的。一条典型无线通信链路从发射端到接收端中间要经历的事情大致是发射信号加上热噪声经过多径衰落信道接收端做匹配滤波、能量检测或者参数估计最后判决。这条链路上每一步的数学描述恰好就用到了这批分布。热噪声本身是大量独立随机因素叠加的结果中心极限定理把它推向高斯分布。信号经过多径传播如果路径足够多且没有直达分量包络幅度就是瑞利分布。如果有直达分量或者更复杂的散射环境包络可以用Nakagami-m分布建模m参数调节衰落深度。发射端相位在[0, 2π)上不确定均匀分布登场。而相干检测里对高斯变量做平方求和出来的就是卡方分布。至于复高斯分布那是对通带信号做等效基带描述时的自然产物实部和虚部各是一个独立同分布的高斯变量。你把这几个分布放在这条链路上去理解就不会觉得它们是孤立的数学对象而是同一套物理场景在不同观测角度下的数学投影。1.2 概率密度函数是“形状”累积分布函数是“概率”工程上我强烈建议大家养成一个习惯拿到一个分布先看概率密度函数PDF的形状再看累积分布函数CDF算概率最后才看均值和方差做参数匹配。为什么这个顺序重要因为PDF告诉你随机变量集中在哪些取值附近CDF告诉你门限判决的概率而均值和方差虽然最常用但信息量其实最低两个完全不同的分布可以有相同的均值和方差。举个例子高斯分布和均匀分布的均值方差如果强行匹配看起来可能有点像但尾部行为完全不同。高斯分布在三倍标准差之外仍然有约0.27%的概率而均匀分布直接截断超出区间概率为零。这种差异在通信系统里会直接影响误码率地板效应只在均值方差层面看是发现不了的。后面每个分布我都会沿用这个思路先给表达式再解释形状特征然后给工程含义。2. 六大分布的数学定义与物理图景2.1 高斯分布一切噪声的起点标准高斯分布写出来是f(x) (1/√(2πσ²))·exp(-(x-μ)²/(2σ²))。这个公式看着烦但我建议大家记住几个数字就够用了约68%的概率落在均值±1σ约95%落在±2σ约99.7%落在±3σ。高斯分布在通信里地位特殊根本原因在于中心极限定理。热噪声是大量电子随机运动的宏观表现每个电子的贡献微小且相互独立叠加之后收敛到高斯。这就像一锅汤里放了一千种调料每样只放一点点最后你尝不出任何一种调料的单独味道但整体味道是稳定的高斯分布就是这样一种“稳定味道”。工程上常见的一个坑是只要看到噪声就假设高斯。这个假设在做接收机设计时可以接受因为高斯噪声下的线性处理是最优的。但实际环境里的 impulsive noise——比如电火花干扰、电力线噪声——尾部明显比高斯分布厚这时候还硬套高斯模型检测性能会显著恶化。我之前做过一个电力线通信的项目背景噪声用高斯建模结果仿真性能比实测好一大截后来换成了带脉冲分量的混合模型才对上。2.2 复高斯分布等效基带的“标准语言”复高斯分布不是在实数域上随便定义一个复数变量而是实部x和虚部y分别独立、同方差的高斯分布。表达式写作x ~ N(μ_r, σ²/2)y ~ N(μ_i, σ²/2)通常记作复变量h x jy服从CN(μ, σ²)。这里的σ²是复变量总方差实部和虚部各占一半。为什么通信系统非要用复高斯因为你做等效基带仿真的时候通带信号s(t) a(t)cos(2πf_c t φ(t))会被搬移到零中频变成s_b(t) x(t) jy(t)。实部和虚部分别对应同相分量和正交分量也就是I路和Q路。加性高斯白噪声经过这一搬移之后I路和Q路的噪声就是两个独立同分布的高斯过程。复高斯变量的模|h|就是幅度这个幅度恰好服从瑞利分布而它的模平方|h|²服从指数分布。这里有很漂亮的联系后面讲瑞利和卡方的时候会展开。相位∠h则服从[0, 2π)上的均匀分布这又跟均匀分布连上了。一个复高斯变量牵出了三个分布这也是它值得单独拎出来的原因。2.3 瑞利分布无直达分量时的幅度衰落瑞利分布的概率密度是f(r) (r/σ²)·exp(-r²/(2σ²))r≥0。公式里只有一个参数σ它是复高斯变量实部或虚部的标准差也就是I路或Q路噪声的标准差。我习惯记它的两个统计量均值E[r] σ√(π/2)均方根值是√2·σ。工程上这两个数字经常换着用比如要从目标平均功率倒推仿真参数就需要这个换算。瑞利分布描述的是这样一个物理场景接收信号由大量散射路径构成没有任何一条占主导的直达路径。城市密集区里的移动通信、室内多径环境经常符合这个模型。如果发射机和接收机之间有视距LOS路径情况就不一样了幅度分布会向莱斯分布方向偏移瑞利假设不再成立。这里补充一个容易出错的地方瑞利分布的峰值出现在r σ处PDF在r0处等于0也就是说信号幅度为0的概率密度是零。这是好事说明完全无信号的概率极低但幅度趋近于零附近的概率密度并不小。这对应的是深度衰落场景接收信号可能在一段时间内掉到噪声以下。2.4 Nakagami-m分布更广义的衰落建模Nakagami-m分布的概率密度是f(r) (2m^m r^(2m-1))/(Γ(m)·Ω^m)·exp(-m·r²/Ω)r≥0。这里有形状参数m和尺度参数ΩΩ是平均功率Γ(m)是伽马函数。这个分布最妙的地方在于它的灵活性m取不同的值可以退化成多个常见分布。m1时Nakagami-m退化为瑞利分布。m0.5时它是单边高斯分布对应更严重的衰落。m趋于无穷大时分布越来越集中逐渐退化为无衰落的情况也就是接收信号近似恒定。另外在m1时它跟莱斯分布有近似对应关系莱斯因子K和m之间有换算公式(K1)²/(2K1)近似等于m。我自己的经验是如果写论文做系统级仿真又不想引入莱斯分布的贝塞尔函数Nakagami-m是很好的替代品。它的m参数可以拟合一整类衰落环境从室内到户外、从轻度到重度衰落都能覆盖。代价是它的物理来源不像瑞利分布那样直观它是基于经验拟合提出的模型但工程上好用比纯粹物理直观更重要。Nakagami-m和瑞利的另一个重要区别是m1时虽然数学形式退化为瑞利但工程上如果实测数据的m值是1.2或者0.8直接用瑞利模型就会产生误差。更好的做法是把m估计出来用Nakagami-m直接拟合。后面实操部分我会给一个Matlab估计m参数的例子。2.5 均匀分布最“简单”也最“复杂”的分布均匀分布的概率密度在区间[a,b]内是常数1/(b-a)区间外为零。它的熵在所有连续分布中是最大的也就是说均匀分布是“不确定性最高”的分布这个性质在信息论里的地位很高。通信里的均匀分布常见于三个场景。第一个是相位均匀分布信道相位或信号初始相位通常建模为U(0, 2π)我记得前面讲复高斯时已经提到了。第二个是量化误差分布均匀量化器产生的量化噪声近似服从U(-Δ/2, Δ/2)其中Δ为量化步长。第三个是随机数发生器几乎所有蒙特卡洛仿真的起点都是先在[0,1)上产生均匀随机数再通过反变换法映射成其他分布。均匀分布虽然被很多人认为是“最简单的分布”但我不这么看待。它其实是所有仿真的原料你的高斯随机数、瑞利随机数、Nakagami随机数底层都离不开均匀随机数。理解了均匀分布和逆变换采样才算理解了随机数生成这件事本身。2.6 卡方分布平方和之后的概率规律卡方分布是由n个独立标准正态随机变量的平方和构成的记为χ²(n)n称为自由度。它的概率密度是f(x) (x^(n/2-1)·exp(-x/2))/(2^(n/2)·Γ(n/2))x≥0。卡方分布在检测理论中地位非常特殊。能量检测器把接收信号分成I路和Q路各自平方求和得到的统计量在噪声存在时服从中心卡方分布在信号存在时会偏移到非中心卡方分布。所以你在做信号检测门限设计时卡方分布直接决定了虚警概率和检测概率。还有几个重要的工程数字卡方分布的均值为自由度n方差为2n。这意味着随着n增大分布会越来越像高斯分布——这也是中心极限定理的又一次体现。做仿真时如果n很大直接调用卡方分布函数会慢可以近似用高斯分布代替这在小样本性能分析里是一个常用技巧。另外注意卡方分布和指数分布的关系n2时的卡方分布就是均值为2的指数分布。而复高斯变量模平方服从指数分布这件事本质上就是卡方分布n2的特例。这些分布之间的联系越来越明显了。3. 分布家族谱一张关系网把六兄弟串起来3.1 从复高斯到瑞利、卡方、均匀复高斯变量h x jy是这整张网的中心节点。h的实部x和虚部y是独立高斯变量这个我们已经知道。对它做三种不同的“坐标变换”就能得到三个不同的新分布。第一种变换看包络r |h| √(x² y²)这个幅度服从瑞利分布。第二种变换看功率p |h|² x² y²它服从指数分布等价于自由度为2的卡方分布除以2。第三种变换看相角θ arctan(y/x)它服从均匀分布U(0, 2π)。这三个结果其实说的是同一件事你在复平面上取一个点点的径向距离、平方距离、角度分别服从三种不同规律。几何上理解这件事特别直观比死记公式有用得多。这套关系在仿真中极其实用。我经常需要生成瑞利衰落系数最直接的方法不是直接调瑞利随机数函数而是生成两个高斯随机数一个做实部一个做虚部然后取模。这样生成的序列不仅幅度服从瑞利相位也天然服从均匀分布和真实信道特性完全一致。3.2 Nakagami-m如何统一瑞利与单边高斯Nakagami-m之所以被称为“通用衰落模型”因为它用一个参数m调节衰落深度。m1时退化为瑞利m0.5时退化为单边高斯也就是最严重的衰落。这个“退化”不是数值近似而是把m代入公式后数学上严格成立的。这个性质在系统设计里有现实意义。比如你在评估一个系统的抗衰落性能可以先在瑞利衰落m1下仿真再调到m0.7、m1.5观察性能变化趋势。这比分别实现瑞利、莱斯好几套模型要简单得多代码量大幅下降。当然Nakagami-m也不是万能。它跟莱斯分布之间的转换只是近似在某些参数范围误差较大。如果仿真场景里有明确强直达路径我建议直接用莱斯分布建模Nakagami-m更适合“说不清楚具体衰落机理、但知道衰落程度”的场景。3.3 高斯、卡方、瑞利在检测理论中的联动检测理论里的经典场景是判断接收信号里有没有目标信号。噪声功率已知的情况下接收信号能量包含噪声加信号而纯噪声时的能量统计量服从中心卡方分布有信号时服从非中心卡方分布。这里高斯分布又出现了因为I/Q两路的噪声都是高斯的平方和才是卡方。如果没有高斯噪声的假设整个卡方分布检测框架就不成立了。而如果进一步关注包络检测也就是对匹配滤波输出取幅度噪声包络又服从瑞利分布。所以一个简单的检测问题高斯、卡方、瑞利三个分布全用上了。我当年做雷达信号检测实验时画虚警概率P_fa关于检测门限的曲线门限的选取就是从卡方分布的尾部积分解出来的。第一次搞清楚“门限是怎么来”的之后再看各种恒虚警算法思路顿时清晰了。这里面没有太多高深技巧但你必须清楚这些分布在检测链路里的角色分工。4. 实操过程仿真生成与参数计算4.1 Matlab环境下高质量随机数生成做仿真首先得能生成符合指定分布的随机数。Matlab里每个分布基本都有现成函数但我还是建议你掌握底层生成逻辑方便排错。高斯随机数用randn函数生成均值为0方差为1要变成任意均值方差用mu sigmarandn(N,1)。复高斯变量就直接写成randn(N,1) 1jrandn(N,1)注意这时每个分量的方差是1复变量总方差是2。如果要指定复方差为sigma2就写成sqrt(sigma2/2)(randn(N,1) 1jrandn(N,1))。瑞利随机数的生成有两种方式。第一种高级方式是直接用raylrnd(sigma, N, 1)第二种底层方式是先用randn生成复高斯再取模我推荐第二种因为和真实信道物理过程一致。Nakagami随机数在通信工具箱里有nakagami函数但在老版本里没有可以用关系式转换如果R服从Nakagami-m那么m·R²/Ω服从伽马分布。先生成伽马随机数gamrnd(m, Ω/m)再开方乘上√m就得到了瑞利相关变量。均匀随机数直接用rand范围[0,1)要变成[0, 2π)就乘以2π。卡方随机数用chi2rnd(n)也可以先用randn生成n列高斯逐行平方求和。这里有个容易被忽略的细节普通randn生成的高斯序列严格说并不是真正独立的它是一个伪随机序列。在仿真长度很长、或者做大量蒙特卡洛重复实验时要留意随机数种子设置。我用的是每次实验换不同的种子而固定某个基准场景用固定种子以便复现。4.2 用仿真验证分布之间的等价关系我强烈建议初学者做一次这个验证实验一次性把复高斯、瑞利、卡方、均匀的关系全部串起来。第一步生成大量复高斯变量h数量取十万级写成h sqrt(0.5)(randn(N,1) 1jrandn(N,1))这样总功率为1。第二步分别计算幅度、功率和相位保存三个数组。第三步用histogram做直方图和理论PDF对比r的理论PDF是2r·exp(-r²)功率p的理论PDF是exp(-p)相位的理论PDF在每个角度上都是常数1/(2π)。如果重叠得很好说明你的随机数生成和理解都到位了。我在课堂上带学生做这个实验时最常看到的问题是功率的直方图因为长尾效应分布很宽看不清楚。解决办法是横轴做截断只画到几个单位以内或者画成半对数坐标。另外相位直方图如果用普通的直线坐标画因为概率密度是常数看起来比较无聊但这是好现象说明相位确实均匀。4.3 从实测数据估计Nakagami-m参数拿到实测信道数据时最常用的做法是估计Nakagami-m分布的两个参数。Ω的估计很简单就是信号包络平方的样本均值也就是平均功率。m的估计稍微麻烦一点工程上常用的是矩估计法。先计算平方E[r²]这个值再计算E[(r²)²]也就是四阶矩。对于Nakagami-m分布存在关系E[r²] ΩE[r⁴] Ω²·(11/m)这样联立解出来m 1 / (E[r⁴]/E[r²]² - 1)。实际操作中我用一个10万点的实测幅度序列先算出平均功率再算四阶矩求得m值然后画CDF和理论曲线对比。如果m值大概在0.8到1.2之间可以判断这个信道近似瑞利衰落m远大于1说明信道比较稳定m小于0.5说明衰落非常严重。这套流程做下来信道环境的基本情况就摸清了。用矩估计的缺点是对样本量比较敏感尤其是E[r⁴]这个四阶矩受极端值影响很大。如果数据中存在个别异常值m估计会偏小。这时候我建议先对数据做预处理把远偏离均值的野值剔除或者用中位数滤波再重新估计。5. 常见问题与排查技巧实录5.1 高斯随机数变成复数时方差对不上这个问题我见过太多次了。原因是复高斯变量CN(0, σ²)里的σ²是总方差而randn生成的是实部方差为1的高斯变量。如果把两个独立randn直接合成复数实部虚部方差各为1复变量总方差是2不是一个0dB单位功率的噪声。解决方法就是乘上sqrt(σ²/2)。比如要让复高斯噪声功率为1代码写成sqrt(1/2)(randn(N,1)1jrandn(N,1))再把实部虚部分开检查各自的方差实部虚部都应该约等于0.5。5.2 瑞利分布参数σ和平均功率的混淆瑞利分布的PDF里那个σ²是复高斯变量实部或虚部的方差不是平均功率。平均功率是E[r²] 2σ²。我见过有同学想生成平均功率为1的瑞利衰落直接写raylrnd(1)这样做生成的信号平均功率是2整个仿真链路功率基准就偏了。正确做法是若目标平均功率为Ω参数应该设成σ sqrt(Ω/2)生成之后做个检查取数千个样本平均一下看看是否接近Ω。这个小检查十秒钟就能完成但能省掉后面一连串调bug的时间。5.3 自由度过大时卡方仿真运行极慢大自由度卡方直接生成会慢原因在于很多实现是逐个自由度累加高斯平方。如果只是画个曲线图或者做粗略性能评估可以用近似方法。自由度n较大时卡方分布近似为高斯分布N(n, 2n)。更精确的近似是用(√(2χ²)近似服从N(√(2n-1), 1))这种方差稳定化变换。精度要求高的场景下建议直接用标准函数库比如Matlab从某版本开始chi2rnd的效率已经不错或者用乘加法生成。我的习惯是先用近似公式估算数量级再用精确公式确认关键点。5.4 仿真结果与理论曲线重叠不好蒙特卡洛仿真曲线和理论曲线对不上我总结下来无外乎三个原因样本数不够、参数设置错误、坐标系画错。样本数少导致的波动是统计噪声增加仿真次数就能解决。参数设置错误最常见的就是前面讲的平均功率和σ混淆。坐标系画错指的是概率密度和直方图的纵轴对应关系直方图纵轴是频数要除以总样本数和横轴宽度才能和理论概率密度的数值对应。很多初学者忘记做这一步归一化导致直方图整体偏高或偏低。5.5 均匀分布相位却出现“棱角”形状的直方图用atan2(y,x)算相位时如果不注意象限角度范围结果会聚在某些角度附近看起来像有棱角。正确做法是用atan2函数它的值域是[-π, π]乘以适当的转换后就能得到[0, 2π)上的均匀分布。如果用atan(y/x)然后手工处理象限很容易出错。实际上如果只是想生成均匀相位不必先造复高斯也可以直接用rand2pi。但在信道仿真里相位和幅度是同一个复高斯变量的不同投影所以我更推荐先生成复高斯再提取相位。6. 一个小技巧用分布函数做信道调试最后额外分享一个我在实际仿真调试中特别受益的做法。系统性能不对时很多人第一反应是检查调制解调代码或信道编码但我先会检查信道模型本身是否正确方法就是“生成信道系数的直方图对比理论PDF”。有一次我在仿真一个自适应调制系统误码率一直比预期差不少代码查了几遍没发现明显错误。后来我随机抽取了几百个信道实现画直方图发现衰落系数的分布明显偏向小值说明信道生成时归一化出了问题。定位到问题后我把平均功率归一化改为按σ参数归一化整个系统的误码率立刻就和理论对齐了。这段经验的核心就是分布函数不只是书上的公式它们是帮你在仿真链条里定位异常的“仪表盘”。每个分布对应一个明确的物理环节当你看到哪一环的统计规律和预期不符问题就缩小到那一环里了。这套检查法我后来一直在用每次做新系统仿真都会先跑一遍分布验证再去调系统层面的参数效率提高非常明显。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →