news 2026/8/11 3:26:28

通信原理篇---第一类部分响应的预编码和相关编码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通信原理篇---第一类部分响应的预编码和相关编码

我们用「事先打暗号的猜谜游戏」来彻底讲懂预编码和相关编码,你会惊叹于它们的巧妙。


核心比喻:猜数字游戏

假设我们要玩一个游戏:我快速报出一串数字给你听,你要猜出我心中原始的数字序列。

但是有个讨厌的规则:我每次报出的数字,不是我心中的数字本身,而是「我心中的数字 + 你刚猜出的那个数字」的总和。

举个例子

  • 我心中的数字序列是:1 0 1 1 0

  • 如果按规则报数,第一个数我报1(因为前面没猜数,默认为0,1+0=1

  • 你猜出第一个是1

  • 第二个数,我心中的是0,但我要报0 + 你刚猜的1 = 1

  • 你听到1,但你知道规则,就会算:听到的1 - 你刚猜的1 = 0,正确!

  • 第三个数,我心中的是1,我要报1 + 你刚猜的0 = 1

  • 你听到1,算:1 - 0 = 1,正确!

这个游戏能玩下去的关键在于:你总是知道规则,并且总能记住自己刚猜的数字来做减法。

这个「游戏规则」,就是通信中的「相关编码」
而我根据规则提前调整要报的数,就是「预编码」


分解讲解

第一部分:相关编码 —— 「制定游戏规则」

相关编码就是故意引入一个已知的、固定的数学关系

在我们的游戏中,规则是:我报出的数 R_k = 我心中的数 D_k + 你刚猜的数 A_{k-1}

在真实通信中,最常见的规则就是第一类部分响应:R_k = D_k + D_{k-1}(接收值 = 当前发送值 + 前一个发送值)。

相关编码的作用

  1. 控制干扰:把随机不可控的码间干扰,变成规则可控的“游戏规则”。

  2. 塑造频谱:通过设计不同的规则(系数),可以让信号的频谱变得又“瘦”又“好看”,节省带宽。

  3. 简化接收:因为规则固定,接收端只需要做简单的减法或模运算就能还原。


第二部分:预编码 —— 「游戏开始前的作弊小抄」

但上面的游戏有个致命问题:如果我心中的数字是1 1,按规则:

  • 第一个报1

  • 第二个要报1 + 你刚猜的1 = 2
    如果你听成了31,整个链子就断了,而且会连环错下去。

解决办法:在游戏开始前,我不直接用心中的原始数字玩,而是先根据规则,把原始数字转换成另一套数字

转换方法(以模2预编码为例)

  • 设转换后的序列为P_k

  • 规则:P_k = 原始数字 D_k ⊕ P_{k-1}(⊕表示异或,相同为0,不同为1)

  • 然后我用P_k去玩上面的报数游戏。

神奇的效果
经过这个转换后,在接收端,你不再需要做减法,只需要看我报出的数是奇数还是偶数,就能直接知道原始数字!

  • 如果我报出的是偶数(比如0, 2)→ 你直接猜原始数字是0

  • 如果我报出的是奇数(比如1, 3)→ 你直接猜原始数字是1

预编码的作用

  1. 消除差错传播:接收端每个判断都是独立的,猜错一个不影响下一个。

  2. 简化判决:从需要做“减法并记忆”变成简单的“奇偶判断”。

  3. 实现模运算:把三进制值(0,1,2)映射回二进制判决。


全过程图解

让我们用第一类部分响应 ([1, 1]) 为例,看看预编码+相关编码如何完美配合:

关键点

  1. 发送端:原始数据 → 预编码 → 相关编码 → 发送

  2. 接收端:接收 → 模2判决(奇偶判断)→ 直接得到原始数据

图解说:这个「黄金组合」巧妙在哪里?

发送端的智慧(三步走):

  1. 原始数据[1, 0, 1, 1, 0]

  2. 预编码:通过异或运算转换成[1, 1, 0, 1, 1]

    • 这是关键准备,为后续简化接收做准备

  3. 相关编码:按照[1, 1]规则,得到发送序列[1, 2, 1, 1, 2]

    • 注意这里出现了2(三电平信号)

接收端的简单(一步判断):

  • 收到[1, 2, 1, 1, 2]

  • 只看奇偶:奇数→1,偶数→0

  • 直接得到:[1, 0, 1, 1, 0]

魔法时刻对比:

步骤无预编码(只有相关编码)有预编码(黄金组合)
接收端操作需要做R_k - 前一个输出值
需要记忆,容易连环错
只需判断奇偶
无需记忆,独立判断
差错影响错一个,后面全错(差错传播)错一个只错一个(差错隔离)
实现复杂度接收端复杂发送端稍复杂,接收端极简

核心思想一句话

预编码是「提前布局」,相关编码是「按规则出牌」,接收端的奇偶判断是「简单解密」——三者配合,把复杂的抗干扰通信变成了优雅的数学游戏。


一个具体数字例子

假设原始数据:D = [1, 0, 1, 1, 0]

第1步:预编码(设初始P_0 = 0,使用异或)

  • P1 = D1 ⊕ P0 = 1 ⊕ 0 = 1

  • P2 = D2 ⊕ P1 = 0 ⊕ 1 = 1

  • P3 = D3 ⊕ P2 = 1 ⊕ 1 = 0

  • P4 = D4 ⊕ P3 = 1 ⊕ 0 = 1

  • P5 = D5 ⊕ P4 = 0 ⊕ 1 = 1

  • 预编码后P = [1, 1, 0, 1, 1]

第2步:相关编码(规则:T_k = P_k + P_{k-1},设P_0 = 0

  • T1 = 1 + 0 = 1

  • T2 = 1 + 1 = 2

  • T3 = 0 + 1 = 1

  • T4 = 1 + 0 = 1

  • T5 = 1 + 1 = 2

  • 发送序列T = [1, 2, 1, 1, 2]

第3步:接收端模2判决(奇数→1,偶数→0)

  • 1(奇) → 1

  • 2(偶) → 0

  • 1(奇) → 1

  • 1(奇) → 1

  • 2(偶) → 0

  • 最终输出[1, 0, 1, 1, 0]✅ 与原始数据完全一致!


为什么需要这对「黄金组合」?

只有相关编码(无预编码)相关编码 + 预编码
接收端需要做减法和记忆接收端只需奇偶判断
差错会传播:错一个,后面全错差错不传播:错一个只影响自己
实现相对简单,但可靠性低发送端稍复杂,但接收端简单可靠

现代通信的选择:几乎总是使用「预编码 + 相关编码」组合,因为接收端的简化带来的可靠性提升远远值得。


一句话总结

相关编码制定规则:「我发出的信号会是当前值和前值的混合」。
预编码提前布局:「我先调整原始数据,让你收到混合信号后,能用最简单的方式(看奇偶)猜出我的原意」。

它们是一对黄金搭档,把复杂的「抗干扰+省带宽」问题,变成了一个优雅的「打暗号猜谜游戏」。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 7:41:58

通信原理篇---第二类部分响应的预编码和相关编码

我们用「带负号的声音接力」这个游戏来彻底搞懂第四类部分响应的预编码和相关编码。这个类比会让你发现它和第一类的精妙差异。核心比喻:带负号的猜数游戏这次的游戏规则变了,更奇特:新规则:我报出的数字 我当前的数字 - 你猜的上…

作者头像 李华
网站建设 2026/8/6 14:28:51

MySQL事务隔离级别:从并发混乱到数据一致性守护者

引言:一个银行系统的并发困境想象一下,你正在开发一个银行转账系统。当用户A向用户B转账时,系统需要执行两个操作:从A账户扣款,向B账户加款。在并发环境下,如果没有适当的控制,可能会发生这样的…

作者头像 李华
网站建设 2026/8/10 21:00:03

【卫星】全球导航卫星系统GNSS中的欺骗与欺骗检测算法,模拟载体在正常GNSS导航和GNSS欺骗攻击下的运动状态,通过IMU+GNSS融合定位,最终实现欺骗检测与结果分析附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

作者头像 李华
网站建设 2026/8/10 0:01:35

在Markdown文档中添加目录的方法

在Markdown文档中添加目录有多种方法,下面介绍几种常用的方式: 一、自动生成目录(部分编辑器/平台支持) 1. 使用 [TOC] 标记(Typora、部分GitHub项目等) [toc] # 标题1 ## 标题2 ### 标题32. 使用插件/扩…

作者头像 李华
网站建设 2026/7/28 20:59:53

2025年AI应用架构师趋势:智能调度系统的4个进化方向

2025年AI应用架构师必看:智能调度系统的4个关键进化方向 一、引言:为什么智能调度是AI架构师的下一个战场? 1.1 痛点:传统调度系统的“力不从心” 你是否遇到过这样的场景? 外卖高峰时,骑手们像没头的苍蝇一…

作者头像 李华