YunSDR小课堂-帧同步与信道编码(第86讲)

8.4 信道编码

    既然我们能够成功地跨无线链路恢复数据,接下来可以讨论使该过程更具鲁棒性的技术手段。信道编码是显而易见的方案,且在所有数字通信标准中均普遍采用。

8.4.1 重复编码

    任何通信系统的重要组成部分之一是前向纠错(FEC),通过向传输流中添加冗余数据,增强其对信道误差的抵抗能力。FEC技术种类繁多,例如重复编码方法,其中每个位被多次重复传输。本节将共同探讨通过实现简单重复编码器(重复因子R=4)来抵抗数据传输中错误的一种技术。那么,重复因子R=4的重复编码器意味着什么?一个简单的定义是,如果要传输一个“0”符号,该“0”符号将由重复编码器重复四次,故输出为“0000”。

    首先,让我们双击重复编码器块,这将打开MATLAB函数块编辑器,在其中我们可以编写定制的MATLAB代码。如前所述,设置断点是理解和调试M文件的有效手段。有关断点及其如何用于调试和评估代码的更多信息,请参阅附录B。

1.png

8.4.2 交织

    重复编码是通信系统工程师用以增强数据传输鲁棒性的若干有效工具之一。然而,有时它不足以解决大量数据在连续块中被破坏的问题。例如,若发射机发送数据流“101101”,采用重复因子为4的重复编码器将产生

2.png

    其中每个位被重复四次。尽管该编码方案看似对误差具有较强鲁棒性,但数据传输过程中仍可能出现严重噪声突发,导致连续多个比特损坏,使传输的许多二进制位被破坏,结果为:

3.png

其中部分原始数据完全无法恢复。

4.png

    交织是一种将二进制数据重新排序的方法,显著降低特定序列中各个位之间的相关性。由于误差通常发生在连续的若干位中,故在传输前对比特序列进行交织,并在接收机端对接收到的序列进行解交织,可将位错误分散于整个序列,从而最大限度地减小其对传输信息的影响。简单的交织器会将重复的比特混合排列,使数据中的冗余对误差更具鲁棒性。它通过重新排列重复的比特,确保即使连续的若干比特丢失,每个位的至少一个冗余副本仍能被成功接收。

5.png

    交织步骤可以是数据长度的任一因数。

    然而,不同的交织算法会影响交织器的效果。

6.png

    一旦实现了交织器,我们将重复编码器与交织器合并为一个统一的前向纠错(FEC)子系统。虽然上述简单交织技术足以满足我们的实现需求,但交织技术还包括多种其他形式,我们将在接下来的两个章节中深入探讨。

8.4.2.1

交织的第一种方法是采用块交织器,如图8.10所示。块交织是一种重排比特序列的方法,其中N×M位按列优先方式填充一个N列M行的矩阵,然后将每一行依次串联,最终从交织块输出。在发射机端,块交织器按列加载N个码字,每个码字长度为M位。然后,这些N个码字按行逐个传输,直到交织器清空。随后,交织器重新加载,循环往复。块交织器的主要缺点是每次按列填充时引入的延迟[12]。

8.4.2.2

另一种交织方法是采用卷积交织器[13],如图8.11所示。在发射机端,比特序列被移入由N个寄存器组成的缓冲组,每个寄存器具有递增的缓冲容量。缓冲组中的比特随后通过切换器重新组合,并通过信道传输。在接收机端,执行相反过程以恢复原始序列。与块交织器相比,卷积交织器的内存需求减少约一半[14]。 然而初始填充所带来的延迟问题依然存在。

8.4.3 编码

    除对数据进行多重副本交织外,我们还可以将数据编码成引入冗余的替代序列。许多编码方案独特的性质是能够在不增加数据大小且不要求整数阶数的情况下引入冗余。例如,在重复编码中,每位重复次数为R=2,在FEC讨论中通常表示为1/2的码率,而卷积编码方案则能实现接近于1的码率。这使它们更高效,并提供更有效的吞吐量。在此

7.png

    本节将讨论几种常见的信道编码方案,并介绍其基本工作原理。通常,信道编码是信息理论中一个数学复杂的领域。我们不深入探讨这些方案的理论设计,而是比较其相对性能及实现细节与缺点。

    与交织器类似,编码器通常分为两种基本类型:块编码器和卷积编码器。块编码器针对特定预定义的位组或数据块进行处理。卷积编码器则处理大小不定的数据流,但必要时也可用于数据块编码。关于实现,RS码在群组误差情况下非常有效,此时相邻一段符号受到破坏。

    考虑传输的位,每个符号表示B位,RS码作用于符号,因此可以校正一个符号组中B位的数据。因此,一次破坏一个符号组中B+1位的群组误差,最多可破坏两个符号。

    与RS码类似的编码是BCH码,亦依赖伽罗华域的概念。BCH码更善于校正非群组误差。为降低群组数据误差概率,可在传输前后打乱或扰乱位,减少误差局部性,这对在误差稀疏时表现更优的BCH码尤为有利。然而,在某种程度上,这样处理RS码是不合理的。BCH码在相同冗余位数下可以纠正更多误差,但通常BCH码的解码计算量高于RS码。

    最后一个需要考虑的主流块码是低密度奇偶校验码(LDPC码),它甚至已开始取代主导的涡轮码,后者将在下一节讨论。LDPC码自1960年代出现,但由于其复杂性,直到近十年才开始考虑硬件实现。由Robert Gallager开发的LDPC码可在某些冗余率下接近理论香农极限[15],这不同于RS码和BCH码。然而,LDPC码的计算需求显著更高。尽管如此,LDPC码已被采用于802.11n和DVB-S2标准的部分模式中。

    在使用LDPC码时,设计者必须选择编码器和解码器共用的奇偶校验矩阵,该矩阵的特性决定了码的性能。性能优良的编码通常以较大的块长度出现,如IEEE802.11n/ac中的648、1296和1944。这意味着,在许多情况下,相较于其他编码,需要编码更多的位以有效利用LDPC。

    除了块编码之外,另一种基于流的编码实现方式是卷积编码。这些编码通过卷积方式对数据进行编码,即编码器/解码器连续传递的信息引入冗余,实质上形成对连续符号或位的依赖关系。

    卷积编码器最易通过示例来理解。我们考虑一种编码率为R=2的递归编码器方案,该编码器具有三个寄存器。图8.12展示了该编码器的可能结构,其对系统输入的每个位输出两个编码位。您会注意到当前输出至少依赖于最近的三个输入,类似于FIR或IIR滤波器的记忆特性。

    图8.12可解释为两个方程,见(8.16)。

8.JPG

    解码器将利用数据中的这种依赖关系,帮助消除可能出现的误差。实现此任务最常用的算法称为维特比算法[15],有时亦称为网状算法或解码器。维特比/网状解码器的原理是回溯先前的决策,并利用这些信息最佳判定当前最可能的位或样本。这自然引出了图8.13,因此该结构被称为网状图。图8.13中,最左侧位置表示最近接收的符号或位。连接各节点的线条表示可能的先前符号,其中粗灰线表示基于先前决策更可能的符号。该网格的深度称为追溯长度,追溯越深,位恢复效果越佳。然而,当追溯长度达到约34个符号时,该过程趋于平稳,且追溯深度越大,解码特定符号所需时间越长。这一追溯限制可见于图8.14,我们在该图中考察了16-QAM信号在不同EbN0条件下的多种追溯长度。

    20世纪90年代初,涡轮码被提出,它属于卷积码家族[16]。 涡轮码被第三代和第四代蜂窝标准广泛采用,作为其主要的前向纠错(FEC)方案。类似于LDPC,涡轮码能够在接近香农极限的性能下运行,但计算复杂度低于LDPC,且纠错性能略逊一筹。涡轮码在内部解码过程中本质上采用维特比算法,配合一定程度的交织,并利用一组解码器,在它们之间进行似然估计。这只是对涡轮解码器实际工作方式的极度简化,且对其运行机制的分析是一个非常复杂的课题。然而,只要硬件资源能够支持以所需速度实现解码器,它们就是一种非常强大的编码技术。

    在使用前向纠错(FEC)时,应始终权衡计算复杂度、所需性能与链路允许的编码开销。这一点非常重要,因为在清晰的传输信道中可能不需要较重的编码,此时可通过接近1的更优编码速率获得额外的吞吐量。因此,现代标准如LTE和IEEE 802.11采用自适应调制与编码方案(MCS),以减少编码冗余并提高调制阶数,从而在链路中实现更高的吞吐量。IEEE 802.11本身拥有32个MCS状态或索引,表8.2中提供了其中前四个条目,以便展示码率和调制如何用于权衡冗余与数据速率。

    MATLAB自身提供了我们迄今为止描述的所有编码技术。然而,一些高级编码的使用更为复杂,尤其是在不同模式。例如,由于涡轮解码器的工作原理,它们需要信道估计值以正确确定信道的噪声方差。因此,在特定接收机设计中,必须提供此信息以实现有效解码。

9.png

   正如我们之前讨论的,LDPC编码设计中需要奇偶校验矩阵。默认情况下,MATLAB为DVB提供奇偶校验矩阵,每块需要32,000位,这对于许多应用来说相当不切实际。设计较小的矩阵较为复杂,也超出了MATLAB所提供工具的范畴。

10.png

尽管如此,RS码、BCH码及通用维特比解码开箱即用且参数设置简单,极易使用。

8.4.4 误比特率计算器

    在考察了多种保护受干扰和噪声影响的数据传输可靠性的技术后,现需一种方法对这些技术的性能进行定量评估。回顾第4章节,我们了解到误码率(BER)是评价和比较数字通信系统的常用度量指标。计算误码率的一种简单方法是统计接收到的信息位数,并确定其中的位误差数。换言之,位误差数与接收总位数的比值可为我们提供误码率的近似计算。注意,接收的位数越多,该链路层度量的准确性越高。

8.5 本章总结

    本章节通过相关技术阐述了帧同步的概念,并介绍了通过插入冗余实现的若干常见信道编码技术。鉴于此处提供的有关同步的接收机最后环节,可以实现完整接收机以完成帧恢复。本书迄今讨论的接收机算法的可能架构已被分析,重点关注设计需求。

    在全面讲解同步技术后,我们转而介绍通过编码实现增强链路稳健性的技术,并讨论了这些技术在实现与应用中的优缺点。

文章来源:威视锐科技