您的位置:首页 > 其它

OFDM之卷积码编器

2015-08-25 15:25 211 查看
(一)卷积码编码器

1.功能和特点

Xilinx卷积码编码器IP核可以在很多差错控制系统中用于实现卷积码编码器,通常与Viterbi译码器联合使用。其主要特性有:

(1)支持Virtex-6、Virtex-5、Virtex-4、Spartan-6、Spartan-3和Spartan-3A系列FPGA芯片。

(2)实现高速高效率卷积码编码,并支持删余选项。

(3)编码约束长度参数化,有效取值范围为3~9。

(4)支持参数化卷积码和删余码。

(5)支持的删余码率范围是2/3~12/23。

(6)可以在Xilinx IP核生成工具(V11.2及更高版本)中使用。

2.端口说明



3.功能描述
卷积码编码器的基本结构如图3.1所示。输入数据送入移位寄存器,每次一个比特,输出比特是根据要求从移位寄存器中取出的数据比特经过模2加的结果。



图3.1 卷积码编码器的基本结构(约束长度为9)
卷积码编码在数据通过信道传输之前进行编码,在基本编码结构中,每个输入比特编码生成多个比特(具体数目与编码效率有关),然后送到信道上传输。
表3-1给出了卷积码编码器核参数的取值范围。
表3-1 参数范围



卷积码编码器可以在传输执勤啊删余数据。在删余情况下,基本结构的编码器一般是码率为1/2的编码器,即每个比特编码生成两个比特。在编码之后,传输之前删余(或者说删除)编码数据中一定数目的比特。这样,如果将每3个输入比特对应的6个编码比特中的2个比特删除,保留4个比特,则可以是吸纳码率为3/4的删余码,如图3.2所示。



图3.2 单通道输出的删余编码
在删余过程中,根据删余码的比特模式对决定删余输出中的哪两个比特。使用删余可以减少通过信道传输的比特数,对于长度为n的删余码,实际中只有m个比特被传输,因此,编码器的速率变成n/m,其中,n<m<2n。对于速率为n/m的删余,值n的范围为2~12。
对于删余码,数据可以以单比特流的方式输出。这种单通道输出要求使用ND(新数据)和RFD(准备好接收数据)信号来作为输入控制信号,这是因为输出比特数比输入比特数多。
图3.3给出了用双通道成对传输删余数据的情况。这种情况下,输出数据比特对比输入比特数少,因此RFD信号(如果出现)总是保持为高电平。RDY信号(准备好信号)原来标识什么时候输出数据是有效的。



图3.3 双信道输出的删余编码
卷积码编码器IP核用高度流水的方式来确保达到最大吞吐量。但是,对于相应的输入数据块和输出数据块,必须考虑流水延时。在IP核复位后或第一个数据块进入IP核时,第一个数据输出块(第一个RDY块标识)总是为零。相应于第一个输入数据块的输出数据块和第二个RDY块同时出现。当FD_IN脉冲有效时可以实现上述标识,以前的结果继续输出并且通过RDY信号正确标识。如果在RFFD为低电平时将FD_IN信号置为高电平,则会得到部分输出数据块。
4、应用实例
(具体的例子仿真结果对不上,正在查找原因中)
(搞了好几天终于搞定了,原来是数据输入的时候延时了一个时钟导致的,刚开始没有留意,唉,做FPGA怎么能不考虑这个问题呢!!!







)。
4.1 无删余卷积编码实例
数据源:1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 (来自802.11a SIGNAL字段比特分配表)
编码后:1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
IP设置如下图4.1所示:



图4.1 无删余卷积编码器IP核设置
标注1:输出速率,取值范围为2~7,此处取值为2,则编码速率为1/2,设置输出速率只能得到1/R的编码速率;
标注2:约束长度,其值为移位寄存器的长度加1,Convolution Code0和Convolution Code1与生成多项式的系数相对 应,相同的多项式,Convolution Code0和Convolution
Code1取值不同会影响输出的高地位;
标注3:ND,新数据,标识在DATA_IN端口有新数据;
标注4:RDY,输出准备好,标识输出端口上有有效数据输出。
图4.2给出了仿真结果。



图4.2 无删余卷积编码器仿真结果
开始不对的仿真结果如图4.3所示。



图4.3 错误的仿真结果图
错误的原因:当ND信号变为高电平时,data_in端给出的数据为1 1 0 1 1.........而不是1 0 1 1.......从而使输出结果与正确结果不一致,这是因为数据源存储的ROM读出的数据与ND信号没有同步,有一个时钟的延时所致。
4.2 有删余卷积编码实例
在例4.1的基础上加入删余,方便结果比较。
对于删余编码,控制信号的变化与数据输出是单比特流形式还是双信道形式有关。对于单比特/单通道输出,IP核必须有ND信号和RFD信号。在接收到n个输入比特(删余输入速率)后,RFD信号变为低电平并持续m-n个时钟周期。RDY信号用于标识有效输出数据是否可用,时序关系如图4.4所示。



图4.4 3/4码率的单通道输出删余码
(好不容易做出来个无删余模式,有删余模式的又做的不对了,






4.2.1 有删余单通道输出
注意:单通道输出时,接收到n(n为删余输入速率,此处为3)个输入比特后,RFD信号变为低电平并
持续m-n(4-3=1)个时钟周期,RDY信号用于标识有效输出数据是否可用。为了使数据正确的输入,产生的nd信号为:持续3个时钟为高电平,一个时钟为低电平。
IP核设置如下图4.5所示:



图4.5 有删余IP核设置
标注1:输入、输出速率的设置,这里为3/4的编码效率。
标注2:是否删余,这里选择punctured,删余。
标注3:将输出的高、低位分别以3个数据为一组进行分组,Puncture Code标识的是将三个数据中的哪一个删掉,
例如Puncture Code1=110表示将从左到右数第三个数据删掉。
标注4:同图4.1的标注2。
数据源:1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 (来自802.11a SIGNAL字段比特分配表)

编码后:

将无删余编码后的数据高低位每三个数据一组分开写,如下所示,红色标注的为删余编码将要删掉的数据

110
100 010
000 011
011 000
000
100 011
000 001
011 101
000 000
则删余编码后的数据为:1000 1101 0000 0001 0111 0011 0000 0000
仿真结果如下图4.5所示。



图4.5 带删余仿真结果
图4.5中红色方框部分为编码器的延时。卷积编码器IP核是用高度流水的方式来确保达到最大吞吐量。但是,对于相应的输入数据块和输出数据块,必须考虑流水延时。在IP核复位后或第一个数据块进入IP核时,第一个数据输出块(第一个RDY块标识)总是为零。相应于第一个输入数据块的输出数据块和第二个RDY块同时出现。当FD_IN脉冲有效时可以实现上述标识。以前的结果继续输出并且通过RDY信号正确标识。如果在RFFD为低电平时将FD_IN信号置为高电平,则会得到部分输出数据块。上述情况仅影响删余码。图4.6给出了删余流水的例子。



图4.6 删余流水(第一个RDY块对应的输出块全为零)
图4.5中的仿真结果为:1000 1101 0000 0001 0111 0011 0000 0000
仿真结果与理论分析结果一致。








4.2.2 有删余双通道输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: