APP下载

基于ZYNQ的编译码通用高斯测试平台设计

2023-03-07郭梦琪

无线电工程 2023年2期
关键词:均匀分布误码率高斯

吴 丹,郭梦琪,2

(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081;2.通信网信息传输与分发技术重点实验室,河北 石家庄 050081)

0 引言

在硬件开发实现工作中,完成编译码模块开发实现后需要对其性能进行测试,以验证实现工作的正确性。如果搭建实验平台进行测试,需要使用收发2套设备,并且需要利用衰减器或信道模拟器调节信噪比,测试流程复杂且耗时较长。本文基于Xilinx公司推出的ZYNQ-7000系列芯片,开发了一套编译码通用测试平台,仅需要一个ZYNQ系列开发板即可对所实现的编译码模块性能进行快速测试。

ZYNQ集成了ARM Crotex-A9处理器和FPGA,将二者的功能整合到一块板卡上,为小型化、灵活性和可扩展性提供了解决方案[1-2]。在设计过程中,将需要进行高速运算的编译码模块和噪声产生模块放置于FPGA上实现,将信噪比配置、误码率计算和运算控制等涉及到需要灵活修改和控制的功能放置于ARM上实现,使得2部分各自发挥最佳用途。

为了应对5G标准对高速率、低延时的要求,低密度奇偶校验(Low-Density Parity Check,LDPC)码从众多信道编码方案中脱颖而出,于2016年10月进入5G标准,成为数据信道编码方案[3]。测试平台所使用的被测码字即为5G NR标准下的LDPC码。LDPC码性能接近于香农极限[4],其误码平层低、译码复杂度低、适合并行译码、支持高吞吐量传输[5-9]。高斯白噪声的产生为测试平台设计的重点。首先由Mersenne Twister算法产生均匀分布的随机数,Mersenne Twister算法产生的随机数具有随机性好、速度快和周期长的特点[10];然后由Box Muller算法从均匀分布随机数生成高斯分布随机数[11],从而产生高斯白噪声。

本文通过所设计的测试平台实现数据处理全部流程后,计算得到的误码率结果与Matlab浮点理论仿真结果仅有0.2 dB的差距,验证了该测试平台的正确性和可靠性。同时,该测试平台具有通用性和可扩展性,可以将编译码模块替换成任意设计的编译码方案,甚至可以替换为期待测试的调制解调方案,对硬件实现的信道编码模块甚至调制解调模块的快速性能测试具有重要意义。

1 测试平台架构

测试平台数据传输架构如图1所示。ZYNQ主要由FPGA处理器和ARM处理器组成。FPGA处理器简称可编程逻辑(Programmable Logic,PL)侧,ARM处理器简称处理器系统(Processing System,PS)侧。PL侧更适合实现高速逻辑运算,PS可以对PL的运算流程进行控制,并对运算完成的数据进行处理。PL和PS之间通过AXI接口实现高带宽、低延迟的连接[12]。

图1 ZYNQ测试平台数据传输架构Fig.1 Data transmission architecture based on ZYNQ test platform

在本文设计的编译码测试平台中,PS和PL之间传输的数据主要为信噪比和错误数,通过BRAM控制器完成。PS向PL设置本次测试的信噪比,PL运算完成后返回错误比特数,在PS进行误码率计算。数据处理的详细流程如图2所示。首先在PL侧生成随机比特,比特数为LDPC码的信息位长度,然后进行LDPC编码以及星座映射。根据PS传来的信噪比计算噪声方差,生成I/Q两路不同的高斯白噪声,将高斯白噪声添加至星座映射后的符号上。接下来,在接收端进行星座解映射、LDPC译码和错误比特数计算。最终将得到的错误比特数返回PS,并产生中断信号。PS端收到中断后得知该帧运算完成,读取错误比特数并计算误码率。

图2 ZYNQ测试平台数据处理流程Fig.2 Data processing flow based on ZYNQ test platform

2 设计原理

2.1 5G NR-LDPC码

本文测试的LDPC码为5G NR标准下的LDPC码,该LDPC码是准循环LDPC码,其校验矩阵可以通过基矩阵表示[13-14]。例如,对于校验矩阵H,将其分割成6个尺寸为Z×Z子矩阵,Z称为扩展因子,在此示例中Z=3。

(1)

H中的每个子矩阵都具有准循环特性,零矩阵用-1表示,单位矩阵用0表示,其他正整数表示单位矩阵循环右移的数目,通过此方法可以得到基矩阵:

(2)

5G NR标准下规定了2种基矩阵形式,如表1所示,基矩阵1为46行28列,最低码率为1/3,基矩阵2为42行52列,最低码率为1/5。基矩阵由系统列和校验列组成,基矩阵1的系统位列数kb为22,基矩阵2相对更适合更短码长及更低码率,其系统位列数kb根据实际的信息位长度可以选择10,9,8,6。

表1 5G NR标准下2种基矩阵参数Tab.1 Parameters of BG1 and BG2 in 5G NR standard

根据以上设计原则,5G NR-LDPC码的信息位长度与系统位列数kb和扩展因子Z相关,其数值为二者的乘积。扩展因子Z的取值如表2所示。

表2 5G NR标准下扩展因子Z取值Tab.2 Expansion factor Z in 5G NR standard

Z=a×2j,

(3)

式中,a和j分别有8种不同取值,对应得到扩展因子Z的51种不同取值。

5G NR-LDPC码的码块长度和码率灵活可变,可以通过信息位缩短和校验位打孔实现。编码后得到的信息比特和校验比特如图3所示,前2列信息比特由于高列重必须被打孔,信息比特的末端可以通过填0进行缩短,校验比特的末端可以被打掉,实现码率的灵活变化。

图3 5G NR-LDPC码缩短与打孔示意Fig.3 Illustration of 5G NR-LDPC code word shortening and puncturing

2.2 高斯白噪声产生

高斯白噪声的产生为测试平台的重点。产生高斯白噪声分为2步:第1步为生成[0, 1]均匀分布的随机数,第2步为由均匀分布的随机数产生高斯分布的随机数。均匀分布的随机数由Mersenne Twister算法产生。

2.2.1 随机数产生原理

Mersenne Twister算法由Matsurnoto等[10]于1998年提出。若生成数据位宽为w,那么Mersenne Twister算法可以生成0~2w-1的整数,将所生成的数据除以2w-1后,可生成[0,1]区间内均匀分布的随机数。在本测试平台中实现的Mersenne Twister算法位宽为64。Mersenne Twister算法基于以下递推公式实现:

(4)

为了提高运算速度,矩阵A取为:

(5)

那么计算xA相当于移位运算:

(6)

式中,a=(aw-1,aw-2,…,a0);x=(xw-1,xw-2,…,x0)。于是,递推式(4)可以通过比特移位、按位与、按位或、按位异或操作得到。生成随机数的步骤如下[10]:

a←aw-1aw-2…a0(矩阵A的最后一行);

①i←0;x[0],x[1],…,x[n-1](任意非0初始值);

③x[i]←x[(i+m)modn] XOR(y≫1)

(与矩阵A相乘);

④ 与调和矩阵相乘,提升统计特性[15]:

y←x[i]

y←yXOR(y≫u)

y←yXOR((y≪s)ANDb)

y←yXOR((y≪t)ANDc)

y←yXOR(y≫l)

输出y;

⑤i←(i+1)modn;

⑥ 返回第②步。

其中,u,s,t,l,b,c为调和参数;AND,OR,XOR,≪,≫为按位操作运算。

2.2.2 随机数的检验

为了测试根据Mersenne Twister算法进行Verilog实现所生成的随机数是否满足均匀分布的统计特性,需要对产生的随机数进行检验。随机数统计特性的检验一般包括参数检验、均匀性检验和独立性检验[16]。

参数检验是指生成随机序列的均值、方差、二阶矩与理论值是否有显著的差异。通过Modelsim软件采集生成样本200 000个,计算得到均值为:

(7)

二阶矩为:

(8)

方差为:

(9)

对于[0,1]均匀分布的随机变量,其均值、二阶矩和方差的理论值分别为:1/2,1/3和1/12,则统计检验量:

(10)

(11)

(12)

给定显著水平参数α=0.05,查找标准正态数值表得到λ:P{|ui|>λ}=α,当|u1|≤1.960时,生成的随机序列通过均值检验;当|u2|≤1.960时,生成的随机序列通过二阶矩检验;当|u3|≤1.960时,生成的随机序列通过方差检验[17]。

均匀性检验是检测生成的随机序列是否均匀地分布于[0,1]。采用卡方检验方法,将[0,1]区间分为m个小区间,总样本数为n,Ri落入第k个小区间的数目为nk,Ri落入每个小区间的概率为1/m,则第k个小区间的理论频数为:

(13)

统计量为:

(14)

取m=500,根据式(14)计算得到V=506.445。给定显著水平参数α=0.05,当|V|≤551.950时[18],生成的随机序列通过卡方检验。

独立性检验是检验序列中随机数之间是否具有相关性。如果2个随机变量独立,那么它们的相关系数为0。相关性检验计算前后相距为k的样本的相关系数ρk为:

(15)

统计量为:

(16)

取k=15,根据式(15)~(16)计算得到W=0.564 68。给定显著水平参数α=0.05,当|W|≤1.960时[17],生成的随机序列通过相关系数检验。

综上所述,通过Verilog实现生成的随机序列通过了参数检验、均匀性检验和独立性检验,满足[0,1]均匀分布的统计特性。MT算法产生随机数的随机性好、速度快,周期长达219 937-1,适合用于高斯白噪声的生成。

2.2.3 均匀分布生成高斯分布

采用Mersenne Twister算法生成均匀分布的随机数后,可以通过Box Muller算法将其转换为高斯分布的随机数。令M为[0,1]均匀分布的随机变量:

(17)

式中,σ2为方差。N为另一个[0,1]均匀分布的随机变量,定义Θ=2πN。于是,可以得到2个相互独立的高斯分布随机变量[11]:

C=PcosΘ,

(18)

D=PsinΘ,

(19)

通过上述方法即可生成均值为0,方差为σ2的高斯白噪声,其统计特性如图4所示。

图4 高斯分布统计特性Fig.4 Statistical characteristics of Gaussian distribution

3 结果分析

本文通过2个不同码率的LDPC码验证该测试平台的正确性。第1个LDPC码采用基矩阵2,系统位列数kb=10,扩展因子Z=144,信息位和校验位均为1 376,码率为1/2。第2个LDPC码码率更高,采用基矩阵1,系统位列数kb=22,扩展因子Z=384,信息位为8 448,校验位为1 536,码率为22/26。译码算法采用归一化最小和算法,归一化因子为0.75。在ZYNQ测试平台实现了如图2所示的编译码及添加高斯白噪声全部流程,芯片型号为XC7Z100。该测试平台硬件板卡图如图5所示。

图5 编译码通用测试平台硬件板卡图Fig.5 Hardware board of the universal encoding and decoding test platform

资源占用如表3所示,其中查找表的资源占用率最高,主要为编译码所占用。

表3 LDPC码测试平台资源占用Tab.3 Resource usage of LDPC test platform

图6和图7展示了测试平台的实测误码率与Matlab仿真得到的理论误码率。Matlab仿真默认采用Mersenne Twister算法生成高斯白噪声。在Matlab仿真中采用全浮点运算,测试平台中Verilog实现代码为定点运算。从对比结果可以看出,采用QPSK调制或16QAM调制,测试平台实测值与Matlab理论仿真值仅有0.2 dB的差距,验证了该测试平台的正确性和可靠性。

图6 误码率性能对比(QPSK)Fig.6 Comparison of BER performance (QPSK)

图7 误码率性能对比(16QAM)Fig.7 Comparison of BER performance (16QAM)

4 结束语

本文基于ZYNQ实现了一套编译码通用测试平台,该平台可以对不同的编译码方案进行测试,并且可以对信噪比和调制方式进行修改,具有灵活性和通用性。测试的码字为5G NR标准中的LDPC码,高斯白噪声通过Mersenne Twister算法结合Box Muller算法产生,所实现的Mersenne Twister算法可以通过随机数检验。经过XC7Z100测试平台实现数据处理全部流程后,资源占用率在50%以下,得到的误码率结果与Matlab浮点理论仿真结果仅有0.2 dB的差距。此实例验证了该测试平台的正确性和可靠性。

猜你喜欢

均匀分布误码率高斯
面向通信系统的误码率计算方法
接触压力非均匀分布下弯曲孔道摩阻损失分析
数学王子高斯
一种快速同步统计高阶调制下PN 码误码率的方法∗
天才数学家——高斯
电磁感应综合应用检测题
可逆随机数生成器的设计
尼龙纤维分布情况对砂浆性能的影响研究
UWB多径信道调制方式的误码率分析
从自卑到自信 瑞恩·高斯林