超远通信中的自适应编码调制技术应用

2020-02-19 17:52郝向新张星海孙建军
数字通信世界 2020年1期
关键词:译码计数器校验

郝向新,张星海,王 懿,孙建军

(内蒙古电力(集团)有限责任公司鄂尔多斯电业局,鄂尔多斯 014399)

1 ACM通用功能

超远距离通信需要传输很远的距离需要支持自适应编码和调制,可以基于链路状态实时改变编码速率和调制方式。这个特性极大地提高了有效载荷能力和链路利用率。当链路的SNR很高,例如天气比较好时,可以将所有的应用都打开,链路进行满负荷的运作。如果链路的SNR下降得比较厉害,例如下大雨,链路的载荷能力和利用率就会降低。

图1 信道容量改变

我们的远距离无线支持8个不同的MCS,MCS索引(由0至8)由上至下排列每一个MCS包含有许多的特性,包括星座映射,编码速率,激活的分支,每一个分支的带宽分配等。系统根据均衡后的符号的MSE值及纠错码的误块率(BLER),判定采用何种编码及调制方式,并自动调节两端通信节点的编码及调制方式,使系统获得较高的频带利用率和信息传输速率。

2 切换需要统计的指标

描述收端ACM控制单元判断切换条件需要使用的指标。

2.1 MSE

(1)均衡后一帧数据的全部数据符号都参与计算的MSE的统计。

(2)只有均衡后一帧数据的前导头符号、控制信令符号及导频符号参与MSE的统计(PMSE)。

(3)上述两种MSE计算出来后,取PMSE和MSE中较大值作为ACM模块输入,拥有ACM切换。为简便,将“MSE或PMSE中较大值”称为MSE。

(4)MSE的变化速率定义为当前帧和前一帧的MSE的比值。MSE的变化速率计算可以按照当前帧的MSE和上一帧的MSE乘上某个门限来比较。

2.2 BLE

BLE(block error)是指线性分组码根据自身的校验仿真计算出来的,指示该编码块在一定范围内是否正确的一个标记。包含LDPC译码前BLE,LDPC译码后BLE。

(1)LDPC译码前的BLE,记为LDPC_BLE_BD。LDPC译码器在更新接收到的一个码块的LLR之前,根据接收LLR的符号值,进行校验计算,当的校验方程sum(H*c)大于等于设定的门限值(门限值配置为0),说明码块出错(需要统计WLB帧内的BLE数值:译码前的BLE统计需体现对信道长期稳定性进行统计,因此,建议WLB尽量大一些)。WLB建议配置为1~65536帧。

(2)LDPC译码后的BLE,记为LDPC_BLE_AD。LDPC译码器通过译码过程,更新完一个码块的LLR之后,根据更新后的LLR的符号值,进行校验计算,码后LDPC码块的校验方程sum(H*c)大于等于设定的门限值,说明码块出错(需要统计WLA帧内的BLER数值:译码后的BLER统计需体现对信道变化的快速响应,因此,建议不超过10)。WLA软件可配,为了硬件实现的简便,WLA可配置为1帧2帧4帧8帧可选。

3 切换方式

系统能够根据ACM控制单元发出的切换指示自动进行切换,并且约定ACM控制单元可以发出的切换指示类型,以及手动切换功能的描述。

3.1 上切

上切,为了保证切换无误码,上切的准则是:要保证在信道足够好时才向上切换。切换时需谨慎一些。上切的方式只能是逐级切换,上切的依据可以配置成下面两种中一种:一是只根据MSE值;二是同时根据“MSE值及译码后的BLE及译码前的BLE”。

(1)译码后必须无误码,即BLE_AD=0;译码前的误块率要小于一个门限,即BLE_BD<A,表示在一个WLA统计窗之内,错误要低于A个码块才能保证信号质量足够好,这时才启动上切机制;A的位宽为16。

(2)为了保证切换无误码,发射端需要收到对端的连续K个“上切”请求,才能上切。K可软件配置,K值建议在1~16范围。位宽4比特。

3.2 下切

下切,为了保证切换无误码,下切的准则是:需要快速响应,并且防患于未然。下切支持逐级下切也支持一步切到最低MCS的切换。

3.2.1 逐级下切

逐级切换:依据可以配置成下面两种中一种:一是只根据MSE值;二是根据MSE值或者译码后的BLE。(这里译码后BLE是“一帧内的BLE”,一帧中只要有码块出错就下切一级)。

3.2.2 一步切到最低MCS

一步切到最低MCS可以配置成下面两种中一种:一是根据MSE的速率,当MSE变化速率(这里是指变差的速率,MSE越大表示链路质量越差)大于一个门限值。二是只根据译码后的BLE(译码后的BLE_AD>B,B可软件配置(16bits),表示在一个WLB统计窗之内,错误高于B个码块说明信道质量已经足够差,此时需要一步切到最低MCS)。

最低MCS是一个可配置的MCS,并不一定配置为MCS0,在存在训练帧模式下,可以配置为MCS1。

4 ACM控制流程

本章主要描述在收端如何根据相关检测条件发送出切换指示,以及发端的切换流程。

4.1 收端主控制流程

图2 收端ACM主控制流程

收端系统首先检测目前是否满足ACM开启的条件,在达到ACM开启的条件之后,首先是T1帧的保护时间是不能进行切换的;T1帧时间过后,进行ACM切换判断和切换时间保护操作,其中切换时间保护操作主要针对是上切切换时间保护,和保护模式整体切换时间保护;然后系统等待MCS改变,则认为一次切换指示完成;同时为了仿真某次切换指示未被发端收到,而设置保护帧,计数至T2帧本次切换仍没有完成后认为对端发端未收到切换指示,则再次进行ACM切换判断。其他说明如下:

(1)N_ACM_on_p该参数表示在ACM启动之后,要进行T1帧时间保护,T1可配置范围是0~255帧。参考配置为约20ms左右的时间。

(2)所有计数器清0操作,所有的计数器包含这里的N_ACM_on_p开启保护时间计数器、Nsp未收到切换指示保护时间计数器、Ndc下切保护时间计数器、MCS_uk连续上切请求计数器、Nuc上切保护时间计数器等。当切换指示不为00的时候,在等待MCS响应之前,各计数器累加功能均不工作。

(3)图2中判断条件满足ACM开启、ACM_On判断条件是相同的。

(4)该流程图中的每个判断都要每一帧进行一次,帧指示可以由帧同步给出。保护模式下,默认由工作板的帧同步指示给出,如果工作板断链则有保护板的帧同步指示给出。

(5)当收端检测切换请求在预设的帧数T2之后仍然没有得到响应,则进行下一次切换判断。T2可以配置为1~4095帧等,建议配置为16帧。该时间是防止某次切换请求未被对端接收到,从而对端发送端一直认为无切换请求。

图3 ACM开启条件判断

4.2 满足ACM开启条件

系统的ACM开启考虑保护模式以及训练帧模式。在保护模式下,总体原则是有一块单板的给出开启指示则认为系统开启;无论是训练帧模式下的建链还是非训练帧模式下的建链都认为系统建链,开启ACM模块。

交互过程结构如下:

图4 AMC Change Path

按照图4所示步骤分解为:

(1)对于B节点而言,在每次发送新的帧数据之前,判断AMC引擎的输出是否需要切换MCS,AMC引擎每隔20ms打开一次,决定切换到相应的next profile(软件可对其进行配置)。

(2)如果需要切换,则在新的数据帧中添加相应的改变MCS(CHN_REP)信息;否则不予理会。然后关掉AMC引擎。

(3)B节点的ctrl_gen发送携带相应的改变MCS(CHN_REP)消息的数据帧;

(4)当A节点的de_frm收到CHN_REP消息后,将CHN_REP消息中的预通知MCS(preferred MCS)传送给发送方向的ctrl_gen。

(5)A节点的ctrl_gen模块发现得到的新的MCS与本地MCS不匹配,则启动本地计数器来计数帧数目;当ctrl_gen模块看到来自FPGA的新的MAC帧头(sync信号),则把接受到的MCS送给FPGA,此时FPGA发现来自Modem的MCS与本地不相同,也启动计数器来技术帧数目。预通知的帧数目是在上电时已经配置。当Modem中ctrl_gen模块中计数到帧数目时,在发送的帧上会携带AMC_CFG消息告诉B节点:下个物理帧会改变被要求的MCS。而FPGA的计数器会比Modem计数器晚一帧,故当FPGA计数到帧数目时,直接改变为新的MCS方式即可。

(6)B节点的解帧模块(de_frm)解析出此AMC_CFG消息后,通知同步模块将要在下一帧切换成的swithched MCS,同步模块根据此消息在下一帧标记导频的位置。同时,de_frm也会通知FPGA,方法是:将写入FIFO的数据扩充1bit,表示下一帧的MCS,de_frm将AMC串行写入这一bit,按照bit0-bit3的顺序,在SUF后的若干字节开始写,持续有效四个字节。

AMC切换流程:

图5 Frame Consume

B_tx和A_tx分别为A、B两端的发送端;AMC引擎每隔20ms打开一次检测是否切换MCS;Modem_cnt和FPGA_cnt分别为Modem和FPGA本地的预通知帧数目计数器。

设定在B节点发送第二帧之前打开AMC引擎发现需要切换MCS,则通过发送端通知A节点切换。

5 结束语

我们在超远距离通信中使用ACM技术实现了从64QAMBPSK等8种调制方式的切换,使得重要的业务得也在天气变化的过程中得到更好的传输保障。

猜你喜欢
译码计数器校验
极化码自适应信道译码算法
使用Excel朗读功能校验工作表中的数据
采用虚拟计数器的电子式膜式燃气表
基于扩大候选码元范围的非二元LDPC加权迭代硬可靠度译码算法
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
基于Multisim10.1的任意进制计数器的设计与实现
电子式互感器校验方式研究
SR620型与53230A型计数器的性能测试
算盘是个“小气鬼”