位置:51电子网 » 技术资料 » 其它综合

一种交织器和解交织器的FPGA电路实现

发布时间:2008/6/3 0:00:00 访问次数:399

交织和解交织是组合信道纠错系统的一个重要环节,交织器和解交织器的实现方法有多种。本文利用altera公司开发的quartus软件平台和仿真环境,设计一种交织器和解交织器fpga电路单倍实现的方法,并分析该电路实现的特点。

外交织的基本原理

  实际信道中产生的错误往往是突发错误或突发错误与随机错误并存,如果首先把突发错误离散成随机错误,然后再去纠随机错误,那么系统的抗干扰性能就会进一步得到提高。交织器的作用就是将比较长的突发错误或多个突发错误离散成随机错误,即把错误离散化。交织器按交织方式可分为交织深度固定的交织器(如分组交织器和卷积交织器)和交织深度不断变化的随机交织器;按交织对象可分为码元交织器和码段交织器,这里主要讨论的是交织深度固定的码段交织器。

  交织和解交织是一种很实用也很常用的构造码方法,不仅可以纠随机错误,还可用来纠突发错误,所以常用于组建信道纠错系统。例如,以[n,k]线性分组码作为行码,设交织深度为i,交织编码即是将这一线性分组码排成如图1所示的i行,n列的码阵,形成[ni,ki]交织编码的一个码字,传送按列的次序自左向右传输,即:a1(n-1)a2(n-1)...ai(n-1)a1(n-2)...ai(n-2)...a10a20...ai0,其中aij代表一个码段。解交织时,仍排成如图1的码阵,并按行的次序自上而下传输,最后再按分组码[n,k]方式译出。由于信道中的错误被分散到各个行码中去,因此若行码能纠t个随机错误或b个长突发错误,则[ni,ki]交织后的码就能纠所有长度i×t或i×b的突发错误。

  交织深度i是交织和解交织的重要参数。交织深度i越大,突发错误的离散度也越大,错误的相关性越小。当i足够大时,就可把突发错误离散为随机错误。

交织器和解交织器的实现

  交织器和解交织器实现的基本原理如图2所示,其中i表示交织深度。由图可见,共有i个通道,输入数据依次进入第0到i-1通道,并按照各自通道上的延时规律输出,交织器和解交织器相同通道上的延时是互补的,延时之和均为m×(i-1)。这样经过发射机交织器数据输出的先后顺序被打乱,再经过接收机解交织器又被重新恢复。

图2:交织器和解交织器原理图

图3:单倍交织器实现框图

交织器和解交织器电路实现如图3所示。由于交织和解交织要对数据进行有规律的延时处理,所以输入数据首先被存入一双端口ram中,然后经过一定时延后被读出,此延时由双端口ram的读写地址来控制,因此,其实现的关键在于双端口ram读写地址的产生和分配,不仅要有利于找到地址的变化规律,而且要易于电路实现。ram读写地址产生的一种办法是将读写地址映射到rom里,另一种办法是通过电路计算得到读写地址。前者方法简单,实现方便,但是添加rom会占用存储资源,所以一般都采用后者,其实现也并不复杂。后者的实现电路包括单倍实现和双倍实现,所谓单倍和双倍主要是针对ram存储单元的占用量而言,单倍实现所用ram存储单元的容量是双倍的1/2左右。我们所设计的fpga电路采用的是单倍实现,实现框图如图3所示。

  下面就简述该设计中双端口ram地址分配及读写地址的生成规律。以i=12,m=17的交织器为例。由于交织深度是12,所以有12个通道,表1列出每通道的地址分配,其中第1行对应图2中交织器的第0通道,第2行对应第1通道,第3行对应第2通道,……第12行对应第11通道。第i通道共有n=i×m+1个地址,且分配的地址是固定的。ram读写地址按照交织器中各通道的延时规律变化,交织器的地址分配如表1所示。

交织和解交织是组合信道纠错系统的一个重要环节,交织器和解交织器的实现方法有多种。本文利用altera公司开发的quartus软件平台和仿真环境,设计一种交织器和解交织器fpga电路单倍实现的方法,并分析该电路实现的特点。

外交织的基本原理

  实际信道中产生的错误往往是突发错误或突发错误与随机错误并存,如果首先把突发错误离散成随机错误,然后再去纠随机错误,那么系统的抗干扰性能就会进一步得到提高。交织器的作用就是将比较长的突发错误或多个突发错误离散成随机错误,即把错误离散化。交织器按交织方式可分为交织深度固定的交织器(如分组交织器和卷积交织器)和交织深度不断变化的随机交织器;按交织对象可分为码元交织器和码段交织器,这里主要讨论的是交织深度固定的码段交织器。

  交织和解交织是一种很实用也很常用的构造码方法,不仅可以纠随机错误,还可用来纠突发错误,所以常用于组建信道纠错系统。例如,以[n,k]线性分组码作为行码,设交织深度为i,交织编码即是将这一线性分组码排成如图1所示的i行,n列的码阵,形成[ni,ki]交织编码的一个码字,传送按列的次序自左向右传输,即:a1(n-1)a2(n-1)...ai(n-1)a1(n-2)...ai(n-2)...a10a20...ai0,其中aij代表一个码段。解交织时,仍排成如图1的码阵,并按行的次序自上而下传输,最后再按分组码[n,k]方式译出。由于信道中的错误被分散到各个行码中去,因此若行码能纠t个随机错误或b个长突发错误,则[ni,ki]交织后的码就能纠所有长度i×t或i×b的突发错误。

  交织深度i是交织和解交织的重要参数。交织深度i越大,突发错误的离散度也越大,错误的相关性越小。当i足够大时,就可把突发错误离散为随机错误。

交织器和解交织器的实现

  交织器和解交织器实现的基本原理如图2所示,其中i表示交织深度。由图可见,共有i个通道,输入数据依次进入第0到i-1通道,并按照各自通道上的延时规律输出,交织器和解交织器相同通道上的延时是互补的,延时之和均为m×(i-1)。这样经过发射机交织器数据输出的先后顺序被打乱,再经过接收机解交织器又被重新恢复。

图2:交织器和解交织器原理图

图3:单倍交织器实现框图

交织器和解交织器电路实现如图3所示。由于交织和解交织要对数据进行有规律的延时处理,所以输入数据首先被存入一双端口ram中,然后经过一定时延后被读出,此延时由双端口ram的读写地址来控制,因此,其实现的关键在于双端口ram读写地址的产生和分配,不仅要有利于找到地址的变化规律,而且要易于电路实现。ram读写地址产生的一种办法是将读写地址映射到rom里,另一种办法是通过电路计算得到读写地址。前者方法简单,实现方便,但是添加rom会占用存储资源,所以一般都采用后者,其实现也并不复杂。后者的实现电路包括单倍实现和双倍实现,所谓单倍和双倍主要是针对ram存储单元的占用量而言,单倍实现所用ram存储单元的容量是双倍的1/2左右。我们所设计的fpga电路采用的是单倍实现,实现框图如图3所示。

  下面就简述该设计中双端口ram地址分配及读写地址的生成规律。以i=12,m=17的交织器为例。由于交织深度是12,所以有12个通道,表1列出每通道的地址分配,其中第1行对应图2中交织器的第0通道,第2行对应第1通道,第3行对应第2通道,……第12行对应第11通道。第i通道共有n=i×m+1个地址,且分配的地址是固定的。ram读写地址按照交织器中各通道的延时规律变化,交织器的地址分配如表1所示。

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!