卷积编码是现代数字通信系统中常见的一种前向纠错码,区别于常规的线性分组码,卷积编码的码字输出不仅与当前时刻的信息符号输入有关,还与之前输入的信息符号有关。下面,笔者将简要分析一下卷积编码的原理以及相应的实现方法。忽然想起笔者开始写优快云博客的初衷,一者为了总结之前做过的东西,记录一些关键点,防止以后遗忘,依稀记得老师曾言,好记性比不过烂笔头,道理如是;二者,碰到同样问题的读者,倘若能够侥幸看到这些博客,从中有所收获,这对笔者来说是非常值得高兴的事了。闲话少说,唠正经的。
1. 卷积编码的原理
卷积码的编码分为两类:前馈和反馈,在每类中又可分为系统和非系统形式。我们这里只考虑非系统形式的前馈编码器。
上图是WLAN 802.11a协议中采用的卷积编码器结构,输入比特k=1,输出n=2,存储器长度m=6,编码输出不仅与当前输入有关,还与存储器存储的之前的输入数据有关,具体由之前的哪些数据得到编码输出呢,由生成多项式确定其连接关系。这里,生成多项式为g0=133(八进制)和g1=171(八进制)(右边是最高位),输出数据A的生成多项式为:
输出数据B的生成多项式为:
生成多项式确定了卷积编码器输出的连接关系。根据多项式的系数,在相应项进行连接。生成多项式写成二进制序列的形式分别为:g0 = [1 0 1 1 0 1 1]和g1 = [1 1 1 1 0 0 1](右边是最高位)。我们假设信息序列u,两个编码器输出序列分别为v(0)和v(1),编码器可以看成一个线性系统,系统的信道响应脉冲最多持续m+1个时间单元,编码输出可以写成编码输入与信道脉冲响应的卷积(即生成多项式),即
其中需要注意的是,所有的加法都是模2加运算。
2. MATLAB实现
function coded_bits = tx_conv_encoder(in_bits, ConvCodeGenPoly)
% 卷积编码
% in_bits: 输入未经编码的信息比特
% ConvCodeGenPoly: 卷积编码的生成多项式
% coded_bits: 编码后的

本文介绍了卷积编码在数字通信系统中的应用,详细阐述了卷积编码的基本原理,并提供了MATLAB和FPGA两种实现方式的详细步骤,旨在帮助读者理解和掌握这一关键技术。
最低0.47元/天 解锁文章
209

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



