最近在梳理通信原理课程里的信号分析章节发现“确定信号、随相信号、起伏信号”这组概念不仅是考试卷子上的高频考点更直接决定了接收机到底该用相干检测还是包络检波、门限电平该按什么标准来设。很多刚接触通信系统的同学容易把这三种信号混为一谈或者只记住公式却说不清它们各自对应什么物理场景等到做仿真或者看实测数据时就懵了。这篇文章就用工程视角重新把三类信号拆开讲一遍。内容包括三种信号的数学建模差异、统计特性、接收端检测策略以及我在实际仿真和系统联调中踩过的一些坑。无论是准备考研复试、做课设还是刚入门软件无线电想搞懂接收链路都可以参考。1. 三种信号的本质区别与工程定位1.1 确定信号教科书里的“模范生”确定信号就是那种可以用明确数学表达式写出来的信号比如s(t) A cos(2πft φ0)。只要给定了时间 t信号的瞬时值就是唯一确定的没有半点随机性。正弦波、方波、矩形脉冲、chirp 信号只要起始相位已知、幅度已知全都属于这一类。这类信号在分析上最舒服因为频谱、能量、功率都可以精确求解。但工程里真正“完全确定”的信号其实不多——发射机自己产生的本振信号、经过精确校准的测试序列、有线信道里的基带码型这些可以近似看成确定信号。它最大的价值是作为分析起点先把确定信号搞明白再往里加随机相位、随机幅度才能一步步逼近真实信道。我当年做课设的时候老师第一句话就是“先把发射端和接收端用确定信号跑通再换随相信号、起伏信号。”这句话后来在实际项目中验证过无数次——确定信号是用来验证系统功能正确性的随机信号才是用来验证系统性能的。1.2 随相信号相位未知时的现实妥协随相信号的典型特征是幅度确定相位随机。数学上通常写为s(t) A cos(2πft θ)其中 θ 是在 [0, 2π) 上均匀分布的随机变量。也就是说这个信号的频率、幅度我都知道但我不知道它从哪个相位开始。为什么会遇到这种情况最典型的就是非相干接收。比如ASK、FSK信号的包络检波接收端不提取载波相位直接对包络做判决。此时信号到达接收端的相位受传播时延、本振相位影响完全可以建模成均匀分布的随机相位。生活化类比确定信号像是录好的磁带从头播放哪一秒是哪个音符都清楚随相信号像是同一盘磁带但不知道被人按到了哪一段才开始放你知道歌还是那首歌只是不知道当前放的进度。幅度不随机相位随机这就是随相信号。1.3 起伏信号幅度也在波动的“最难缠”对手起伏信号更进一步不仅相位随机幅度同样是随机变量。典型模型是s(t) A(t) cos(2πft θ)其中 A(t) 服从某种统计分布最常见的是瑞利分布或者莱斯分布。这种信号对应的是移动通信里的多径衰落、雷达目标回波的起伏、以及各种复杂电磁环境下接收信号的真实形态。如果说确定信号是舞台剧按剧本演随相信号是剧本还在但演员忘了从哪句开始起伏信号就是不仅忘了从哪句开始麦克风音量还在被人疯狂乱拧。幅度忽大忽小相位乱七八糟这才是接收机在真实环境里遇到的常态。1.4 三类信号对照信号类型幅度相位典型场景检测策略确定信号恒定固定已知测试序列、本地参考、有线传输相干检测、匹配滤波随相信号恒定随机均匀分布非相干接收的FSK/ASK、突发通信包络检波、能量检测起伏信号随机分布随机均匀分布移动衰落信道、雷达起伏目标门限检测、分集接收、统计判决这三类信号在接收端对应的处理方式完全不同。搞清楚它们的统计特性是设计检测门限和判决准则的前提。2. 核心数学模型与统计特性拆解2.1 确定信号的数学表达与功率谱确定信号的分析工具是傅里叶变换。周期信号用傅里叶级数展开非周期信号用傅里叶变换得到频谱密度函数。比如单频正弦信号s(t) A cos(ω0t φ0)它的频谱在 ±ω0 处各有一条谱线幅度为 A/2。对于脉冲信号频谱是抽样函数形状主瓣宽度与脉冲宽度成反比。这个特性直接决定了系统的带宽需求。功率谱密度这个概念对确定信号是严格的对随机信号则要用维纳-辛钦定理来定义。我在写仿真代码时遇到确定信号一般直接 FFT 看频谱遇到随机信号就不能直接用单次 FFT 的结果当功率谱了必须做多帧平均否则估计出来的谱线抖动严重。这个差异值得新手注意。2.2 随相信号的联合概率密度与等效窄带过程随相信号的核心统计量是包络 A 恒定、相位 θ 在 [0, 2π) 均匀分布。它的概率密度函数为f(θ) 1/(2π), 0 ≤ θ 2π如果把随相信号展开成正交分量形式s(t) X cos(ω0t) - Y sin(ω0t)其中X A cos θ、Y A sin θ当 θ 均匀分布时X 和 Y 分别服从某种分布且两者联合分布具有圆对称性。这就是后面推导包络检波输出分布的基础。实际通信系统里随相信号往往还要叠加高斯白噪声。噪声通过窄带系统后可以用同相分量 I 和正交分量 Q 表示。信号加噪声后的包络不再恒定而是服从广义瑞利分布——也就是莱斯分布。这个结论非常重要因为非相干检测就是基于对“信号加噪声的包络”进行判决。2.3 起伏信号幅度的瑞利与莱斯分布推导思路当接收信号包络由大量独立散射分量叠加时根据中心极限定理同相分量和正交分量都近似服从高斯分布且相互独立、方差相同。此时包络就服从瑞利分布概率密度为f(r) (r/σ²) exp(-r²/(2σ²)), r ≥ 0其中 σ² 是每个正交分量的方差。瑞利分布的特点是包络均值不为零峰值出现在 r σ 处但瞬时值可以跌落到接近零。这种“深度衰落”是移动通信中最让工程师头疼的问题。如果在大量散射分量之外还存在一个主导的直射分量包络则服从莱斯分布概率密度为f(r) (r/σ²) exp(-(r² A²)/(2σ²)) I0(Ar/σ²), r ≥ 0其中 A 是直射分量幅度I0 是零阶修正贝塞尔函数。莱斯分布比瑞利分布多一个参数 K A²/(2σ²)称为莱斯因子。K 越大信道越接近“直射占主导”的情况K 趋近于零时莱斯分布退化为瑞利分布。我实测过一段室内的连续波信号用直方图统计包络后发现视距场景下莱斯因子大概在 8~12 dB 左右拐个弯进了遮挡区之后掉到 3 dB 以下逐渐向瑞利分布靠近。这个测量方法很简单采集 IQ 数据计算瞬时包络画直方图再和理论分布曲线对比拟合。建议做信道相关项目的同学都试一次比单纯看课本印象深得多。3. 信号检测视角下的三类信号处理策略3.1 确定信号的最优检测匹配滤波与相关接收确定信号的最优检测方法是匹配滤波。匹配滤波器的冲激响应是信号的时间反转共轭h(t) s*(T - t)它的核心思想是让信号在某一时刻的瞬时信噪比最大化。在白噪声背景下匹配滤波器输出的峰值信噪比等于2E/N0其中 E 是信号能量N0 是噪声功率谱密度。工程实现时匹配滤波通常等价于相关接收将接收信号与本地参考信号相乘后积分。相关接收的好处是对波形形状敏感对噪声有抑制作用。但前提是本地参考信号必须与接收信号“对得上相位”否则相关结果会大打折扣。这也是确定信号检测在实际系统中最现实的问题你手里拿的是确定信号的模型但真实接收到的信号相位往往已经漂移了。于是就有了下一节要讲的非相干检测。3.2 随相信号的非相干检测包络检波与能量检测随相信号的相位未知不能相干检测只能放弃相位信息对包络或能量做判决。以二进制ASK为例发送“1”时接收信号是幅度为 A 的载波加噪声发送“0”时只有噪声。接收端的处理流程是带通滤波 - 平方或取绝对值 - 低通 - 采样判决。包络检波器的输出分布只有噪声时包络服从瑞利分布信号加噪声时包络服从莱斯分布检测门限选在两条曲线交点的位置附近可以使总错误概率最小。实际工程里如果噪声功率稳定门限常取VT k * 噪声包络的均方根值k 通常在 1.5~3 之间具体取决于对虚警概率的要求。非相干检测的信噪比损失大约是 1 dB 左右换来的是接收机复杂度大幅下降。不需要锁相环、不需要导频电路简单上电就能跑。这在突发通信、低成本传感器网络里非常吃香。3.3 起伏信号的门限设计与分集接收起伏信号的幅度在随机波动固定门限的性能会很差。因为信号包络可能跌到门限以下即使实际在发送信号也会被判为无信号产生“漏检”。对抗起伏最有效的两个手段是自适应门限根据实测噪声电平实时调整判决门限让门限跟着噪声环境走。分集接收用空间分集、时间分集或频率分集把多路相关度低的信号合并降低深度衰落的概率。两条支路做等增益合并或者最大比合并衰落深度会显著变浅。我做过一个简单的仿真单支路瑞利信道平均信噪比 15 dB 时瞬时信噪比低于 5 dB 的概率大概还有 4% 左右用两根天线做最大比合并后这个概率降到 0.4% 以下。这就是分集的价值不要只看平均信噪比。3.4 一个可直接复现的检测概率仿真下面给一个最简单的 Python 仿真片段模拟“是否存在信号”的二值检测。H0 假设是只有噪声H1 假设是确定幅度信号加噪声接收端用包络检波。import numpy as np def simulate_detection(snr_db, n_trials200000): # 参数设置 n 1 # 每个符号内的采样点数可以调整 v np.sqrt(10 ** (snr_db / 10)) # 信号幅度 noise_power 1.0 vt 2.2 # 固定门限实际使用时根据噪声功率换算 # H0只有噪声包络服从瑞利分布 noise_real np.random.normal(0, np.sqrt(noise_power / 2), n_trials) noise_imag np.random.normal(0, np.sqrt(noise_power / 2), n_trials) env0 np.sqrt(noise_real**2 noise_imag**2) # H1信号加噪声包络服从莱斯分布 sig_real v noise_real sig_imag noise_imag env1 np.sqrt(sig_real**2 sig_imag**2) pfa np.mean(env0 vt) pd np.mean(env1 vt) return pfa, pd for snr in [0, 3, 6, 9, 12]: pfa, pd simulate_detection(snr) print(fSNR{snr:2d} dB, Pfa{pfa:.4f}, Pd{pd:.4f})运行结果大致是SNR 0 dB 时检测概率只有 0.3 左右9 dB 时可以到 0.95 以上。虚警概率由门限和噪声功率之比决定想压低虚警就得抬高门限但代价是检测概率跟着降。这个仿真虽然简化掉了频偏、采样偏差等因素但足够说明“包络检波 固定门限”的基本规律。4. 实际系统中的应用映射与设计取舍4.1 随相信号在通信系统里的真实踪迹随相信号模型最常见的应用场景是非相干接收机。蓝牙、LoRa、部分物联网设备里的FSK解调很多都采用非相干方式。接收端不关心载波绝对相位只关心频率变化或者包络变化。另一个典型场景是突发通信。数据帧的起始时刻和载波相位都是随机的接收端需要做前导检测。前导检测阶段接收机看到的就是一个“相位未知、幅度可能恒定”的信号按随相信号模型处理非常合适。我做软件无线电接收机时有一个体会只要接收链路里没有闭环锁相那所有“单次快拍”的载波相位都应当视为随机量。不要试图去“估计”它然后用相干方式解调成本高且脆弱直接用非相干模块更稳。4.2 起伏信号的现实来源与识别方法起伏信号在真实环境中的来源主要包括移动通信中的多径衰落包络服从瑞利或莱斯分布雷达目标回波起伏对应不同波动模型信道干扰和电磁环境变化导致信号幅度缓慢或快速波动识别一段数据是“随相信号”还是“起伏信号”方法很简单连续采集一段时间内的包络计算它的方差。如果包络的方差远小于均值基本可以按随相信号处理如果方差和均值同一个数量级甚至更大那就要按起伏信号来建模。我在一套无人机图传链路测试中做过统计飞行过程中接收信号包络的方差大约是均值的 0.6 倍明显属于起伏信号。当时如果有人还按“恒定幅度”去设门限链路肯定不稳定。4.3 接收机参数设计中的经验取值设计一个包络检波接收机时有几个参数值得提前定好带通滤波器的带宽取信号带宽的 1.2~1.5 倍太窄会让信号波形失真太宽会引入额外噪声。门限与噪声功率的比值按目标虚警概率反推。如果允许虚警概率为 10^-4门限大约在噪声标准差的 3.7 倍位置如果允许 10^-2门限可以降到 2.3 倍左右。观测时间包络检波后的低通滤波器时间常数决定了检测的等效信噪比积累长度。时间常数越大输出包络越平滑但响应越慢。突发通信里要折中一般取符号周期的 3~5 倍。这些取值没有绝对标准但有了模型之后就可以定量推导而不是靠感觉去调。我最开始做接收机时门限靠手调每换一个环境就要重新调后来改成根据采集噪声功率自动计算门限一发不可收拾地发现稳定性好得多。5. 常见误区与踩坑记录5.1 随相信号不等于未知信号随相信号只是相位未知幅度、频率、调制方式都是确定的。这不是“什么都不知道”的信号而是“知道除了相位以外的一切”。很多人把随相信号和“完全未知信号”混淆导致在仿真里把信号建模成幅度也随机、频率也漂移的复杂模型把问题搞复杂了。如果只是相位随机那就用非相干检测解决如果频率也未知那是另一层估计算法的问题如果波形和调制方式都未知那就不是检测问题而是认知无线电的课题了。建模时不要过度复杂化。5.2 起伏信号不能只看平均功率起伏信号的平均功率可能看起来够用但瞬时功率会深衰落。用平均信噪比评估起伏信号性能会高估系统表现。正确做法是看一定置信度下的瞬时信噪比下限或者直接看误码率曲线中的“误差地板”效应是否出现。我早期做射频链路预算时只用平均接收功率算余量结果实测误码率比预算差了好几个数量级。后来才意识到多径衰落带来的深度衰落才是主要矛盾。从那以后做链路预算我至少会按衰落余量 8~12 dB 来做工程冗余。5.3 门限设计不能直接拿信号幅度定不少初学者喜欢把检测门限设在“信号幅度的一半”这在接收信号幅度恒定时勉强能用但只要叠加噪声或者信号发生起伏这种方法直接失效。门限应当由噪声电平与目标虚警概率共同决定而不是由信号幅度决定。如果信号幅度本身起伏门限跟着信号走是错的。门限跟着噪声走检测概率自然由信噪比决定这才是合理的分层逻辑。5.4 快速识别三种信号的口诀我自己总结了一个快速识别口诀相位唯一 - 确定信号振幅确定相位乱 - 随相信号幅度也在抖 - 起伏信号拿到一个待分析的信号时先画包络曲线看幅度是否稳定再取多段信号的瞬时相位直方图看是否均匀分布。两步就能判断该按哪种模型处理。5.5 仿真与实测之间的典型落差最后说一个普遍的仿真坑仿真里用的是理想带通滤波器和理想包络检波器但实际电路里的滤波器有插入损耗包络检波器二极管有导通压降低通滤波器有纹波这些都会让实际检测概率比仿真低。做仿真时预留 1~2 dB 的余量是经验之谈。我个人做接收机联调的习惯是仿真性能达标后先降 2 dB 信噪比再跑一遍硬件测试如果还能满足指标再考虑批量。这个“预留 2 dB”的习惯帮我挡掉了很多环境差异带来的翻车事故也算是在三类信号分析中绕不开的一点实战体会。