交织器解交织器设计.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
交织器解交织器设计

交织器/解交织器设计 卷积交织: 交织深度I=12,形成相互交迭的误码保护数据包,以抵抗信道中突发的干扰。 1 卷积交织和解交织的原理 交织过程可算作一个编码过程,他把经过纠错编码的数据进行一定的 排列组合,提高原有纠错编码的纠突发错误的能力。数字通信中一般采取 的同步交织有2 种: (1) 块交织 也叫矩阵行列转置法。可以表述为一个二维存储器阵列 ( N × B ) 。 交织过程是数据先按行写入,再按列读出;解交织过程则相反,是数据先按 列写入,再按行读出。块交织结构简单, 但数据延时时间长而且所需的存储器比较大。 (2) 卷积交织 交织器的输入端的输入符号数据按顺序分别进入 B 条支路延时器,每一路延时不同的符号周期。第一路无延时,第二路延时M个符号周期,第三路延时2M个符号周期,…,第B路延时( B - 1 )M 个符号周期。交织器的输出端按输入端的工作节拍分别同步输出对应支路经延时的数据。卷积交织每条支路符号数据的延时节拍为 di = ( i - 1)M B , i = 1,2, …, B 。解交织器的延时数与交织器相反。 在仔细对比块交织和卷积交织两种方法之后,考虑到缩短延时和减小器件体积,小组决定采用卷积交织的方法来设计。然而实现卷积交织的延时方法有多种,一是采用移位寄存器法,直接利用FIFO实现每条支路的延时, 这种方法实现简单, 但是当B与M值较大时,需要消耗大量的寄存器(图2所示);二是利用RAM来实现移位寄存器的功能,通过控制读/写地址来实现每条支路延迟。 第一种方法,因为其设计思路和做法都相对简单,但是当需要较大的延时数时,移位寄存器变得很大,占用大量的编译时间和芯片空间,实际中并不可取,最终采用了RAM来实现移位,合理地设计读写地址按规律变化,即可实现所要的延时。下面将阐述设计细节 设计要求,交织深度 B=12,M=17,即有 12 条数据通路。采用 RAM 来实现输入数据的时延,按照一定的读写地址规律同时读写 RAM 中。交织器各通道的写地址如图 4 所示,读地址则在写地址的数值上加 1,通过计算可以知道,第 0 通道无延时;第 1 通道延时 17*1 个时钟周期;第 2 通道延时 17*2 个时钟周期......依此类推,第 11 通道延时 17*11 个时钟周期。总共所需存储单元数为 1+18+....+188=1134,相应的要用到地址总线为 11b。也就是说要用到 2k 的 RAM。 交织器的设计: 交织器由以上四个模块构成:AddrGen(交织器读写地址),RAM,WRcon(产生读写控制信号),DataLock(数据锁存),工作过程是clk一个上升沿到来时,AddrGen产生了读写地址AddrW和AddrR,与此同时WRcon模块WE=0,RE=’1’ ,产生写入控制信号,RAM便在AddrW地址单元存储发送过来的数据DataIn。接着clk下降沿到来,WRcon模块WE=’1’ ,RE=‘0’,产生读取控制信号,RAM便读取AddrR地址单元内的数据, DataLock模块进行数据锁存。 接着clk又是上升沿到来, 如此循环。 交织器模块的代码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity InterLeaver is port(clk:in std_logic; DataIn:in std_logic_vector(7 downto 0); DataOut:out std_logic_vector(7 downto 0)); end entity; architecture stru of InterLeaver is component AddrGen is port(clk:in std_logic; AddrR:out integer range 0 to 2047; AddrW:out integer range 0 to 2047 ); end component; component RAM is port(AddrR:in integer range 0 to 2047; AddrW:in integer range 0 to 2047; DataIn:in std

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档