当前位置: 首页 > news >正文

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

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


核心比喻:猜数字游戏

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

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

举个例子

  • 我心中的数字序列是: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]✅ 与原始数据完全一致!


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

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

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


一句话总结

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

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

http://www.jsqmd.com/news/244982/

相关文章:

  • android16 rk3576修改音量曲线
  • JSON文件中显示为 \uXXXX 字符 的解决办法
  • MyBatis处理模糊查询
  • 如何用纯 HTML 文件实现 Vue.js 应用,并通过 CDN 引入 Element UI
  • MyBatis处理批量删除
  • 私有化大模型部署:企业AI落地的关键技术方案
  • 【无人机追踪】基于资源福利任务分配算法的无人机集群任务分配算法,完成目标攻击任务的基础上,通过优化资源分配和能耗控制附Matlab代码
  • 【滤波跟踪】视觉里程计VO与惯性导航系统INS外参标定的 MATLAB 代码,通过优化求解相机到INS的坐标变换(平移、旋转、尺度),实现多传感器数据融合前的外参校准
  • ue websocket 插件学习笔记
  • 2026.1.14 Linux计划任务与进程
  • 2025年AI应用架构师趋势:智能调度系统的4个进化方向
  • 如何通过数据分析实现市场细分策略
  • hive分桶表出现错误:The number of buckets for table xxx is 8, whereas the number of files is 16
  • Android16 设置AP热点不自动关闭和热点默认设置5G
  • 部署DNS主从服务器
  • 特性与反射总结
  • linux主机安全加固指南!
  • AI agents协作分析社交网络:评估公司的社会影响力
  • 大规模语言模型在自动诗歌创作中的探索
  • 亲测好用!10款一键生成论文工具测评:本科生毕业论文必备清单
  • AI应用架构师必知:优化AI系统故障诊断的方案
  • AUTOSAR如何自动化生成BSW、RTE、AP模块并进行一致性校验?
  • SRAM 芯片容量计算及常见型号速查表
  • 计算机毕业设计springboot互联网就医系统 基于Spring Boot的互联网医疗服务平台设计与实现 Spring Boot框架下的在线医疗系统开发与应用
  • 救命神器8个AI论文工具,专科生搞定毕业论文+格式规范!
  • 【卫星】全球导航卫星系统GNSS中的欺骗与欺骗检测算法,模拟载体在正常GNSS导航和GNSS欺骗攻击下的运动状态,通过IMU+GNSS融合定位,最终实现欺骗检测与结果分析附matlab代码
  • 单片机基础知识 -- HADDR
  • 深度测评 自考必备 9款一键生成论文工具TOP9推荐
  • 【电力系统】基于混合粒子群优化-禁忌搜索优化在光伏丰富的配电网络中用于优化电池储能系统的位置、容量和调度附matlab代码
  • 一次内网开发环境访问方式的改进实践:使用 FRP 替代远程桌面