卷积与RS级联编码的FPGA实现

卷积与RS级联编码的FPGA实现

贵州航天天马机电科技有限公司贵州省遵义市563000

摘要:为了研究编码增益,设计了一种卷积码与RS码级联编码,并搭建了该级联编码的仿真模型,仿真分析了级联编码模块对于所设计的系统性能的影响。仿真结果表明,与未采用任何编码的系统相比较,所设计的级联编码的系统能提高3db增益。而在RS码与卷积码之间加入交织器后,选取合适的交织器参数可以使系统的性能得到进一步的提升。

关键词:串行级联编码;卷积码;RS码;交织码

引言

卫星和地面数字移动通信系统的设计中经常要考虑带宽、功率和复杂度的问题。通过现有的通信组合的平台,验证了RS码与卷积码级联在远距离通信时表现比单一的RS码和卷积码要好,大大提高了系统的可靠传输。

1基本原理

卷积码常与RS码级联构成级联码是因为卷积码的Viterbi译码是序列译码,一旦出错就是一个序列的差错,相当于产生一个突发错误,因此具有良好纠突发错误能力的RS码成为了外码的首选。而以卷积码为内码的级联码适用于高斯白噪声信道是因为卷积码本质上属于纠随机错误码。针对Viterbi译码产生突发错误的特点,常常在卷积码内码与RS外码之间插入一个交织器,从而使得Viterbi译码产生的突发错误通过交织作用而随机化,外码面对的将是随机错误或缩短的突发错误。在这种情况下,不仅信道中的差错随机化了,数据也被随机化,从而也达到了增加码长的效果。

1.1RS编码器原理

RS编码是一种线性的块编码,其表示形式为RS(N,K)。当编码器接收到一个数据信息序列,该数据信息序列被分割成若干长度为K的信息块,并通过运算将每个数据信息块编码成长度为N的编码数据块。

本文采用的是RS(255,239)码的截短形式RS(32,16)是一种强力的突发差错校正码,只要每个码字中所出现的错误不超过8个符号,它就能给予纠正。RS(n,k)码编码参数定义如下:

m每个符号比特数;n码长n=2m-1;t纠错个数;d码距d=2t+1;k信息符号个数k=n-2t。

1.2卷积编码器原理

卷积码是纠错码中的又一大类,n个输出比特不仅与当前的k个输入信息有关,还与前(N-1)k个信息有关。通常将N称为约束长度,(有的书的约束长度Nn)。常把卷积码记为由3个(n,k,N)其编码效率为k/n。

本方案采用的编码效率是2/3,即每当输入2比特时,此编码器输出3比特的数据。

1.3交织编码器原理

移动通信的特点是发射的信号常常是连续的一段被干扰,但是卷积编码或CRC的纠错能力也只限定在纠正不连续的误码,如果出现了连续误码,则无法解决。为了解决这一问题,则必须使用交织编码技术,交织的目的就是把一个较长的突发性差错离散成随机差错。交织编码可以分为块交织,帧交织,随机交织,混合交织等。

本方案采用的是块交织方法,即按列写入,逐行读出或者是按行写入,按列读出。

2、编码的FPGA实现

2.1RS编码器的FPGA实现

随着微电子技术和集成电路工艺水平的飞速发展,FPGA集成电路的应用愈发普及。在运用FPGA时复用经过检验的高性能的IP核可以大大减化FPGA的设计,缩短设计周期,提高设计效率,且IP核具有更好的精度和更快的运算速度,使得运用IP核设计FPGA电路系统成为当前的主流设计方式。

本方案采用的RS(32,16)码编码器主要由有限域乘法器、有限域加法器、移位寄存器、开关和选择器实现,在XILINX公司的集成开发环境ISE14.7中,通过直接调用已经封装好的Reed-SolomonencoderCore,可直接实现对数据的RS编码,实现思路如下:

a)在XILINX开发环境平台上生成Reed-Solomonencoder的IP核,参数设定可以根据方案需要进行配置,本方案配置方式如下:codeSpecification—Custom,SymbolWidth—8,SymbolsPerBlock-32,DataSymbols-16

b)生成完IP核后开始例化,用FPGA代码实现对核的控制。

输入、输出端口描述:

clk:inSTD_LOGIC;---------输入时钟,IP核工作时钟

sclr:inSTD_LOGIC;---------复位信号

nd:inSTD_LOGIC;---------开始编码的信号

Data_in:instd_logic_vector(7downto0)------进行RS编码的数据

Data_out:outstd_logic_vector(7downto0)-----RS编码后的数据

rfd:outstd_logic;-------准备新数据进行编码

rdy:outstd_logic;------编码有效数据信号

2.2卷积编码器的FPGA实现

在XILINX公司的集成开发环境ISE14.7中,通过直接调用已经封装好的Convolutionencoder,可直接实现对数据的卷积编码,实现思路如下:

a)在XILINX开发环境平台上生成Convolutionencoder的IP核,参数设定可以根据方案需要进行配置,本方案配置方式如下:

Inputdata-2,outputdata-3,constraintlength-7,

Convolutioncode0-1001111,Convolutioncode1-1101101,

b)生成完IP核后开始例化,用FPGA代码实现对核的控制。

输入、输出端口描述

clk:inSTD_LOGIC;---------输入时钟,IP核工作时钟

sclr:inSTD_LOGIC;---------复位信号

nd:inSTD_LOGIC;---------开始编码的信号

Data_in:instd_logic------进行交织编码后的数据

Data_out:outstd_logic-----卷积编码后的数据

rfd:outstd_logic;-------准备新数据进行编码

rdy:outstd_logic;------编码有效数据信号

2.3交织编码器的FPGA实现

在XILINX公司的集成开发环境ISE14.7中,通过直接调用已经封装好的Interleaver/De-Interleaver,可直接实现对数据的交织编码,实现思路如下:

a)在XILINX开发环境平台上生成Interleaver/De-Interleaver的IP核,参数设定可以根据方案需要进行配置,本方案配置方式如下:memory-block,SymbolWidth-8,Mode-interleaver,Type-RectangularBlock。

b)生成完IP核后开始例化,用FPGA代码实现对核的控制。

输入、输出端口描述

clk:inSTD_LOGIC;---------输入时钟,IP核工作时钟

sclr:inSTD_LOGIC;---------复位信号

nd:inSTD_LOGIC;---------开始编码的信号

Din[7:0]:instd_logic------RS编码后的数据

Dout[7:0]:outstd_logic-----交织编码后的数据

rfd:outstd_logic;-------准备新数据进行编码

rdy:outstd_logic;------编码有效数据信号

3、系统模型

如图15所示,仿真模型中信息流的处理流程为:首先通过随机数产生器产生二进制信息序列,进入RS编码模块(此处采用二进制输入输出的方式)完成RS编码,输出数据进入到交织编码模块,所得编码结果的输出数据进入到卷积编码模块中完成卷积编码,所得编码结果经GMSK基带调制器进行调制,经过信道后,信道输出信号将输出至GMSK基带解调模块完成解调。

4、结论

文中设计了一种基于RS码与卷积码串行级联的系统,仿真了该系统在高斯白噪声信道中的性能,并分析了在串行级联编码中加入矩阵交织的系统性能。仿真结果表明,RS码与卷积码串行级联的系统与未编码系统性能相比,在信噪比高于1.4dB时明显更优。当在RS码与卷积码之间加入交织器后,选取合适的交织器参数可以使该系统的性能在一定程度上进一步得到提升。

参考文献

[1]曹雪虹,张宗橙.信息论与编码[M].北京:清华大学出版社,2009:184-185.

[2]刘培,葛建华,刘刚.级联卷积码的性能评估[J].电子学报,20033l(07):1089-1091.

[3]陈颖端,葛万成.串行级联卷积码在AwGN信道上的性能分析[J].通信技术,2009,42(03):40-42.

标签:;  ;  ;  

卷积与RS级联编码的FPGA实现
下载Doc文档

猜你喜欢