一种用FPGA实现的基于AHA4524的TPC译码器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一种用FPGA实现的基于AHA4524的TPC译码器一.引言1993年C.Berrou等人提出了turbo码。这种码字通过将软输入软输出(SISO)迭代译码算法应用于卷积码,性能上可以逼近香农(Shannon)限。但由于其译码算法复杂度高,不易于硬件实现,影响了turbo码的实际应用。1994年RM.Pyndiah把迭代译码算法应用于分组乘积码,发明了turbo乘积码(TurboProductCodes,TPC)。TPC在性能上逼近turbo卷积码,硬件实现却相对简单。而且TPC在高码率情况下性能优异,在接近信道容量时仍可保持良好的性能,具有较强的抗衰落,抗干扰能力,在信道条件较差的通信系统中有很好的应用前景。目前在卫星通信中应用广泛。AHA4524是ComtechAHA公司开发的一款优秀的TPC编译码器,它有以下特点:(1)单片集成独立的编码器和译码器,可选择全双工或半双工作模式。(2)支持的码率从0.25到0.97,支持2D码,3D码,截短码及增强TPC。block长度从64比特到4096比特。(3)支持最长达4bit软判决数据并行输入。(4)内部pll可支持低频率的系统时钟。(5)有总线模式和同步模式可供选择,方便和DSP的串口和总线兼容。(6)最高支持95M的数据输入速率。(7)可选的32bit的CRC校验,16bit的伪随机扰码器,螺旋交织模块。(8)支持子码类型:扩展汉明码和单奇偶校验。二.TPC结构及常用译码算法2.1TPC结构TPC是将软输入软输出(SISO)迭代译码算法应用于分组乘积码的一种码字。二维乘积码先对行向量进行分组码编码,然后再对列向量进行分组码编码,原理图及结构图如下图所示:图一乘积码编码原理图图二2DTPC结构在实际的卫星通信中使用的TPC,除了2维TPC外还有3维TPC,子码有扩展汉明码或单奇偶码。实际使用中码字前均含有同步字。下面就是一个卫星通信中实际使用的2DTPC:20bit同步字39*57(64,57)(46,39)0xF50B82944bit数据图三卫星通信中2DTPC上图所示的TPC去同步后为46*64矩阵,为(64,57)*(46,39)2维TPC,子码为扩展汉明码。2.2TPC常用译码算法简介TPC采用迭代的SISO译码算法。常用的算法有软输出chase算法,SISOCyclic-2PML算法等。其中SISOCyclic-2PML(软输入软输出循环2伪最大似然)算法采用扩展汉明码作为子码。与Chase算法相比,性能相仿,译码过程却相对简单。本文将对其作简要介绍。最大似然译码算法是一种最优的译码算法。考虑AWGN信道条件下,BPSK调制方式,二进制比特流采用{0-1,1+1}的映射,信道中传输的为C[n,k,dh]二进制分组码。最大似然译码算法即是找到最佳码字,1,2,(,...)llllnCccc使其与接收的码字12(,...)nRrrr欧几里德距离最小,将其译为发送码字。最大似然译码算法适用于短码,对于长码运算量太大。伪最大似然译码算法(PML)采用DM值作为相关值度量方法,译码性能有所降低,但运算量却大幅度下降,是一种次最优译码算法。方法如下:设接收向量为12(,...)nRrrr;其可信度向量为12(,...)nLlll;iilr,i=1,2…n;将接收向量12(,...)nRrrr硬判并进行代数译码得到中心码字0C∈C。采用DM值,,1nllimiiDMl;作为最大相关值码字的度量,其中,{0,1}li是中心码字0C与第L个码字lC第i个分量的异或值。DM值最小值对应的码字即为最大相关值的码字,译码算法将其译为发送码字。SISOCyclic-2PML算法以PML算法为基础,利用循环码的特性,建立搜索空间时只考虑距离中心码字最近的码字,即可信度值最小和次最小码字中与中心码字相应符号不同的码字,因此得到的搜索空间为PML算法空间的一个子集,进一步简化了复杂度。三.基于4524的译码器设计3.1译码器结构图AHA公司的译码芯片AHA4524需要通过微处理器进行工作方式的配置,并按时序进行寄存器配置及数据的输入,同时之前还要对解调后IQ数据进行去相位模糊和去同步的处理。因此我们选用Xilinx的FPGA配合4524进行译码。译码器结构如下图:工作时钟IQ相位模糊IQIQ数据时钟软判数据(4位)TPC帧结构处理TPC同步硬判数据AHA45244524控制去同步后block帧(软判4bit)FPGAXc3s2000-5fg456译码后数据处理数据输出图四TPC译码器结构图译码器采用xilinx的FPGA:spartan3-2000进行逻辑设计。解调出来的IQ两路数据连同时钟送入FPGA后,经过去相位模糊,TPC同步,TPC帧结构处理后产生去同步的软判block数据,然后配置4524,将数据按时序送入4524,并将译码后的时钟和数据送入FPGA,处理后输出。由于AHA4524不支持连续译码,且芯片数据输入时钟(40M)远高于去相位模糊后软数据输入时钟(19.2k—4Mpbs),因此需要进行速率匹配,这部分放在“TPC帧结构处理模块”,采用异步FIFO实现。3.2AHA4524控制逻辑4524控制逻辑负责芯片的工作方式,配置寄存器,并将软输入的数据按时序送入4524。3.2.1工作方式选择4524有总线和同步两种工作模式,这里选用同步模式(因为同步模式的时序比较严格)。解调出来的数据来自卫星转发器,因此IQ路工作时钟为9.6kbps-2.048kbps(由于并串变换,去相位模糊后速率加倍)。芯片系统时钟选择26.7MHZ,数据传输时钟选择为40MHZ。4524通过引脚reset_n进行复位,为低有效的电平复位。在resen_n的上升沿进行工作模式的设定。3.2.2配置寄存器及数据的输入4524寄存器的配置和数据输入均是通过信道输入端口,在4524译码器部分为c_data[3:0],为4bit的可配端口。这里配置成4bit并行输入。4524寄存器的配置比较特殊,它是以16bit的configcycle帧进行配置。如下图所示:图五寄存器配置帧格式配置帧通过c_data端口以msb方式送入4524。15bitrwn为读写标志:为1代表读寄存器,0代表写寄存器。14bitlast设为1代表为最后一个配置帧。a[5:0]为要读或写的寄存器地址。d[7:0]为写入的数据。输入的解调后数据一般为某一种TPC。因此配置方式选为fixedconfig方式,这种方式在开始把寄存器配置完后就不用再配置寄存器,想要重新配置需复位4524。另外4524默认要求配置完后马上跟数据,这里设置为配置后不立即接数据方式。同步方式下,配置和数据都要用同步信号(4524译码器是c_fs引脚)进行同步。配置和传送数据的时序图如下所示:blocknc_clkreset_n至少10个clk周期c_captc_fsc_data配置数据(configcycle)block1图六AHA4524工作时序图这里的c_acpt信号为4524输出的信号,当c_acpt为高表示4524可以接受数据。c_acpt在block数据开始传输后或者读寄存器开始时变为低。c_fs作为同步信号,由FPGA中的逻辑产生,配置帧数据和TPCblock数据均是在时钟的上升沿被4524读入,为提供充分的建立时间,数据均在时钟下降沿送入4524。3.2.3译码后数据的输出译出的数据会在同步信号同步下输出,时钟由FPGA提供输入到d_clk引脚。4524还提供一个d_rdy信号,此信号在数据输出期间为高。时序图(摘自4524datasheet)如下:图七译码后数据输出时序图译码后数据输入到FPGA,处理后输出。3.3AHA4524芯片所处理的TPC码性能AHA4524具有很好的译码性能。下面就AHA公司给出的4524芯片处理不同类型TPC的性能列表如下:图八不同码率TPC性能图九卫星信道2DTPC(图三所示)性能仿真图四.译码器性能测试在实验室环境下采用CDM600作为信号源进行测试,设置为QPSKTPC3/4(解调后的TPC格式如图三),信号速率选择1024kbps,符号速率为682.667ksym.采用中频70M,输出信号电平-20dbm。无燥环境下译码器可以无误的恢复原始编码数据。在有燥环境下,该译码器基本上可以达到AHA4524的表现。

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功