基于FPGA的8PSK软解调的研究与实现
扫描二维码
随时随地手机看文章
摘 要:先分析了8PSK 的软解调原理,针对最优的对数似然比(LLR)运算复杂度较高的特点,选用了相对简化的最大值(MAX)算法作为可编程逻辑门阵列(FGPA)硬件平台实现方案。随后,通过QUARTUS II 仿真平台对8PSK 软解调器进行了硬件描述语言(VHDL)的设计实现和功能仿真,并通过与LDPC 译码模块级联在Altera 公司的STratix II 系列FPGA 芯片上完成最终测试。通过与MATLAB 仿真结果进行比较,验证上述简化8PSK 软解调器设计的正确性和可行性。
0 引言
随着卫星通信服务业的发展,人们对服务质量的要求越来越高。2003 年,卫星数字视频广播(DVB-S2)系统采用了高效的低密度奇偶校验码(LDPC),提高了大约30%的带宽效率。众所周知,卫星通信系统中常用LDPC 与BCH 级联的前向纠错编码来获得较高的性能,为了达到这种性能要求,接收信号在解调部分需要使用软解调,因此在高阶调制系统(例如8PSK)中,需要一种合适的,简单易实现的软解调技术来对接收信号进行解映射。在传统的无线通信系统设计中,对数似然比(LLR)算法作为性能最优算法常被用于软判决技术中,然而由于该算法的复杂度过高,涉及到多次对数与指数运算,不适合于硬件实现,因此,很多简化软判算法相继出现。其中最大值(MAX)算法在LLR 算法的基础上简化了指数和对数运算,其硬件实现复杂度与LLR 相比大大降低,同时相比LLR 算法性能损失较小。因此,在通信系统硬件设计中,通常选用MAX 算法作为一种合适的软解调算法对接收信号进行软解调。
这里首先分析了8PSK 软解调算法的复杂度以及MAX算法的基本原理,并在Altera 公司的Stratix II 系列FPGA芯片上实现了此软解调硬件模块,同时与LDPC 译码模块进行了联合验证。通过软硬件验证和分析表明,此设计在运算复杂度、吞吐量、最终误码性能上取得很好的折中。
1 8PSK 软解调原理
8PSK 的调制星座图如图1 所示,每个符号代表三个比特, 式(1)表示经过高斯白噪声信道后接收信号的概率密度函数,式(2)描述了星座图上每个星座点的值,Si 代表该星座图上1 到8 个星座点。
图1 8PSK 调制星座
其中σ 是高斯白噪声信道的标准差。利用LLR 算法,软判决如式(3)所示,其中分子上的各项表示此比特为0的概率之和,分母各项表示此比特为1 的概率之和。
从式(2)和式(3)可以看出,每计算一比特的LLR,都需要平方、指数和对数运算,因此LLR 算法具有较高的运算复杂度和较大的资源开销,尤其是硬件实现指数、对数复杂度高,所以LLR 算法不适合FPGA 实现。而最大值(MAX)算法能有效避免计算每比特对数似然值的指数和对数运算,其原理如式(4)所示。
由式(3)和式(4)可知,简化以后的MAX 算法如下式(5)所示,对于式(3)和式(5)可知,LLR 算法在硬件上很难实现指数和对数运算,而MAX 算法只需要简单的加减运算和少数乘法运算,易于工程硬件实现,因此选取MAX 算法作为硬件实现的最终方案。
2 算法性能分析
通过MATLAB 仿真平台,做了如下性能仿真对比分析。
由MATLAB 产生一组随机序列,长度为10 万个编码块,每个编码块为4 032 bit,再经过码率为1/2 的LDPC 编码模块,通过对应的8PSK 调制,在Eb/N0 为4 dB 到7 dB 的区间内,分别经过LLR 最优算法、浮点MAX 算法、定点MAX 算法算出对数似然比,最后分别经过LDPC 译码模块,得出误码性能。
表1 是通过MATLAB 仿真平台计算出来的每个Eb/N0所对应的误码率,图2 是与之相对应的误码率曲线图。由图2 可知,对于Eb/N0 测试区间为4 dB 到7 dB 的任意一个测试点,LLR 最优算法的误码率总比定点MAX 算法和浮点MAX 算法要小,其中浮点MAX 算法误码性能居中,定点MAX 算法最差。MAX 算法是通过降低误码性能来换取运算复杂度的降低,其误码性能要比LLR 最优算法差。与浮点MAX 算法相比,定点MAX 算法对输入软解调模块的I、Q两路信号和输出的似然比分别进行了截位和限幅,如图2 所示,定点MAX 算法相对于浮点MAX 算法损失了一定的误码性能。由表可知,定点MAX 算法在Eb/N0 为6.64 dB 时,其误码率为6.5125×10-8,验证了该定点方案能够满足系统设计要求。
表 1 MATLAB 误码率仿真表
图2 MATLAB 误码率仿真
3 MAX 算法硬件实现
由于硬件实现都是定点运算,所以MAX 算法的实现是针对定点的MAX 算法进行硬件设计的。硬件仿真流图如图3 所示,首先利用MATLAB 产生随机序列,假设每一编码块为4032 bit,LDPC 编码效率为1/2 码率,则经过LDPC 编码后,每一编码块为8 064 bit,经8PSK 调制成符号后,每一个编码块被调制成2 688 个符号,实部虚部分为I、Q 两路,再叠加信噪比为SNR 的高斯白噪声,最后把数据文件存储在RAM 中。在硬件实现上,定点MAX 软解调模块以一定速率从RAM 读取数据并进行软解调,软解调输出的对数似然比存储在乒乓RAM 中,每存满一个编码块就向LDPC 译码器发出一个读有效信号,LDPC 译码器在接收到该有效信号的下一个时钟周期就开始以一定速率读取整个编码块的对数似然值,接着开始进行LDPC 译码,最后以一定速率输出最终的译码结果。
图3 硬件设计仿真
4 硬件设计结果分析
验证一个软解调模块性能的好坏,需要级联译码模块进行仿真综合验证。在硬件设计中,通过在Stratix II FPGA 硬件平台上级联MAX 定点算法模块与LDPC 译码算法模块,然后进行综合布线,最后下载到硬件平台进行测试。
将仿真通过的工程文件使用Chipscope 添加观察采样信号,触发信号和待观察信号后重新综合、布局布线生成bit文件,下载到目标板后用Chipscope 进行在线测试,通过将输出结果与输入比特流进行比较,验证设计正确性。分析QUARTUS II 综合报告,该设计模块只需加减法器,部分寄存器和16 个乘法模块,使用资源较少,能满足低复杂度、高吞吐量的设计要求。
5 结语
由于LLR 算法具有较高的运算复杂度,不易于硬件实现,而经过简化的MAX 算法由于避免了指数和对数运算,大大降低运算复杂度,只需进行加减法和少数乘法运算,适合于硬件实现。该设计通过MATLAB 与VHDL 仿真对照,验证了MAX 软解调算法硬件设计的准确性,同时将该模块与LDPC 译码模块级联,在具体的FPGA 芯片上运行,利用片上分析仪Chipscope 进一步验证设计的可行性。