1.前言
前面一节完成了扰码器的FPGA设计与Matlab验证,这节继续对卷积编码器进行实现和验证。
2.卷积编码
2.1卷积编码基本概念
卷积码编码器实质上是一个有限状态的线性移位寄存器。这个移位寄存器由若干个寄存器单元组成,且寄存器单元按一定的规则连接到代数运算单元,将运算结果作为编码比特输出。
一个简单的卷积编码器的结构如下图所示:

R1, R2, R3, 是三个寄存器,输入数据进行过这个卷积编码器将在下方输出结果。
卷积编码的输出有如下关系:

假设输入的数据是0110,那么经过卷积编码器之后的结果可以由如下表格给出:
| Input | R1 | R2 | R3 | Output |
|---|---|---|---|---|
| INIT | 0 | 0 | 0 | 000 |
| 0 | 0 | 0 | 0 | 000 |
| 1 | 1 | 0 | 0 | 111 |
| 1 | 1 | 1 | 0 | 110 |
| 0 | 0 | 1 | 1 | 010 |
如果将卷积编码的这个过程在一个图来表示可以按照如下的方式来标注:

网格图中,具有相同状态的节点合并在一起;当输入比特为零时用实线表示,当输入比特为 1 时用虚线;支路上标注的码元为输出比特;最左侧为卷积编器的低两个寄存器的值。
n:编码器每次输出的码元个数;
k:编码器每次输入的信息码元个数,一般 k=1;
N:约束长度,在 k=1 的情况下,表示编码器的输出与本次及之前输入的 N个码元相关;
那么上图所示的卷积编码结构可以描述为(3,1,3);其编码效率为 k/N,则该卷机编码的效率为 1/3。
2.2 802.11a卷积编码器
卷积编码使用的生成多项式是 g 0 = ( 133 ) 8 , g 1 = ( 171 ) 8 g0 = (133)_{8}, g1= (171)_{8} g0=(133)8,g1=(171)8,码率为 1/2,其生成多项式用二进制表示为 g0 = 1011011,g1 = 1111001,该卷积码可以表示为(2,1,7),即每时钟周期输出两个比特数据,输入 1 个比特数据,约束长度为7。

每输入一bit的数据,将会依次输出A,B两bit的数据。
输出数据A的生成多项式为:
S A ( x ) = x 6 + x 5 + x 3 + x 2 + 1 S_A(x)=x^6+x^5+x^3+x^2+1 SA(x)=x6+<

本文在前文完成扰码器FPGA设计与Matlab验证基础上,继续实现和验证卷积编码器。介绍了卷积编码基本概念、802.11a卷积编码器原理,进行了卷积编码模块设计,并利用Matlab设计与ModelSim仿真验证,确保两者结果一致。
卷积编码器的FPGA实现与验证(含verilog代码和matlab代码)&spm=1001.2101.3001.5002&articleId=138131290&d=1&t=3&u=bfacbfe6b03b4d709f8c5ba797b1ff3c)
4275

被折叠的 条评论
为什么被折叠?



