
搞信号处理和通信系统建模的人基本都绕不开两个词平稳随机过程和遍历性。我记得读研那会儿第一次在教材第八章碰到“遍历性”这一节感觉像在看天书前面刚把严平稳、宽平稳捋清楚突然又冒出来一个“时间平均等于统计平均”还要均方收敛、自相关遍历……一堆概念叠加在一起绕得人头晕。后来真正拿噪声数据做频谱分析、估信道参数时我才发现遍历性不是纯理论它直接决定你手里那一小段数据到底能不能代表整个随机过程。简单说遍历性要回答的问题就是如果我们只拿到随机过程的一条样本函数能不能用这条样本在时间轴上的平均值去代替同一时刻对所有样本求期望如果能很多工程估算就一下子简单了。这篇文章我把这个概念拆开讲清楚先说为什么非有它不可再给标准定义和判断条件然后用两个典型例子做完整推算最后聊一点我实测数据时检验遍历性的土办法。适合正在学随机过程、或者做信号处理/通信系统仿真时被“要不要做 Monte Carlo”困扰的同学。1. 为什么需要遍历性统计平均与时间平均到底差在哪1.1 随机过程天然带着两套平均初学随机过程时最别扭的地方在于它有两个维度。一个维度是时间 (t)另一个维度是“样本空间”里的不同实现。严格写成数学形式是 (X(t,\zeta))其中 (\zeta) 表示某一次随机试验的结果。固定 (t)(X(t,\zeta)) 是一个随机变量固定 (\zeta)(X(t,\zeta)) 是一条普通的时间函数也就是样本函数。理论研究时我们喜欢用统计平均比如[ \mu_X(t)E[X(t)]\int_{-\infty}^{\infty}x,p_t(x),dx ]这相当于在某个固定时刻 (t)对所有可能的样本实现求平均。问题在于现实工程里你很难同时拿到“所有样本实现”。你测放大器噪声手头只有一台设备、一段电压波形你测网络流量也只有一个网口的历史数据。换句话说理论要求的是“集合平均”实际能提供的是“一条曲线”。如果没有一座桥把这两者接起来那所有理论公式都无法落地。1.2 平稳是前提但平稳远远不够要想用时间平均替代统计平均最基础的条件是过程要平稳。为什么平稳保证了统计特性不随时间平移变化也就是说 (E[X(t)]) 不再是 (t) 的函数而是一个常数 (\mu_X)。这样我们才可以把一条很长样本上的数据看作对同一随机变量不断重复观测从而用时间平均去逼近这个常数。但平稳并不等于遍历。平稳只说明集合内所有样本的“整体统计规则”不随时间变化没有保证“每一条样本的时间平均”都相等。你可以这样想象有一个随机过程它由很多条样本组成其中每一条样本都是一个水平直线但每条直线的水平高度不同且高度服从随机分布。这个系统整体上看是平稳的你在任意时刻对所有样本求平均都会得到同一个常数但如果你只拿其中一条样本去算时间平均得到的就是这条直线的高度而这个高度是随样本变化的并不等于整体平均。这就是“平稳但不遍历”的典型感觉。1.3 工程上为什么不敢随便用单样本假设你要测某台放大器输出噪声的平均功率。如果过程遍历你只需要采集一段数据算时间平均功率结果就能代表这台设备统计意义上的噪声功率。但如果过程不遍历那么这一段数据反映的可能只是某一种特定运行状态换一次上电、换一个环境、换一台设备结果会明显漂移。我在实际项目里碰到过类似情况同一批传感器单独测每只传感器的零漂发现每只的直流偏置都不同但每只传感器在长时间内又很稳定。如果把所有传感器放在一起看可以建模成一个平稳随机过程但每一只传感器的长时间平均都收敛到它自己的偏置而不是所有传感器的平均偏置。这就是典型的“集合平均存在但单个样本无法代表整体”。理解了这个例子后面很多公式你就能对上号了。2. 平稳随机过程与遍历性的标准定义2.1 严平稳、宽平稳与我的建议在教材里平稳分两种。严平稳要求随机过程的任意有限维分布关于时间平移不变条件非常强实际工程几乎无法验证。宽平稳只要求两点均值是常数自相关函数只与时间差有关即[ E[X(t)]\mu_X,\qquad R_X(t_1,t_2)R_X(t_1-t_2) ]绝大多数信号处理理论都建立在宽平稳之上因为一阶矩和二阶矩已经足够描述功率、频谱、相关性这些核心特性。我的建议是处理实测信号时先把宽平稳作为起点再去谈遍历性。非要一步到位验证严平稳数据量不够不说还容易陷入无意义的“统计检验”泥潭。2.2 均值遍历性终于可以写公式了定义时间平均算子[ \langle X(t)\rangle_T \frac{1}{T}\int_0^T X(t),dt ]若当 (T\to\infty) 时这个时间平均均方收敛到统计均值 (\mu_X)也就是[ \lim_{T\to\infty} E\left[\left|\langle X(t)\rangle_T-\mu_X\right|^2\right]0 ]则称过程具有均值遍历性。这个条件可以拆成两步看。第一步要求时间平均的期望等于统计均值[ E[\langle X(t)\rangle_T] \mu_X ]这个条件通常由宽平稳保证因为对积分取期望后(E[X(t)]\mu_X) 直接提出来。第二步要求时间平均的方差趋于零[ \lim_{T\to\infty}\mathrm{Var}[\langle X(t)\rangle_T]0 ]这才是真正关键的条件。它说明用一条样本算出来的时间平均虽然会有随机起伏但起伏要随着观测时间增加而消失。你可以把它理解为做多次测量取平均如果测量系统的随机误差足够小测的次数足够多平均值就会稳定下来如果平均值一直在随机漂移那就不能说这个过程是均值遍历的。2.3 自相关遍历性比均值遍历更严格均值遍历只是第一关。信号处理中自相关函数同样重要因为它决定了功率谱。自相关遍历的定义类似先定义样本时间平均自相关[ \hat R_T(\tau)\frac{1}{T-\tau}\int_0^{T-\tau}X(t\tau)X(t),dt,\quad 0\le \tauT ]如果对任意 (\tau)当 (T\to\infty) 时(\hat R_T(\tau)) 均方收敛到理论自相关 (R_X(\tau))就称过程具有自相关遍历性。注意这个定义涉及到 (X(t\tau)X(t)) 这样两个时刻样本乘积的统计特征严格判断时往往需要知道四阶矩而不是只靠二阶矩就能搞定。所以均值遍历并不自动蕴含自相关遍历后者通常更难验证。实际做功率谱估计时我们默认过程既平稳又遍历然后用有限长的 (\hat R_T(\tau)) 去估计理论自相关再做傅里叶变换得到功率谱。3. 如何判断一个过程是否具有遍历性3.1 均值遍历的实用判据不用背但要会用教材上关于均值遍历性有一个充要条件对宽平稳过程来说时间平均的方差可以写成[ \mathrm{Var}\left[\langle X(t)\rangle_T\right]\frac{1}{T}\int_{-T}^{T}\left(1-\frac{|\tau|}{T}\right) \left[R_X(\tau)-\mu_X^2\right]d\tau ]因此均值遍历性等价于[ \lim_{T\to\infty} \frac{1}{T}\int_{-T}^{T}\left(1-\frac{|\tau|}{T}\right) \left[R_X(\tau)-\mu_X^2\right]d\tau 0 ]这个式子看起来有点吓人但含义很清楚只要 (R_X(\tau)-\mu_X^2) 随着 (|\tau|) 增大衰减得足够快那么上述积分除以 (T) 之后就会趋于零。工程上更常用的是一个充分条件[ \int_0^\infty\left|R_X(\tau)-\mu_X^2\right|d\tau\infty ]也就是说自相关函数最终要“收得住”尾巴的面积有限。绝大多数低通型随机噪声、带限噪声都满足这个条件所以可以很快判断出它们均值遍历。但要提醒一句这个充分条件不必要。比如随机相位正弦波的自相关函数是周期余弦绝对值积分是发散的但它依然是均值遍历的。所以遇到周期性较强的信号不能只靠这个条件一票否决还要回到定义看方差是否趋于零。3.2 自相关遍历的判据怎么降级使用自相关遍历的严格判据要涉及四阶统计量式子很长工程里一般很少有人真的去推。我的处理方式分两步。第一步先看过程是否接近高斯分布。如果过程可以近似为零均值高斯过程那么四阶矩可以拆成二阶矩乘积自相关估计的方差最终由 (R_X^2(\tau)) 的衰减行为决定。此时只要 (R_X(\tau)) 随 (\tau) 增大快速衰减自相关遍历性基本有保障。第二步如果过程明显非高斯那就不要硬套公式而是用数据验证。比如把一段长数据分成若干段分别估计自相关函数观察不同段的 (\hat R_T(\tau)) 是否在同一个曲线附近波动。波动小说明用时间平均估计自相关是稳定的波动大说明自相关遍历性存疑。这个方法虽然不如数学证明严谨但在工程实践中非常实用。3.3 常见误区平稳、各态历经与随机变量混在一起我总结几个新手最容易踩的坑放在一起对比概念关注点工程含义严平稳所有有限维分布平移不变很难验证极少直接用宽平稳均值常数、自相关只与时间差有关信号处理中默认的基础假设均值遍历时间平均能否收敛到统计均值决定能否用一段数据估计均值自相关遍历时间平均自相关能否收敛到统计自相关决定能否用一段数据估计功率谱各态历经/遍历遍历的另一种翻译二者同指 ergodicity常与平稳混用但含义更严格常见误区包括把“平稳”当成“遍历”的充分条件以为只要时间足够长任何过程都能用时间平均代替统计平均还有把“随机变量”和“随机过程”搞混看到实测均值随样本变化就怀疑测量有问题其实可能是过程本身不遍历。4. 遍历性在信号处理和通信中的实际地位4.1 维纳-辛钦定理自相关、功率谱和时间平均连在一起遍历性最直接的应用就是功率谱估计。平稳过程的自相关函数和功率谱密度满足维纳-辛钦定理[ S_X(f)\int_{-\infty}^{\infty}R_X(\tau)e^{-j2\pi f\tau}d\tau ]如果过程还具有遍历性那么实际中就可以用一条样本的时间平均自相关来替代理论自相关然后再做傅里叶变换。所谓周期图法本质上就是把有限长观测数据的自相关估计变换成功率谱。用代码实现时我一般会先对数据去均值再分段做 FFT最后把多段功率谱平均起来这样得到的结果比直接对整段数据做 FFT 平滑得多。这个操作的理论底气就来自遍历性。4.2 Monte Carlo 仿真里“单次运行”是否够用做通信系统仿真时大家习惯用 Monte Carlo 跑很多次然后把结果平均。这其实是在做“集合平均”。但如果你只需要稳态统计量比如噪声功率、功率谱、眼图张开度而且激励和噪声都可以建模为平稳遍历过程那么只跑一次足够长的时域波形就能用时间平均得到这些统计量。这样做能省下大量仿真时间。需要区分的是误码率这类指标是对随机事件概率的统计必须靠大量符号累积才能估计。但单次长序列仿真内部同样隐含了时间平均只要序列长度足够符号之间经历的信道状态和噪声状态足够充分结果也会趋近理论误码率。所以遍历性想法在 Monte Carlo 中无处不在只是很多人没意识到。4.3 有限长度数据的三个工程坑遍历性是极限性质现实中永远只能拿到有限长数据所以有三个坑很常见。第一数据长度小于相关时间。如果自相关函数衰减得很慢说明随机过程存在“长记忆”时间平均需要极长时间才能稳定。我习惯先估计相关时间[ \tau_c\int_0^\infty|\rho_X(\tau)|d\tau ]然后要求观测长度 (T) 远大于 (\tau_c)比如至少 (10) 倍以上否则时间平均结果的随机起伏会很大。第二周期信号叠加导致自相关不衰减。带随机相位的正弦信号叠加宽带噪声后自相关函数包含周期成分单看尾巴可能不归零但它的均值遍历性仍然成立。这时不能直接判断“不遍历”要把周期成分单独建模处理。第三分段平均时各段均值差异很大。如果数据均匀分段后每段均值明显不在同一个水平线上要么过程非平稳要么存在非遍历的慢变分量。这种情况最先做的不是继续平均而是排查趋势项、偏置和外界干扰。5. 两个经典例子完整推算5.1 混合过程为什么“平稳”却可能不遍历先看一个经典的平稳但不遍历的例子[ X(t)YZ(t) ]其中 (Y) 是一个随机变量均值为 (m)方差为 (\sigma_Y^2)(Z(t)) 是零均值平稳遍历随机过程且与 (Y) 独立。这个模型在工程上很常见比如“传感器个体偏置 零均值噪声”。先算统计平均[ \mu_XE[X(t)]E[Y]E[Z(t)]m ]再算单条样本的时间平均[ \langle X(t)\rangle_T\frac{1}{T}\int_0^TX(t),dtY\frac{1}{T}\int_0^TZ(t),dt ]因为 (Z(t)) 遍历且零均值后一项在 (T\to\infty) 时趋于零于是[ \langle X(t)\rangle_T \to Y ]这里的 (Y) 是这一次观测中随机变量的具体取值。不同样本(Y) 不同。所以时间平均不会收敛到统计均值 (m)而是收敛到当前样本的偏置。只要 (\sigma_Y^20)这个过程就不满足均值遍历性。更进一步算自相关[ R_X(\tau)E\left[(YZ(t\tau))(YZ(t))\right] E[Y^2]R_Z(\tau) ]而单条样本的时间平均自相关趋于[ Y^2R_Z(\tau) ]显然只有当 (Y^2) 恰好等于 (E[Y^2]) 时两者才一致一般情况下都不相等。所以这个过程的均值遍历和自相关遍历同时被破坏。5.2 随机相位正弦波有随机参数也可以遍历再看一个反直觉的例子[ X(t)A\cos(\omega t\Theta) ]其中 (\Theta) 是在 ([0,2\pi)) 上均匀分布的随机变量。这个过程的统计平均是[ E[X(t)]0 ]统计自相关是[ R_X(\tau)\frac{A^2}{2}\cos(\omega\tau) ]现在取一个固定样本也就是固定某个相位 (\theta)。时间均值[ \langle X(t)\rangle_T\frac{1}{T}\int_0^T A\cos(\omega t\theta),dt \to 0 ]所以均值遍历成立。再看时间平均自相关[ \hat R_T(\tau)\frac{1}{T}\int_0^T A^2\cos(\omega(t\tau)\theta) \cos(\omega t\theta),dt ]用积化和差展开[ \hat R_T(\tau)\frac{A^2}{2}\cos(\omega\tau) \frac{A^2}{2T}\int_0^T\cos(2\omega t\omega\tau2\theta),dt ]第二项的积分是振荡项除以 (T) 后趋于零因此[ \hat R_T(\tau)\to \frac{A^2}{2}\cos(\omega\tau) ]正好等于统计自相关。这个例子告诉我们即使单个样本只包含一个固定初相某些统计量依然可以和时间平均一致。原因在于自相关运算本身会把初相抵消掉而不是因为这个样本真的遍历了所有相位状态。5.3 从两个例子得到的判断直觉对比这两个例子可以得到一个很实用的直觉真正破坏遍历性的往往是随机幅度、随机直流偏置、随机慢变分量而不是随机相位本身。如果一个过程可以拆成“随机常数 遍历过程”的结构那它基本就是非遍历的。反过来随机相位、随机频率这类参数只要它们不产生样本之间不可平均的特征过程仍然可能是遍历的。实际建模时我习惯先把信号中的直流偏置、趋势项、正弦干扰分离出来剩下的随机部分再谈平稳和遍历。否则一个本来遍历的过程叠加了不稳定的直流偏置之后会被人为地“测”成不遍历。6. 拿到一段实测数据怎么粗略检验遍历性实操心得6.1 分段检查均值与自相关是否“稳”遍历性理论上要用无穷长数据判断但实测中我们可以用“分段稳定性”来做合理性检查。把数据按时间均匀分成 (M) 段每段长度要大于前面提到的相关时间然后分别计算每段均值和自相关函数。如果各段均值围绕总体均值上下波动而且段间方差随着段长增加或段数增加而减小那至少和均值遍历的预期一致。如果某几段均值和另外几段明显不在一个水平就要小心存在非遍历的慢变分量。我实测某型号传感器噪声时分四段发现前两段均值比后两段高了大约 (0.3) dB后来定位到是电路板温漂属于非平稳因素。先去除趋势项后再按遍历假设处理结果就稳了。6.2 自相关尾巴结合频谱观察遍历过程的自相关函数通常会在足够大的时间差后收敛到 (\mu_X^2)。对零均值过程来说就是自相关尾巴要靠近零。如果你画出样本自相关后发现尾巴拖得很长甚至在几千个采样点之后还不衰减那大概率存在长相关或慢变分量。另一个快速办法是看频谱的低频区。如果一个过程包含随机偏置或慢变随机分量它的功率谱在零频附近会出现很高的能量。这种“零频能量异常”往往比自相关曲线更直观。我通常会把周期图的低频部分放大如果零频附近有一根很尖的谱峰而数据又明显不是周期正弦就会怀疑有随机直流分量需要重新审视遍历性假设。6.3 把“遍历性假设”写进报告别让它默认成立最后说一个容易被忽视的经验遍历性不是天然成立的公理而是一种建模假设。尤其在写检测报告、仿真报告或论文时说清楚“这里假设过程是平稳且遍历的”和列出数据采集条件一样重要。我曾见过有人测同一台设备第一次采集和第二周采集得到的平均噪声功率相差不少被误判为“设备不稳定”。后来查下来设备的随机偏置每次上电都会变但偏置在单次采集内非常稳定。这种情况不能简单用“不平稳”解释更准确的建模是“平稳但非遍历”。如果一开始就把偏置作为随机变量建模再评估它的分布结论就会合理得多。至少我会让学生在处理数据前先做一遍分段均值的稳定性检查把这个当作例行流程而不是等好几段数据对不上才回头找原因。