基于FPGA的信道编译码系统设计
谢 微,郑正奇,谢 琲,简春兵
【摘 要】论述了在整个无线收发系统中用软件的方法实现信道编译码系统的功能。信道编译码系统包括发射端的信道编码和接收端的信道译码两大部分。本系统的实现过程是:先通过软件编程实现各部分的功能模块,然后编程连接各模块,系统编译仿真通过以后载入FPGA(现场可编程门阵列)芯片,验证结果。实验表明,该系统结果符合了设计的要求。 【期刊名称】现代电子技术 【年(卷),期】2006(029)021 【总页数】3
【关键词】信号处理;编码;译码;FPGA
1 引 言
FPGA/CPLD[1]近年来在国内发展得非常快,他以编程方便、集成度高、速度快、价格低等特点受到了广大电子设计人员的青睐。特别是在通讯领域,现场可编程门阵列和复杂可编程逻辑器件(FPGA/CPLD)得到了广泛的应用。本系统的突出特点是采用FPGA来进行系统建模[2]实现基带信号的处理,而不是采用一般的ASIC芯片设计硬件电路。一个完整的基带信号处理系统框图如图1和图2所示。
本系统发送端和接收端的信号处理都可以各自放在一片XC2S100芯片中实现,这是Xilinx公司Spartan II系列的FPGA产品,而支持FPGA设计的开发软件工具也有很多,目前仍以Altera公司推出的Maxplus II和Xilinx的ISE软件最流行。其中,ISE[3]系列设计工具为所有Xilinx系列产品提供特定架构元件
的支持,本系统在Webpack软件环境下进行编译综合,采用的是VHDL[4]硬件描述语言,设计的流程包括:设计输入(Design Entry);设计仿真(Simulation);设计综合(Synthesize);布局布线(Place & Route);配置下载(Configuration)5个主要步骤。
2 编译码原理[5]和设计
数字信号在信道传输时往往由于噪声和码间串扰等原因,造成接收到的信号出错,为了减少误码率,在发送信号前要对信号进行编码,将不带规律性或规律性不强的原始数字信号变换成带规律的数字信号。这里采用的是差错控制信道编码。 2.1 串/并转换
由于输入的数字信号是串行信号,因此在进行编码前首先要将串行信号转化为并行信号,在Webpack ISE软件中通过串并转换的编程,将输入信号放入缓存器中,实现串/并转换。并/串转换的原理和串/并转换基本上都是一样的。对于发送端,串/并转换用于编码前将串行输入码元放入缓存等待编码,并/串转换用于编码后将缓存内的码元转换成串行数据输出;而在接收端,串/并转换用于解码前将接收到串行数据放入缓存,并/串转换是将解码还原出的数据串行输出。
2.2 汉明编译码
汉明码是一种高码率的纠单个错误的线性分组码。为了组帧方便,本系统的纠错码采用改进的(7,4)汉明码,多增加了一位监督位,变为(8,4)汉明码,他能纠正一个误码,或检测两个误码。监督码元的公式如下所示: 监督码元
本系统中串/并转换后的输入码元放在28位缓存中,以4个码元为一 组,组成4*7的矩阵,对每4位码元按上述监督码元的公式进行(8,4)汉明编码,这样经过汉明编码以后输入码元增加了一倍,变成56位码字,组成8*7的矩阵。 在接收端,汉明码译码过程中最主要的是对码字进行检错和纠错,纠错的方法是根据汉明码的伴随式S和错误图样E的关系求出发生错误的具体的位置,并加以纠正。汉明译码的原理图如图3所示。由于在纠错编码时,所用的4个监督码元是相关的,也即是由其中的任何3个可以推出另外一个。所以在汉明码译码时,可以任取其中的3个作为汉明译码的监督方程。根据奇偶校验的特性,他可以检测到奇数个误码。因为(8,4)汉明码只能纠正一个误码,在译码时,可以先对接收到的码字进行偶校验,根据奇偶校验的特性,他可以检测到奇数个误码。如果发现偶校验的结果即图中的s3为“1”,则说明存在一个码元的错误,否则,存在偶数个误码。 2.3 交织编解码
纠错编码可以纠正随机错误,但在实际通信系统中,常常出现突发错误。突发错误一般是一个连续的错误序列,所以错码的位数往往会超出差错控制的纠错范围。纠正突发错误通常采用的是交织编码。 因此在汉明编码后再进行交织编码,这样出来的信号既能抗随机错误又能抗突发错误,提高了信道传输的正确率。本系统中交织编码后是7*8的交织矩阵,交织解码后是8*7的纠错矩阵。 2.4 均衡和加密
在进行数据传输时,为了防止数据被他人窃取,可以在传输的数据中使用加密序列。同时,为了防止过长的连“0”或连“1”的出现,要使用扰码,对数据信号起到均衡的作用。为此,可以把两者结合起来,在传输的数据中加入一定