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

8.2.2 备用序列

    除巴克序列外,还有其他序列在除特定时刻外具有最小互相关的类似特性。两个流行的选择是Zadoff-Chu序列和Golay互补序列,它们目前均被纳入现有无线标准。Zadoff-Chu序列由Solomon Zadoff和David Chu[9]命名,广泛应用于LTE同步和信道测量。它们的优势在于具有恒定的振幅、零环形自相关以及不同序列间非常低的相关性。这种彼此间有限的相关特性在多用户接入环境中尤为重要,允许多个用户同时传输信号。数学上,序列编号的生成方式为

1.png

其中L为序列长度,n为序列索引,q为整数,且k与L互质。与仅由整数1或−1组成的巴克序列不同,Zadoff-Chu序列为复值序列。

2.png

第二个关注序列是Golay互补序列,目前在IEEE 802.11ad中使用。它们同样用于IEEE 802.11ad数据包预同步码中的信道估计与同步。Golay互补序列是具有最小自相关特性的双极性符号序列。因此,其概念与巴克码非常相似。然而,顾名思义,这些序列成互补对,通常表示为Gan和Gbn, n为序列长度。IEEE 802.11ad采用了序列对Ga32、 Ga64和Gb64。 在二进制相移键控(BPSK)中使用这些序列表现卓越,即使在严重的相位旋转下,其自相关仍然很高。Golay序列,尤其是 Ga和Gb序列对的一大优势在于其自相关运算可通过硬件并行处理。这对于旨在实现7 Gbits/s传输速率的802.11ad标准尤为重要[10]。基于最小自相关对及序列并行处理的原理,IEEE 802.11ad中的预同步码能够仅依据其自相关特性向接收机传递信令信息。

    这意味着,依据数据包类型,可以使用相关器组来识别该特定结构,从而将接收机处理路径定向到该类型数据包专用的解码器。

8.3 各部分整合

至此,我们已具备构建能够处理载波偏移、时序不匹配及随机数据包延迟的无线接收机所需的所有关键组成部分。具备所有这些组件之后,现在是时候整体审视系统,并根据系统需求确定组件的配置方案。关于算法安排的讨论将基于前几章节所学内容展开。

    从接收机前端开始,首先需完成两个目标:载波偏移消除与接收信号的时序同步。到目前为止提出的系统,在接收链中首先实现了时序恢复,但这需要使用对相位旋转不敏感的时序误差检测器(TED)。 根据第四章节提供的选项,这将需要采用如Gardner算法或Harris [11]提出的多相位实现技术。可以在时序恢复之前利用第7章节中描述的FFC实现,但系统中可能会残留相位噪声。接收机的结构类似于图8.8。然而,将载波频率偏移置于所有处理之前,甚至匹配滤波之前,是非常有益的,以减少接收链中其他恢复算法的负担。不过,在匹配滤波器之后插入载波频率偏移,可以使载波频率偏移的估计更为准确,因为此时接收信号的信噪比将达到最大。在所有这些情况下,必须考虑权衡。

    在图8.9中,我们概述了一个可能的接收机流程,显示了恢复阶段之间的相对采样率Rn。带虚线轮廓的块,

3.JPG

 匹配滤波器和载波频偏,若发射机采用根升余弦(RRC)滤波器或载波偏移不严重,则可选择不使用。我们特别将载波频偏放置于匹配滤波之前,因为匹配滤波器会限制载波频偏可利用的带宽。关于速率,若Rm≥Rk且m<k,意味着系统下游不会进行上采样或以更高速率运行。总体而言,降采样仅可能在两个阶段发生:匹配滤波和时序恢复。在这两个阶段执行降采样并非必需,但其确有特定益处。例如,在匹配滤波器阶段进行抽取能够实现有效平均,使符号更易辨识。从硬件角度来看,抽取降低了采样率及下游处理的约束,减少了下游环路中高负载运算对时钟速率的要求。在考虑我们的时序恢复算法时,我们已从第6章节了解到,所使用的TED对Rn有特定要求。提供更多的每符号样本数给时序恢复环路也能提升性能。

    如图8.9所示,在载波恢复与帧同步块之间,我们将系统划分为盲域和有条件域,用以明确哪些处理块依赖实际传输数据,哪些基本独立于此。我们可以利用该设计特性,将训练数据引入系统,协助系统在恢复实际数据前使恢复环路收敛至锁定状态。在这种配置中,我们可以在发射机的实际数据之前添加随机位,这些位经过调制和滤波后发送。这些额外的训练数据可以仅附加在每帧的开头,或在数据帧之间连续发送,以保持接收机锁定。这将消除系统中的收敛延迟。在硬件中,我们可以简单地将线性反馈移位寄存器(LFSR)连接到调制器,这是一种方便的随机位生成机制。在MATLAB中,通过comm.PNSequence系统对象来实现此功能。一旦收敛,可能无需持续发送训练数据,避免降低系统吞吐量。

    在使用Pluto软件定义无线电或进行仿真时,向系统引入训练信息非常有用。在此配置中,图8.9中的帧同步块将作为后续处理的入口,只有检测到预同步码或标记时,数据才能通过。

8.3.1 使用 Pluto 软件定义无线电实现完整恢复

    在过去的三个章节中,我们介绍了代码模板并提供了如何利用Pluto软件定义无线电实现相关场景的指导。然而,在考虑完整帧恢复及实际数据解调时,必须加强部分实现细节。由于接收机是包含多种处理组件的复杂系统,实时操作不应作为初始目标。一旦接收机算法正常运行,可根据需要将其扩展为实时操作。因此,在实现时应重点关注代码模板代码5.3、5.4和5.5。若在调用Pluto软件定义无线电的间隙执行处理,如代码5.6所示,极易导致溢出和数据丢失,难以完整恢复数据帧。

    另一个重要工具是Pluto软件定义无线电的transmitRepeat方法,如代码示例5.7所示,该方法可实现数据的确定性连续发送。关于接收机中的这些数据,由于来自发射机的延迟是随机的,因此应始终至少采集2L个样本,其中L是期望帧的长度。将Pluto软件定义无线电的SamplesPerFrame属性设置为2L,将确保在发射机处于重复发射模式时至少接收一个完整数据包。在第4章和第7章中,这并非必要,因为我们可能因溢出而丢失数据,对测试影响甚微。然而,在检查完整帧时,此点尤为重要。以下是代码8.3中的一个简单示例。在此示例中,我们实际对接收机进行多次步进,以清除其IIO缓冲区中可能存留的陈旧数据。

4.png

 在评估完整恢复的帧时,循环冗余校验(CRC)是一种有效工具,可通过二进制值判定数据包是否存在误码。方便的是,MATLAB通信系统工具箱包含一个具备此功能的系统对象,称为comm.CRCGenerator及其对应探测器comm.CRCDetector。它们可以通过代码8.4中的以下方式调用,在两个对象中均使用多项式z3 +1。

    CRC的工作原理是将一个长度为Lc的序列,称为校验和,附加到数据末尾。Lc等于多项式的阶数,即

5.png

以码8.4为例,值为三。该多项式决定如何将位(按位异或)组合以生成校验和。值Lc越大,第一类或第二类误差的概率越低,如8.2.1节所述,但这也取决于与校验和相关的数据长度。实际中,与校验和大小相关的数据长度通常会比Lc大几个数量级。对于我们的帧同步测试,可以利用传输帧中的CRC轻松检查是否恢复了所有传输的位。

6.png

文章来源:威视锐科技