1. Turbo 码的迭代解码
Turbo 码使用迭代解码过程来逐步改进每个比特是0或1的可能性估计。这个过程依赖两个独立的解码器,这两个解码器与 Turbo 编码器中的两个递归卷积编码器相对应。
- 两个解码器:Turbo 码的解码过程使用两个解码器,这两个解码器分别对应编码器中的两个递归卷积编码器。
- 交织和解交织:在解码过程中,Turbo 码解码器会使用和编码器相同的交织(Interleaving)和解交织(Deinterleaving)方式来处理输入数据和校验信息。这样做的目的是让解码器1和解码器2可以独立地处理同一个数据流,但在不同的顺序下操作,从而改进对数据的解码效果。
2. 迭代解码的工作原理
Turbo 码的迭代解码过程可以分为以下几个步骤:
-
第一次迭代:
- 在第一次迭代时,两个解码器中的一些输入值(例如校验比特)可能还没有被定义好,原因是打孔(Puncturing)操作或另一个解码器还没有对这些输入进行处理。因此,这些未定义的输入值会被简单地设为LLR值为0。
- LLR值为0 表示这比特的状态不确定,也就是说它有 50% 的概率是 0,有 50% 的概率是 1。
-
解码器1:
- 解码器1会根据输入的信息比特和校验比特进行解码,计算出每个比特的 LLR 值(即软信息)。
- 然后,它会生成“外部信息”并将其传递给解码器2。
-
解码器2:
- 解码器2接收到解码器1的输出信息(经过解交织)后,利用这些信息继续改进对每个比特的估计,并生成它自己的 LLR 值和外部信息。
- 然后,它将这些新信息传回解码器1。
-
继续迭代:
- 这个过程不断循环,解码器1和解码器2交替工作,每次迭代都会利用之前的解码结果来改进对比特状态的估计。
- 随着迭代次数的增加,解码器的估计逐渐收敛,最终得到更可靠的解码结果。
3. 什么是外部信息(Extrinsic Information)?
在迭代解码过程中,每个解码器的输出是所谓的“外部信息”,这外部信息是用来传递给另一个解码器,以改进解码结果。外部信息的计算方式如下:
-
外部信息的定义:外部信息是解码器在解码过程中从新输入数据中获得的信息,但它排除了该解码器在输入中已经知道的任何先验信息。这样做的目的是确保每次迭代时,另一个解码器接收到的信息是独立的、新的,而不是重复的先验信息。
-
外部信息的计算:
- 解码器会计算每个比特的输出 LLR 值(这个值是基于解码过程中所有已知信息的可能性估计)。
- 为了计算外部信息,解码器会从这个输出 LLR 值中减去它在输入时的 LLR 值,即先验信息。
- 公式表示为:
外部信息 = 输出LLR − 输入LLR \text{外部信息} = \text{输出LLR} - \text{输入LLR} 外部信息=输出LLR−输入LLR - 这样得到的结果就是“外部信息”,这个值只包含了通过当前迭代中解码器从数据中获取的新信息。
4. 为什么要使用外部信息?
外部信息在 Turbo 码解码过程中起着关键作用,因为它可以确保两个解码器在每次迭代中传递的信息是新信息,从而逐步提高解码精度。如果传递的不是外部信息,而是包含了所有先验信息的 LLR 值,那么解码器在每次迭代中就可能不断重复使用相同的信息,导致解码效率降低或无法收敛。
总结
- Turbo 码的解码过程是一个迭代的过程,利用两个解码器交替工作来逐步改进解码结果。
- 迭代过程中使用的 LLR 软信息表示比特是 0 或 1 的可能性,并随着每次迭代逐渐改进。
- 外部信息是从输出 LLR 中去除掉输入 LLR 的部分,仅保留在当前迭代中获得的新信息,用于传递给另一个解码器。
- 这样做的目的是确保在每次迭代中,每个解码器处理的都是新信息,从而提高解码精度。