尧图精选

通信原理中的卷积:从物理直觉到匹配滤波与多径信道

🕒 发布时间:2026/10/1 4:03:32 📁 来源:尧图网络
写这篇文章之前我翻了不少通信原理教材的目录和考研论坛的帖子发现一个挺有意思的现象不管是樊昌信第七版还是南邮801的真题解析“卷积”这个词出现的频率极高但真正花一整章讲清楚卷积物理含义的书非常少。大多数教材要么直接甩出一个积分公式要么告诉你“这是LTI系统分析的数学工具”然后就开始推导傅里叶变换的卷积定理。结果就是公式能背、题能套但遇到匹配滤波器为什么能提高信噪比、多径信道为什么会让信号变形这类实际问题时脑子里还是一团浆糊。这篇文章我想换个讲法。不从数学定义出发而是从通信系统里卷积真正出现的场景出发把“翻转-滑动-相乘-累加”这个操作逻辑讲透再回到公式和性质。这样你回头再去看教材里那页纸会顺很多。适合正在学通信原理的本科生、准备考研的兄弟以及工作中偶尔要碰信号处理但基础不牢的工程师。1. 为什么通信系统里到处都在卷积先看三个高频场景很多人学卷积的第一个困惑是数学课上讲卷积信号课也讲卷积到了通信原理还在讲卷积它到底藏在系统的哪个环节直接看三个最常见的物理场景你就明白这东西不是人为发明的抽象操作而是描述信号“经过系统”这件事的必然数学形态。场景一接收端的匹配滤波器。这是通信原理里最经典的卷积应用没有之一。接收端要把淹没在噪声里的信号捞出来最省事的方法就是让接收信号通过一个冲激响应为发送信号时间反转的滤波器这个操作本质上就是做一次卷积。很多同学背下了这个结论却不理解为什么非要做卷积、为什么不是简单地做乘法。后面我会专门用一节把这件事拆开讲。场景二多径信道对信号的破坏。你在教室讲课教室有回声同一句话你听到好几遍只是每一遍来得早晚不同、声音大小不同。电磁波在城市里传播也是这样信号从发射机出发经过高楼反射、地面反射、直射多路到达接收端每一路的延迟和衰减都不一样。接收端收到的信号是发射信号在这些不同延迟、不同幅度副本上的叠加。这个叠加过程数学上就是一个卷积。场景三基带成形滤波器的脉冲整形。数字通信里二进制比特要先映射成一系列冲激脉冲或者说理想方波再通过一个成形滤波器变成带宽受限的波形这样才能在信道上传输。这个从“离散冲激序列”变成“连续波形”的过程就是用冲激序列去卷积成形滤波器的冲激响应。你没看错D/A转换、脉冲成形、内插这些名字背后全是同一个操作卷积。这三个场景表面上看完全不同一个是接收处理一个是信道传输一个是发送端成形但扒开外壳内核都是同一个数学结构。这就是为什么教材不厌其烦地让你掌握卷积因为通信系统从头到尾信号每经过一个线性时不变系统就是在做一次卷积。个人经验学通信原理如果想少走弯路第一件事就是建立这个“一切LTI系统处理即卷积”的直觉。你带着这个直觉去看匹配滤波、看码间串扰、看RAKE接收机会发现它们其实是同一个故事的不同章节。2. 卷积的物理直觉翻转、滑动、相乘、累加到底在干什么如果你已经被“积分形式”劝退过别慌我先把卷积的物理操作逻辑讲清楚。2.1 一个最简单的例子点一盏灯想象一个极简的系统你在t0时刻轻轻拍一下桌子桌子会在接下来几秒内以某个方式振动。假设桌子对这个拍击的响应是h(t)意思是“一个发生在t0的瞬间冲击在之后的时刻t产生的响应输出”。现在你在t1时刻又拍了一下力气是之前的2倍。因为桌子是线性时不变系统第二次拍击的响应就是2倍延迟版的h(t-1)。t0和t1两次拍击的总响应就是两个响应的简单相加。这很好理解。但如果拍击不是离散的几次而是连续的用力过程x(t)——比如你用手掌慢慢压下去又抬起来每一瞬间都相当于一个微小的冲击这些冲击在不同时刻发生、带着不同大小桌子任意时刻的输出就是所有历史冲击在该时刻响应的叠加。这个“叠加所有历史冲击的贡献”的操作就是卷积。2.2 翻转和滑动的几何含义卷积公式里的x(τ)h(t-τ)那个“t-τ”和“翻转”很多初学者觉得故弄玄虚。其实拆开看就很朴素求系统在时刻t的输出y(t)你要把过去每一个τ时刻的输入x(τ)拿出来这个输入发生在τ时刻到现在时刻t已经过去了(t-τ)这么久系统的冲激响应是h那么“发生在过去的冲击对现在的影响”就是h在这段时间后的值也就是h(t-τ)把所有这些影响加起来也就是对τ做积分。至于为什么叫“翻转”h(t-τ)随着τ从负无穷扫到正无穷等效于先把h(τ)沿纵轴翻一下变成h(-τ)再向右平移t。这是便于几何作图的解释。但它真正的物理含义是“从当前时刻往回追溯历史影响”所以翻转本质上是因果性的数学表达不是一个随便加上去的奇技淫巧。2.3 信号与系统视角的回归把上面这个直觉对照回教科书你会发现教材里花大力气推导的卷积性质其实每一条都有物理直觉时域卷积对应频域乘积时间卷积积分特性意思是两个信号在时域里做卷积等价于在频域里把它们的频谱简单相乘卷积满足交换律意味着“信号经过系统”和“系统反过来作用于信号”从输入输出关系上看是对称的卷积的展宽效应两个函数卷积后的支持域是两者支持域之和直观理解就是信号通过有限带宽的信道后脉冲会被展宽这正是码间串扰的来源。这些性质不是考试用的公式工具它们是通信系统设计的物理约束。你能理解到这一层后面学爬升滤波、均衡器、匹配滤波都会觉得格外通透。注意很多教材把卷积和互相关放在一起讲这两个操作长得很像都涉及翻转和滑动但卷积是h(t-τ)互相关是h(τ-t)或者说h(τt)差了那个翻转。应用上匹配滤波看似是相关运算实际上是因为滤波器冲激响应已经被设计成了输入信号的时间反转所以卷积在数值上等于相关。这个细节教材容易混考场上经常出判断题。3. 匹配滤波器通信里最漂亮的卷积实例这一节把匹配滤波器作为解剖对象看看卷积在接收端到底是怎么工作的顺便把很多教材一笔带过的重要细节补上。3.1 为什么接收端要做一个“相关器”考虑一个二进制通信系统发送方发一个矩形脉冲s(t)持续时间为T。经过信道到达接收端时除了这个信号还叠加了白噪声n(t)。接收端拿到r(t)s(t)n(t)怎么判断当前这个时刻有没有信号、信号是0还是1最显然是拿r(t)和已知的s(t)做比较但不是逐点比较而是算它们的相似程度。这个相似程度的标准数学度量就是内积也就是积分∫r(t)s(t)dt。这个积分操作在物理上可以表示成让r(t)通过一个冲激响应为h(t)s(T-t)的线性时不变滤波器输出在时刻T的值就是∫r(τ)s(τ)dτ。整个推导的核心就是卷积的匹配性质h(t)取s(t)的时间反转卷积输出在tT时刻正好等于内积。用卷积的观点看匹配滤波你会明白它确实是在“找相似度”而不是在“滤波”这个字面的频域选择意义上尽管它确实等效于让信号频谱通过一个共轭匹配的滤波器。3.2 卷积在这里解决了什么问题如果没有卷积这个工具你很难解释为什么接收机要做这么“古怪”的一步——翻转信号再做卷积。但当你建立了“LTI系统输出就是输入和冲激响应的卷积”这个心智模型后设计匹配滤波器的思路就变得非常顺理成章你想让某个时刻的输出最大就把滤波器的冲激响应设为输入信号的匹配版本让信号分量在该时刻相干叠加同时白噪声是随机的不会和任何固定波形相干所以在该时刻的输出统计平均为零。这个过程中卷积的“叠加历史影响”性质被用到了极致。信号分量在时刻T各处对齐能量集中输出噪声分量的相位随机叠加后互相抵消。卷积不仅仅是数学工具它本身就是“相干积累”这个物理过程的抽象。3.3 从公式到工程实现在实际实现里匹配滤波器很少真的用一个模拟滤波器去做卷积而更多是用相关器结构或者直接用数字信号处理在离散域做卷积。因为接收机做的是基带处理输入信号被采样成序列匹配滤波变成离散卷积。离散卷积的定义y[n] Σ_{k-∞}^{∞} x[k] h[n-k]如果发射波形是矩形成形匹配滤波就等效于一个滑动累加器也就是对最近N个采样点求和。这个操作在DSP实现里非常便宜一段循环就能搞定。这也解释了为什么很多经典接收机结构的核心就是一个积分清零器而不是一个看起来很复杂的滤波器。实战提醒如果你在仿真平台里用Matlab或Python验证匹配滤波别直接用conv函数做整个序列的卷积然后取中间点容易搞错边界。最稳的做法是先构造好冲激响应h发射波形的时间反转然后从接收序列的起始位置开始做有效卷积再在tT对应的点取值否则边界效应会吃掉你的信噪比。4. 多径信道、脉冲成型与码间串扰卷积的时域故事线如果说匹配滤波器是“卷积让信号增强”那么多径信道就是“卷积让信号退化”。这两个故事连起来你就能理解通信原理里为什么接收端要做均衡器。4.1 多径信道的卷积模型城市里手机收到的信号是几十条路径副本的叠加。每一条路径都有自己的延迟τ_i和增益a_i。数学上信道对信号的响应是h(t)Σa_i δ(t-τ_i)。那么接收信号就是发射信号和这个h(t)的卷积r(t) s(t) * h(t) n(t)如果你发送的是一个很窄的脉冲理想情况下接收端会看到一串脉冲对应着每一条路径。但如果你发送的是一个有一定带宽的已调信号脉冲之间会相互重叠、错位叠加后波形变得“糊”了。这就是多径导致的频率选择性衰落和码间串扰的时域解释。用卷积的角度看多径信道对信号造成的最核心影响是把发送符号的能量从本时刻扩散到了前后若干个符号周期。你发送的第k个符号会在接收端第k个采样时刻留下一部分能量同时在k1、k2时刻也留下尾巴污染后面的符号。这个“能量扩散”的本质就是卷积展宽效应。4.2 根升余弦成形是怎么用卷积“设计”出来的为了防止码间串扰发送端要把每个符号做波形成形让波形在相邻符号采样时刻恰好为零。这个要求翻译到频域就是整个系统传输函数要满足奈奎斯特第一准则。最简单的做法就是采用升余弦谱但升余弦谱直接作为发射滤波器会让噪声带宽太大所以工程上把它拆成发射端和接收端两个根升余弦滤波器两者的级联等效于一个升余弦滤波器。级联两个线性时不变系统等效于一个冲激响应为两者卷积的系统。所以你设计的根升余弦滤波器发射端打出来的是一个拉长的波形接收端再用一个相同的滤波器做卷积整体波形正好满足无码间串扰条件。这就是为什么整个通信系统发送端和接收端的设计最终回到了卷积运算的级联性质上。4.3 时域均衡处理的是“反卷积”问题多径信道等效于一个卷积核如果这个卷积核是已知的接收端可以做反卷积把原信号恢复出来。实际中有两种情况一是信道非时变的可以估计出信道冲激响应再设计逆滤波器这是线性均衡器的基本思路二是信道快变需要自适应算法在线调整滤波器系数这就是自适应均衡器。你如果学过离散卷积会发现“逆滤波器”本质上就是在找一个序列g[n]使得h[n]*g[n]≈δ[n]。这在Z变换域就是要求G(z)≈1/H(z)。但这里有一个天坑如果H(z)在单位圆上有零点直接求逆滤波器是不稳定的工程上只能做MMSE均衡或者DFE判决反馈均衡不能盲目求逆。避坑规范仿真多径信道时如果直接用已知的信道冲击响应对信号做卷积再试图用逆滤波恢复你的误码率大概率会很糟糕不是因为原理错了而是因为噪声被逆滤波放大了。多径衰落信道的均衡问题本质上是一个有噪反卷积问题不能当确定性反卷积做。5. 用可视化建立直觉拿一个简单矩形脉冲手算一遍别急着调代码先在草稿纸上手算一遍离散卷积这个动作比看十遍公式都管用。5.1 手算两个短序列的离散卷积设x[1, 2, 3]h[1, 1]。求y[n]x[n]*h[n]。y[0]x[0]h[0]1×11y[1]x[0]h[1]x[1]h[0]1×12×13y[2]x[1]h[1]x[2]h[0]2×13×15y[3]x[2]h[1]3×13所以y[1, 3, 5, 3]。注意输出长度是len(x)len(h)-14。你再看看y的中间值5它其实是x里相邻两个数相加的结果相当于一个滑动平均没有除以2。这就是最简单的移动平均滤波器作用在信号上的效果——本质就是卷积。实际做这个手算的时候你用“翻转-滑动-相乘-求和”去核对把h翻成[1,1]其实翻不翻一样滑过x的每个位置对应位置相乘求和。一旦换成h[1,2]这种非对称序列你就能清楚看到翻转的作用。5.2 连续矩形脉冲卷积的另一个视觉两个矩形脉冲卷积得到的是三角形脉冲。你如果把第一个矩形的宽度设为T第二个矩形宽度也是T卷积结果就是底为2T的三角。这在通信里有几个直观含义脉冲经过有限带宽信道不再是一个锋利的方波而是边缘被磨圆的钟形两个相邻的三角脉冲如果靠得太近会重叠叠加后中心点的幅度抬高采样判决时不仅看本符号还受相邻符号牵引——这就是码间串扰的几何图形。你把这个视觉图像记在脑子里以后看眼图就有了物理基础。眼图为什么要张得越开越好其实就是“相邻符号尾巴不要串进来”的可视化表达。5.3 卷积与相关的对照实操当年我在学习时经常把卷积和互相关弄混后来自己做了一个仿真先产生一段随机二进制序列映射成波形过信道加噪声然后用两种方式做接收检测——一种是直接用本地模板和接收信号做互相关另一种是把本地模板翻转后做卷积。发现结果完全一致离散卷积公式里取共轭翻转的那个新序列再做滑窗乘法就是相关。这就验证了一句话“相关器和匹配滤波器是同一件事的两种实现”。但这句话只有在滤波器冲激响应取时间反转时才成立很多教材写得不细你在实操时最好用自己的仿真确认一遍。6. 工程提速用FFT做快速卷积以及那些容易踩碎的坑通信系统实时处理时如果接收信号很长直接按定义做时域卷积计算量是O(NM)量级太慢了。工程上通用的做法是换到频域做乘法再换回时域这就是快速卷积的基本思路。6.1 FFT卷积为什么等价于循环卷积根据卷积定理x[n]*h[n]的DTFT等于X(e^jω)H(e^jω)。做DFT时两序列长度都是NDFT乘积对应的时域结果是它们的循环卷积不是线性卷积。只有当Nlen(x)len(h)-1时循环卷积与线性卷积相等在对应的区间上。所以用FFT做快速卷积必须先补零到足够长度再算IFFT丢掉多余部分。这个“补零”细节极其关键。如果你直接拿两块不同长度的数据做FFT点乘然后IFFT你得到的结果是循环卷积序列首尾会互相污染出来的波形完全是错的。我看到过不少老实的工程师在跑仿真时栽在这上面还以为是信道问题。实用步骤确定两序列长度M、L需要满足FFT点数N ML-1把两序列都补零到N点分别做N点FFT逐点相乘再做IFFT取前ML-1个点作为线性卷积的结果。用Python验证的话numpy的np.convolve默认做的是线性卷积如果你要用FFT法得到一致结果就必须手动补零。对比两者误差你会发现浮点精度下误差在1e-15级别这时你就彻底理解了。6.2 分块卷积处理“无穷长”信号实时通信中接收信号是一段一段进来的比如音频处理或基带解调不能等整段到一个primary缓冲再一次性做卷积。这时有两种经典算法——重叠相加法和重叠保留法。实现上重叠相加法把输入分块每块和滤波器h做线性卷积再把重叠区的输出相加重叠保留法则是保留重叠区的输入块直接做循环卷积只保留有效部分。实际经验在流式DSP上不建议自己造轮子做分块卷积直接用成熟的信号处理库如scipy.signal.fftconvolve能省很多事但如果要部署到FPGA或嵌入式平台就必须自己实现重叠保留法这时熟练掌握补零和边界拼接是硬功夫。6.3 频域滤波的边界效应用卷积做滤波时时域的线性卷积会引入暂态过程。比如用长度为N的滤波器对信号做卷积输出前N-1个点不可用因为此时滤波器还没有完全滑入信号区间。很多人在处理一小段录音或一小段突发数据时忽略这个暂态直接取卷积输出的最开始部分结果会有明显失真。在通信系统中做信道估计或频域均衡时你会给数据加循环前缀CP目的之一就是把线性卷积变成循环卷积从而可以用简单的单抽头频域均衡去抵消多径。如果你懂了我上面说的线性卷积和循环卷积的差别就能明白CP的本质作用不是“填充保护间隔”这么简单而是把信道卷积“伪装”成循环卷积让频域处理变得干净免于边缘效应。7. 那些通信原理考卷里反复挖的卷积辨析点复习时最烦的是概念辨析题因为它们直接考察你有没有理解而不是会不会套公式。把几个高频易混点整理成一张表方便你考前对照。7.1 一张表看懂线性卷积、循环卷积与相关运算定义物理意义典型应用线性卷积x[n]*h[n]Σx[k]h[n-k]LTI系统零状态响应匹配滤波、脉冲成形循环卷积对长度N做圆上翻转滑动频域乘积对应时域结果OFDM频域均衡、FFT卷积相关r[k]Σx[n]y[nk]信号间相似度匹配检测、时延估计这三者之间的细微差别就是补零、翻转和共轭。考试如果出“用循环卷积计算线性卷积”的题你只要条件反射写出N≥ML-1就已经完成大半了。7.2 因果性与卷积的积分限“物理可实现”系统要求h(t)0 (t0)所以卷积积分下限是0而不是-∞。很多同学计算连续卷积时把上限下限搞错导致算出一个不满足因果性的结果却找不到原因。做题目时先画好h(t)和x(t)的支持域区间再分段确定积分上下限这是标准方法也是不二法门。我曾经在上课时看到一道典型的考研真题输入信号是一个矩形窗冲激响应是一个单边指数衰减函数要求输出。很多学生直接把积分上下限写成全区间算出来是错的。用分段方法把矩形窗的时间区间和指数函数的存在区间交叉比对分三段积分结果就正确了。7.3 卷积与微分/积分的结合律陷阱卷积满足结合律但工程实现时要注意数值稳定性。比如你在仿真里先对信号做微分再做卷积等效于先对冲激响应做微分再做卷积因为dx/dth xdh/dt这里的微分是广义导数这在理论上没问题但如果你的信号是带噪声的微分会剧烈放大高频噪声导致结果完全失真。因此实际处理时不要简单套用微分卷积恒等式而应该设计一个同时具有微分和滤波功能的频率响应比如带限微分器。这个点做雷达或通信信号特征提取时会直接遇到提前给看到这篇文的兄弟打个预防针。8. 我当年是怎么把卷积学明白的以及一些实用建议很多人问我通信原理里难点那么多为什么我先把卷积吃透我的回答是卷积是整个通信系统的隐藏主线。你不把它学明白后面匹配滤波是背结论OFDM是背循环前缀均衡是背公式所有东西都变成“因为书上这么说”那你学完通信原理就是会做题、不懂通信。一些实际的学习建议花一整个下午手画x(t)和h(t)把滑动窗口在坐标轴上一步步挪画每一步乘积区域和积分结果的形状。这个动作只需要纸笔但对建立卷积直觉的帮助超过了所有仿真。用Python或MATLAB把常见的卷积对画出来矩形与矩形、矩形与指数、sinc与sinc保存成一张图贴在笔记里反复看。遇到“为什么匹配滤波就是卷积”这类问题先自己用离散序列推一遍再套回连续公式印象会深刻得多。刷题时每做完一道卷积计算题停几秒想一想“这个计算在通信系统里对应哪个物理过程”哪怕只是模糊的对应也比纯刷题有价值。另外一个习惯看教材时不要跳过那两三页关于卷积性质的推导尤其是卷积结合律和分配律的证明。这不仅是数学练习更是你后面理解级联系统和并行系统的基础。级联眼图和并行接收的结构推导本质上就是反复在用这两条律。最后再分享一个我屡试不爽的小技巧平时看论文或芯片手册时看到一个“滤波”“相关”“匹配”的模块先问自己一句“如果让我用卷积来写这个模块的输入输出关系表达式是什么”。带着这个习惯看三个月你会发现那些看起来很玄的通信结构在你脑子里全都变成了“一个卷积”整个学科的骨架一下子就立起来了。如果在实际分析时你也遇到过那种“公式背熟了但一到系统设计就发懵”的别扭感不要急那说明你离真正的理解就差一次手算和一次画图的距离。卷积这关一旦通了通信原理后面的路会宽敞很多。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →