陈庆旭,孙 曼,植 涌
(四川大学电气信息学院,四川 成都 610065)
由于种种原因造成数字信号传输的数据流出现误码,从而导致接收端产生图像不连续、跳跃等现象,因此信道编码就显得尤为重要。信道编码可增加通信的可靠性,极大地避免传送码流中误码的发生,并在信道中加入纠错、交织等处理误码的技术。该文介绍了DVB-C系统中编码器的实现,将其分为扰码、RS编码、卷积交织、QAM调制4个部分,并对其中的RS编码和卷积交织做了重点介绍,提出一种基于FPGA的实现方案。
图1为DVB-C编码系统的硬件实现图。
图1 DVB-C编码系统的硬件实现图
DVB-C编码系统的硬件实现包括5个部分:
1)PCI接口。该系统采用Altera公司CPLD MAXII系列中的EPM1270256C5实现PCI接口。因为MAXII的功耗和成本大幅降低,资源密度和性能却显著提升,非常适用于接口协议,又因为只在EPM1270和EPM2210的I/O Bank 3中有PCI钳位二极管,故此设计选用EPM1270256C5[1]。
2)DVB-C编码器。该系统采用Altera公司的CycloneIII系列中的EP3C55F484C6完成了编码器的设计。
3)ADC。ADC模块采用ADI公司的AD9777数模转化器,它非常适合那些要求高调制精度(即64 QAM以上)的应用,可以抑制模拟混频操作固有的镜像,从而减少滤波级的数量,降低实现3G和宽带频谱发射所需硬件的成本[2]。
4)I/Q调制器、本振信号。I/Q调制器采用ADL5385,它是一款硅单芯片正交调制器,设计用于50~2200 MHz频率范围。其出色的相位精度和幅度平衡可以为通信系统提供高性能中频或直接射频调制。ADL5385 从两路差分基带输入获得信号,并将其调制到两个彼此正交的载波上。两个内部载波均源自一路单端、外部本振输入信号,其频率为目标载波输出频率的两倍。经过调制的两路信号通过差分转单端放大器相加,驱动50 Ω负载。该振信号的产生采用的是 ADF4351,其输出频率范围为35 ~4400 MHz。
5)滤波电路。滤波网络采用低通滤波器,将滤波器的截止频率分成 80 MHz,120 MHz,180 MHz,225 MHz,400 MHz,630 MHz,1200 MHz共7 个等级。
图2为DVB-C系统编码器的FPGA过程图。
图2 DVB-C系统编码器过程
DVB-C系统编码器的过程分为4个部分:
1)同步反转数据扰码。在DVB-C标准中,每188个字节组成1个MPEG-2数据帧,每个MPEG-2的第1个字节(47 H)为同步字节。每8个MPEG-2数据帧组成1个传输包,并且每1个传输包的第1个字节要取反输出[3]。然后进行扰码处理,避免出现长串的0或1。
2)RS编码。在每1帧的数据输入之后,要进行RS编码,编码的目的是为了纠正突发错误。编码过后会产生16个校验位,每1帧的字节长度变成204。
3)卷积交织。卷积交织加入之后可以进一步增强抵御突发差错的能力,卷积交织改变数据的传输顺序从而提高抗突发误码的能力。
4)QAM调制。QAM调制分为从字节到字符的转换、差分编码、星座映射3个部分组成。字节到字符的转换把字节转化成调制需要的符号流,在转换完成后,应对符号的最高2位进行差分编码,经过星座映射完成I/Q正交。
在信号初始化的过程中,数据要进行同步翻转,即每1个传输包的第1帧同步字节应该取反输出,然后对数据进行扰码(即能量扩散)。在DVB-C系统中传输的数据流为了保证出现“0”与“1”的概率相等,即各为50%,必须对输入的数据流进行扰码。扰码是通过伪随机二进制序列发生器来完成的。DVB-C系统中实现扰码的伪随机序列的生成的多项式为
经过扰码处理后,输出的数据流出现“0”与“1”的概率近似相等了,而且减小了对其他通信设备的干扰,有利于载波的恢复。
2.2.1 RS编码原理
RS码既可以纠正随机误码,也可以纠正突发误码,它广泛应用在数字电视传输系统中。RS码是目前效率最高、应用最广的纠错编码之一。
经过扰码之后的数据流要进行RS编码,在DVB-C系统中,它采用 RS(204,188,8)码[2],每 1 个数据帧要用16个校验符号,即188个符号产生16个校验符号,编码后总数为204 个符号。RS(204,188,8)是 RS(255,235,8)的截短码,它是在GF(28)域上得到的[4]。GF(28)域上的生成多项式为
码字生成多项式为
2.2.2 RS编码的实现
图3为RS编码器的顶层模块实现框图,DataIn[7..0]和DataOut[7..0]分别为RS编码的输入和输出,cklin为时钟信号,aclr为复位信号。FrameErr为监视信号的同步。根据RS编码原理,在送入第188个数据后就必须停止输入,直到校验数据全部输出为止。图4为RS编码的仿真,输入为1~188的循环。输出前188个字节为1 ~188,16 个校验位195,231,90,194,142,112,85,171,63,242,251,154,1,82,33,222。
2.3.1 卷积交织的原理
交织主要是把连续出现的突发误码散成便于纠正的随机误码,为正确译码创造条件。交织过程中只需要打乱码元的顺序排列,因此不会降低传输效率,经过交织之后,系统的纠错能力得到进一步提高。在DVB-C系统中采用卷积交织方法[5],卷积交织的基本原理如图5所示。其中I表示交织深度。交织器由I=12个分支组成,每1个分支都有先进先出(FIFO)(其中M=17)移位寄存器。经过RS编码的数据按照顺序分别进入I条分支延迟器,每1路分支延迟各不相同。第1路无延迟,接下来的每1路分支以延迟M=17个周期递增,直到第12路的分支延迟为17×11。
图5 卷积交织与解交织
2.3.2 卷积交织的实现
为了实现延迟,最简单的方法就是给每条延迟通道分配一定长度的FIFO移位寄存器,但是这种方法需要的FIFO移位寄存器为1122 个。该设计采用双端口RAM代替FIFO移位寄存器,采用RAM整块循环移位法,从而节省大量的存储单元,且代价小,是理想的方法[6]。图6为卷积交织的设计流程图,其中Ci为第I道的计数值,Fi为通道的首地址,Li为通道的尾地址。RAM的读写规律为:
图6 卷积交织的设计流程图
第I通道读地址为Ci+Fi。
相对应的写地址为Li,当Ci不为0时,Ci+Fi-1;当Ci为0 时,为 Li。
图7为卷积交织器的顶层模块图,其中clkin为系统时钟信号,aclr为复位信号,DataIn[7..0]是数据输入端,DataOut[7..0]是数据输出端,RrAddr[10..0]为双口RAM的数据读地址,WrAddr[10..0]为双口RAM的数据写地址。图8为卷积交织的仿真,输入为0~255的循环。这是第2帧的输出,第2帧的第1个字节输出为204,第2个字节为前1帧的第2个字节,即1。
DVB-C系统采用了多电平正交幅度调制技术(MQAM),可以在2m-QAM(m=4,5,6,7,8)中选择。为了调制的方便,在2m-QAM调制之前,要进行字节到符号的映射。映射的符号高位取字节的高位,这个字节剩下的位和下个字节的高位组成下个符号。图9是64-QAM的映射过程。
图9 64-QAM时字节到m比特字符的转换
经过字节到符号的转化后,需要对符号进行映射,同时为了获得π/2旋转不变QAM星座图,需要对每个m比特符号的最高位Ak与次高位Bk进行差分编码[7],公式为
图10是QAM调制的过程,QAM调制采用雷格码在星座图上的差分编码映射,这样能够消除相位模糊的问题。
图10 QAM调制过程
采用Altera公司的EP3C55F484C6芯片设计了DVB-C系统的编码器,此芯片有55856 个逻辑单元,整个编码器用了1391 个逻辑单元,占用率不到1%。通过实现了DVB-C系统编码器的设计,所有模块都在Quartus II 10.0中通过了验证,且用modelsim进行了仿真,并给出了整个编码器的仿真结果,仿真如图11所示。
图11 仿真结果(截图)
[1]MAX II Device handbook chapter 8:using MAXII Devices in multi-voltage systems[EB/OL].[2011-09-10].http://www.altera.com/literature/hb/max2/max2_mii51009.pdf.
[2]AD9777:16-Bit,160 MSPS 2x/4x/8x Interpolating Dual TxDAC+D/A Converter[S].2006.
[3]GB20600—2006,Framing structure,channel coding and modulation for digital television terrestrial broadcasting system[S].2006.
[4]梁炜新,王群生.基于FPGA的通用RS编解码器的VHDL设计方法[J]. 电视技术,2004,28(3):16-20.
[5]梁小萍,肖嵩.卷积交织器和解交织器的VHDL设计和FPGA实现[J]. 制造与设计,2004,27(20):102-103.
[6]HANNA S A.Convolutional interleaving for digital radio communications[C]//Proc.ICUPC 1993.[S.l.]:IEEE Press,1993:443-447.
[7]KOUKOURLIS C S,HOULIS P H,SAHALOS J N.A general purpose differential digital modulator implementation incorporating a direct digital synthesis method.member[J].IEEE Trans.Broadcasting,1993,39(4):383-389.