基于半实物仿真的信道编译码性能验证系统

2022-05-12 01:26宿凌超秦明伟姚远程
制造业自动化 2022年4期
关键词:译码器码率交织

宿凌超,雷 茂,秦明伟,姚远程

(1.西南科技大学 信息工程学院,绵阳 621010;2.特殊环境机器人技术四川省重点实验室,绵阳 621010)

0 引言

伴随现代计算机技术、深空远距离卫星通信系统以及数据传输网络的高速发展,数据存储及传输系统追求的目标也愈发提高。

信道编码也称为差错控制编码,被视为现代通信系统的基石,伴随着时间推移,信道编码技术不断跃进,向香农理论极限逼近[1]。信道编码的实质是发送端对原始数据增添部分冗余信息,依靠新增冗余信息与原始数据承载的关联性,接收机可以有效地检测和校正传输过程中随机错误的产生[2,3]。而级联编码的初始定义是由Forney早于20世纪60年代提出的。RS-CC码是以卷积码为内码结合RS外码而构成的级联码,此种级联式信道编码方案性能较为优良,针对于高斯白噪声信道下特别适用,在诸多应用领域被广泛认可并采用。

服务于广播电视领域的主流数字卫星大多使用到DVB-S传输协议,该协议自上世纪末期被制定以来,在世界范围内得到了广泛应用。实际传输过程中卫星信号存在严重衰减,会导致地面接收机产生较高的误码率,采用DVB-S协议中的信道编码具有一定的纠错能力,可以有效提高信息传输的可靠性[8]。

现代工程领域涉及诸多被广泛采纳的仿真技术,在计算机仿真回路中接入实物进行实验被称之为半实物仿真技术,实验结果普遍更加接近实际情况,仿真获取的系统参数对实践进行具有相当价值的指导意义。

1 RS-CC级联编码设计实现

1.1 RS(204,188)编码器设计

RS码是一种多元BCH码,但RS码生成多项式的根和码元符号均来自于伽瓦罗域GF(2m)。DVB标准中外编码采用的是RS(204,188),本质上为其原码RS(255,239)的截断码。此RS码编码后的码字总长度为204 Byte,其中信息字段为188 Byte,16个校验Byte,有效纠错字节能力为t=n-2/k=(204-188)/2=8Byte。故而RS(204,188)编码器的功能是首先对输入端188个信息码字进行编码,随后并入16个监督码元形成204个码字输出。RS码归属为循环码的子类,其编码方式与一般循环码大体相同。编码器的结构如图1所示,通过多项乘法器来实现。图中R0,R1,...R14,R15,均为8位寄存器,它们构成一个8位寄存器链:⊕为GF(28)域上的加法器,⊗为GF(28)域上的乘法器,K1,K2两个控制数据选择器的MUX。该编码器的实质为一个由时钟驱动的8位寄存器及输入来实现编码的除法器。其运行过程为:

图1 RS编码器实现结构

1)初始状态时,R0,R1,...R14,R15,选择器K1和K2均选择下方的输入作为输出;

2)第一阶段,依据时钟沿触发,使m(x)(信息码元)的各系数从高到低依次序输入。这一阶段输出端口将信息元直接输出,同时信息元依次进入多项式乘法器,在第187个节拍后完成得到余数;

3)第二阶段,m(x)输入置零,选择器K1和K2均选择上方的输入作为输出。此情况下,乘法器转换为单纯的移位寄存器,整个编码器的输出即为校验多项式r(x)的各系数。

1.2 交织器设计

卷积交织的实质是按照特定规律将待发送数据拆散,接收端再使之复现原本的顺序。其作用是将连续的干扰离散化,从而避免大量连续的有用数据出现错误。DVB-S标准是依据Forney提出的构造法展开卷积交织操作,交织器输入端设计为I路通道,I被称为交织深度,数值选取为12,M定义为单元深度,取值为17,而N=M×I=204为交织器的约束长度或宽度。普遍情况下,N的值应该与分组码码字长度对等或者为码字长度的整数倍。卷积交织实现结构如图2所示。I路分支接收到RS编码器输出的数据后,每路通道的输出会呈现出不同一的时延,根据理论推导第1条支路不存在明显时延,通道2的数据需要历时M个周期后输出...第i条通道时延M×(i-1)个周期后输出。

图2 卷积交织实现框图

1.3 删余CC编码器设计

1.3.1 卷积编码器设计

收缩卷积编码(2,1,7)是DVB标准采纳的内编码,可以纠正传输中的零星、随机错误,(2,1,7)卷积码编码器的特点是;输入数据位宽为1bit,输出数据位宽为2bit,卷积码约束长度L=7,(2,1,7)卷积编码结构如图3所示。其编码结构相对简单,依据结构框图阐述其详细的编码方式。

钻井液方面标准化建设工作走上了稳步发展之路,近几年来,一大批钻井液方面的行业标准制订并颁布执行,对钻井工程专业产生了积极而深远的影响。通过宣传、贯彻、执行标准,规范了钻井液技术行为,推动了我国钻井液处理剂市场的健康发展以及钻井整体技术工艺水平的提高。

图3 (2,1,7)卷积编码结构图

如图3所示,卷积编码器的输出序列为并行输出,分别用X,Y表示,其生成多项式可以表示为:

简单表示为:G1(x)=1111001=(171)8,G2(x)=1111001=(171)8。该卷积编码器涵盖m个移位寄存器,即m=6,存在的有效状态数为2m=64。2m=64涉及的所有状态表示为S0,S1,S2…S63,Si=i是十进制表示方法,Si=b1b2b3b4b5b6是二进制表示方法,(bi=0或1)。对于任意两个状态,状态间转换关系不是一成不变的。假设当前的编码状态为Si=b1b2b3b4b5b6,若输入信息元b0。后转化为状态Sj=b1b2b3b4b5,i与j的关系为:

1.3.2 删余卷积码设计

对于实时数据的编码效率以及传输速率的要求愈来愈高,在本DVB-S协议通信系统中引入收缩卷积编码的处理方式,在一定程度上可以有效解决这些问题。

卷积编码器输出端的并行数据序列分别为X和Y,删余模块执行截短删余操作,接收编码器输出的两路数据以及数据有效信号,具体存在1/2,2/3,4/5,5/6,7/8五种删余模式,详细表述如表1所示。

表1 不同码率对应的删余模式和发送序列

2 RS-CC级联译码设计实现

2.1 基于RiBM算法的RS译码器设计

RS译码器的首要目标旨在确定错误发生点所在的数据包,一般情况下满足e≤t,译码器对于发生错误的码字展开误码纠错;若e>t,表明译码算法的理论纠错能力已不能应对实际误码情况,继续进行纠错会导致更多错误信息产生。多数情况下,编译码能够正确纠正错误信息的前提是e≤t,例如RS(204,188)中,t=n-k/2=(204-188)/2=8Byte,如果实际传输过程中,高斯信道中出现差错字节数超过8,RS译码器会放弃译码操作。对于RS译码流程,目前已流传出许多可实现算法,最为广泛采用的是RiBM算法和Euclid算法。RS译码器实现架构如图4所示,译码器采用了四级流水线的操作来提高译码速度。RS译码器包含:伴随式计算模块、关键方程求解模块、钱搜索模块、Forney算法模块、FIFO模块和译码失败知识模块六个部分组成。

图4 RS解码器实现结构

2.2 解交织器实现

基于实现交织器的基本思路构想,卷积解交织可以视为交织的逆反过程,两者的大体结构基本一致。其原理如图5所示。延迟分支通道共计为I条,输入端数据在标记为i通道中产生的时延大致为M×(12-i)个周期,依此操作进行有序处理便可以获取交织前数据的正常顺序。

图5 解交织原理图

采用倒序排列的处理方式对于多路通道进行操作,与前文介绍交织器相类比,解交织器中1号支路将与交织器第12通道(末尾的支路)的延迟量相等同,时延为M×11,即解交织器中标定序号为i的通道与卷积交织器第13-i通道时延一样。

2.3 Viterbi译码器设计

Viterbi译码作为卷积解码算法的一种,它将编码过程同码的网格图中一条路径对应,找出一条与接受序列距离最小者作为发送数据。譬如当序列长度为L,网格中有2L种不同路径与2L种编码器输入相对应,比较网格中2L条路径和接受序列的汉明距离,在每个状态下,比较两条路径之间的间距,间距最小的一条保留作为幸存路径,这样,就只剩下一半的路径,就行考察后面的比特位,得出总的汉明间距最小的路径作为发送序列。Viterbi译码器实现结构如图6所示,具体实现流程描述如下:

图6 Viterbi译码器实现结构

1)接收码按收缩卷积码以M个为一组进行分组,计算分支度量(采用欧式距离),如果分支度量太大则需进行重新分组,此次分组只需进行移位操作,最多只需要移动M-1次,译码算法中采用3比特软判决方式。

2)按照收缩卷积码删除规律,在删除处用符号“#”补齐,以收缩率为3/4的卷积码为例,译码器以4bit码元为一组进行分组,以便恢复到1/2码率,及爱的那发端序列为0010,1000,0110,加入“#”后的序列变成:00#10#,10#00#,01#11#,“#”不参与分支度量计算。

3)计算5到10个约束长度,获得最佳路径。

4)最佳路径被正确获取后,回溯获得编码比特值,深度35~70(本例取48)

2.4 解删余模块设计

系统发送端卷积编码器输出结果需要删余部分比特信息,接收端卷积译码器输出必须将码率恢复到1/2,为使码率到达需求值,解删余操作必不可少,具体处理措施为在前端被删余位置处进行补0。如果卷积编码后的码率已经为1/2,补0操作可以直接省略。当编码码率大于1/2,执行必要的补0操作使码率得以规复。此时补0操作会触发相应的标志信号给予译码器,译码器收到提示所输入信息不执行欧几里得度量的计算,仅是实现占位,若进行了补0操作,需要给出标志信息位。

3 系统测试与误差分析

3.1 系统测试流程与耗时统计

系统测试采用计算机主板和FPGA开发板级联,两板之间通信采用PCI-E2.0高速传输协议,测试结果使用C#编写的软件显示。

系统中包含两条通信链路:

1)上位机将信息比特数据、噪声数据和配置参数发送到FPGA,并且将信息比特数据和噪声数据存储到DDR3A中;

2)FPGA将DDR3A中的数据完成编码等操作并存储到DDR3B中,在实验结束后上传到上位机进行性能分析和误码率统计。通过单次、多次实验下发1种、8种数据对系统整体耗时进行了测试,实验结果如表2所示。从测试结果中可以看出,本系统单次1种数据耗时仅10秒,而通过MATLAB仿真却需要近20分钟。

表2 测试所需时长统计

3.2 误差分析

测试结果与基于DVB-S协议的级联码MATLAB仿真系统运算结果进行对比,从而分析其性能误差,从而验证所设计的系统的可靠性。

通过仿真系统多次实验,下发不同信噪比的噪声数据以及不同的码率下所统计得到的误码率性能与相同信噪比下MATLAB仿真系统得到的性能对比,绘制对比曲线图。

图7为系统级联码RS(204,188)+CC(2,1,7)及其2/3、3/4、5/6、7/8删余下的级联码在-7:7dB下的性能与MATLAB仿真性能对比,系统支持调制方式为QPSK,实测表明该级联编译码半实物仿真测试系统的性能较为良好,在信噪比为3dB时,误码率为10-6,与MATLAB内置工具Simulink所搭建的通信模型性能基本一致,部分信噪比下半实物仿真结果优于MATLAB。总体偏差控制在0.5dB内。

图7 MATLAB与FPGA级联算法误码率对比曲线图

4 结语

系统基于半实物仿真技术实现了DVB-S协议的信道编译码算法性能验证,依据DVB-S标准,完成了级联编译码涉及的上位机软件代码,以及所有下位机模块的代码编写、仿真验证,最终在XC7VX690T芯片上实现了级联编码器的板级性能测试。

级联测试表明:系统的级联信道编解码器能正确地运行操作,对数据处理速度快、实时性好,其编译码性能与按照DVB-S协议所规建的Simulink仿真模型的误码率性能大体相同,可靠性好,可以实现对信息数据在AWGN信道中完成信道编译码的整个过程处理的实时分析,实现了系统设计的预期功能。

信道编译码对提高通信系统性能具有重要意义,编译码技术在通信系统有广阔的前景,通过此系统,可以降低研究人员对此的仿真所需时间,有助于研究人员对信道编译码的研究工作,可用于对基于DVB-S协议的信道编译码性能分析验证。并且此系统开发方式灵活,设计采用模块化设计,可实现后续算法的扩展升级。

猜你喜欢
译码器码率交织
基于缓存补偿的视频码率自适应算法
“新”与“旧”的交织 碰撞出的魅力“夜上海”
移动视频源m3u8多码率节目源终端自动适配技术
一种基于HEVC 和AVC 改进的码率控制算法
交织冷暖
基于状态机的视频码率自适应算法
编码器和译码器综合实现数字显示
跟踪导练(一)5
数字电路环境下汽车控制电路信号设计
奥运梦与中国梦交织延展