卷积编码和维特比译码

这篇具有很好参考价值的文章主要介绍了卷积编码和维特比译码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


卷积编码

卷积码是一种非分组码,通常适用于前向纠错。在分组码中,编码器产生的 n 个码元的一个码组,完全决定于这段时间中 k 比特输入信息。这个码组中的监督位仅监督本码组中 k 个信息位。卷积码在编码时虽然也是把 k 比特的信息段编成 n 个比特的码组,但是监督码元不仅和当前的 k 比特信息段有关,而且还同前面 m = (N -1) 个信息段有关,所以一个码组中的监督码元监督着N个信息段。通常将 N 称为编码约束度,并将 nN 称为编码约束长度。
一般说来,对于卷积码,k 和 n 的值是比较小的整数,且 n 大于 k,将卷积码记作 (n,k,N),码率定义为 k n \frac{k}{n} nk
编码器由三种主要的元件构成,包括 Nk 级移存器,n 个模2加法器和一个旋转开关。每个模2加法器的输入端数目可以不同,它连接到一些移存器的输出端,模2加法器的输出端接到旋转开关上,旋转开关每时隙旋转一周,输出 n 比特。将时间分成等间隔的时隙,在每个时隙中有 k 比特从左端进入移存器,并且移存器各级暂存的信息向右移 k 位。
卷积编码器一般原理方框图如下图所示。
卷积编码和维特比译码
一种 (3,1,3) 卷积编码器的方框图如下图所示。
卷积编码和维特比译码
根据上面方框图有:
c i = b i {c_i}={b_i} ci=bi
d i = b i ⊕ b i − 2 {d_i}={b_i}⊕{b_{i-2}} di=bibi2
e i = b i ⊕ b i − 1 ⊕ b i − 2 {e_i}={b_i}⊕{b_{i-1}}⊕{b_{i-2}} ei=bibi1bi2
其中, b i {b_i} bi为当前输入的信息位, b i − 1 {b_{i-1}} bi1 b i − 2 {b_{i-2}} bi2为移存器存储的前两位信息。
根据 M 3 M 2 {M_3M_2} M3M2的不同,定义的状态表如下。

M 3 M 2 {M_3M_2} M3M2 对应的状态
00 a
01 b
10 c
11 d

移存器状态和输入输出码元的关系如下表所示。

移存器前一状态 M 3 M 2 {M_3M_2} M3M2 输入 b i {b_i} bi M 3 M 2 M 1 {M_3M_2M_1} M3M2M1 c i d i e i {c_id_ie_i} cidiei 移存器下一状态 M 3 M 2 {M_3M_2} M3M2
a(00) b 1 = 0 {b_1}=0 b1=0 000 000 a(00)
a(00) b 1 = 1 {b_1}=1 b1=1 001 111 b(01)
b(01) b 2 = 0 {b_2}=0 b2=0 010 001 c(10)
b(01) b 2 = 1 {b_2}=1 b2=1 011 110 d(11)
c(10) b 3 = 0 {b_3}=0 b3=0 100 011 a(00)
c(10) b 3 = 1 {b_3}=1 b3=1 101 100 b(01)
d(11) b 4 = 0 {b_4}=0 b4=0 110 010 c(10)
d(11) b 4 = 1 {b_4}=1 b4=1 111 101 d(11)

可以看到,状态a的下一状态只能是a或b,状态b的下一状态只能是c或d,状态c的下一状态只能是a或b,状态d的下一状态只能是c或d。
卷积码的几何表述可以分为码树图、状态图和网格图。
上面 (3,1,3) 卷积编码器对应的码树图如下图所示。
卷积编码和维特比译码
在码树图中,输入信息位为0,则状态向上移动,输入信息位为1,则状态向下移动。
可以看到,从第四级支路开始,码树的上半部和下半部相同,这意味着从第四个输入信息位开始,输出码元已经与第一位输入信息无关,即此编码器的约束度 N=3。而且在码树图上,通过输入信息位很容易读出编码之后的输出序列,比如输入序列为:1101,则输出序列为:111 110 010 100。读的时候,输入信息位为1则读下面支路,输入信息位为0则读上面的支路。
上面 (3,1,3) 卷积编码器对应的状态图如下图所示。
卷积编码和维特比译码
在状态图中,虚线表示输入信息位为1时状态转变的路线,实线表示输入信息位为0时状态转变的路线。
线条旁边的3位数字是编码输出比特,利用状态图也可以很容易的根据输入序列得到输出序列。读取的时候从a状态开始,输入为1读虚线上的3位作为输出,输入为0读实线上的3位作为输出,然后跳到下一状态接着读取。
上面 (3,1,3) 卷积编码器对应的网格图如下图所示。
卷积编码和维特比译码
在网格图中,虚线表示输入信息位为1,实线表示输入信息位为0。
可以看到,在第4时隙以后的网格图形完全是重复第3时隙的图形,这也反映了该卷积码的约束长度为 3。


维特比译码

维特比译码算法是维特比在1967年提出的,这种方法比较简单,计算快,故得到了广泛的应用。基本原理是:将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送信号序列。
在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。如0000和1111的汉明距离是4,0000和0101的汉明距离是2。
下面通过这个例子来说明维特比译码过程,假设发送的序列为 1101,编码之后的序列为 111 110 010 100。
由于这是一个 (n,k,N) = (3,1,3) 卷积码,发送序列的约束度 N = 3,所以首先要考察前 nN = 9 位,即 111 110 010,沿路径每一级有4种状态,每种状态只有两条路径可以到达,故4种状态共有8条到达路径,现在比较这8条路径的对应序列和接收序列 111 110 010 之间的汉明距离,列表如下。

路径 对应序列 汉明距离 幸存与否
aaaa 000 000 000 6
abca 111 001 011 4
aaab 000 000 111 7
abcb 111 001 100 5
aabc 000 111 001 6
abdc 111 110 010 0
aabd 000 111 110 5
abdd 111 110 101 3

将到达每个状态的两条路径的汉明距离作比较,将距离小的一条路径保留,称为幸存路径(surviving path)。若两条路径的汉明距离相同,则可以保留任意一条,这样就只剩下4条路径。
接下来继续考察后继三位100,计算上述四条幸存路径增加一级后的8条可能路径的汉明距离,如下表所示。

路径 原幸存路径的汉明距离 新增路径 新增距离 总距离 幸存与否
abca+a 4 aa(000) 1 5
abdc+a 0 ca(011) 3 3
abca+b 4 ab(111) 2 6
abdc+b 0 cb(100) 0 0
abcb+c 5 bc(001) 2 7
abdd+c 3 dc(010) 2 5
abcb+d 5 bd(110) 1 6
abdd+d 3 dd(101) 1 4

表中最小的汉明距离是0,对应的路径是abdcb,其对应的序列是 111 110 010 100,与输入的编码序列一致,故其对应的发送序列就是 1101,至此完成了译码。
如果序列中有少量的比特错误,也是可以完成译码的。
还是上面的这个例子,发送的序列为 1101,编码之后的序列为 111 110 010 100,假设接收到的序列中第4位和第11位发生了错误,即收到的序列为 111 010 010 110。
同样的方法列表分析,先考察前 nN = 9 位 111 010 010,比较8条路径的对应序列和接收序列 111 010 010 之间的汉明距离,列表如下。

路径 对应序列 汉明距离 幸存与否
aaaa 000 000 000 5
abca 111 001 011 3
aaab 000 000 111 6
abcb 111 001 100 4
aabc 000 111 001 7
abdc 111 110 010 1
aabd 000 111 110 6
abdd 111 110 101 4

接下来继续考察后继三位110,计算上述四条幸存路径增加一级后的8条可能路径的汉明距离,如下表所示。

路径 原幸存路径的汉明距离 新增路径 新增距离 总距离 幸存与否
abca+a 3 aa(000) 2 5
abdc+a 1 ca(011) 2 3
abca+b 3 ab(111) 1 4
abdc+b 1 cb(100) 1 2
abcb+c 4 bc(001) 3 7
abdd+c 4 dc(010) 1 5
abcb+d 4 bd(110) 0 4
abdd+d 4 dd(101) 2 6

表中最小的汉明距离是2,对应的路径仍然是abdcb,其对应的序列是 111 110 010 100,与输入的编码序列一致,故其对应的发送序列就是 1101,至此也完成了正确的译码。


以上就是卷积编码和维特比译码的所有内容了!
本文参考资料:
通信原理 / 樊昌信,曹丽娜编著文章来源地址https://www.toymoban.com/news/detail-477285.html

到了这里,关于卷积编码和维特比译码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Verilog | 维特比译码

    Viterbi 算法是基于卷积码网络图的最大似然译码算法,根据已经接收到的信息,得到最接近编码码字的一种译码码字。一般采用汉明距离作为判决指标。具有最小汉明距离和的路径就是译码的最大路径,该路径被称作幸存路径。Viterbi 译码算法步骤如下: ① 在时刻 l=L-1 之前,

    2024年02月09日
    浏览(22)
  • 信道编码---RS编码与译码原理

    本文介绍了RS编码以及译码的原理。 本文的内容基本上都来自刘梦欣的《基于FPGA的RS编译码研究与设计》,大家可以通过知网找到这篇文章,链接在下面。对RS码的原理讲解非常清楚,如果要看的话可以结合第2和第3部分一起看更好懂。我的整理也是比较粗略,因此没看懂的话

    2024年02月11日
    浏览(30)
  • BCH编码与译码(MATLAB实现)

    BCH码是由Bose、Chandhari 和 Hocquenhem 分别独立提出的一种能够纠正多个随机错误的循环码。 BCH 码的定义:给定任一有限域 GF(q)及其扩域 GF(q m )(其中 q 为素数或素数幂),m 为某一正整数,若码元取自 GF(q) 循环码的生成多项式 g(x) 的根集合 R 中有 σ-1 个连续根 α m0 , α m0+1 ,

    2024年01月20日
    浏览(33)
  • 线性分组码编码与译码(MATLAB实现)

    分组码是对信息序列分段编码。若对包含 k 个信息元的信息组 M : 按照一定的编码规则产生包括 n 个码元的码组 C : 编码规则定义为: 如果 f i (·),i = 0,1,…,n-1 均为线性函数,则称 C 为线性分组码。线性分组码一般用 (n,k,d)码表示,其中 n 为码长, k 为信息组长度,

    2024年01月15日
    浏览(25)
  • Polar码的编码思想以及SC译码算法

    1.3.1BEC信道 1.3.2信道联合极化编码思想 2009年在“IEEETransaction on Information Theory”期刊上发表论文详细地阐述了信道极化,并基于信道极化给出了一种新的编码方式,名称为极化码。从代数编码的角度来说,只要给定编码长度,极化码的编译码结构就唯一确定了;从概率编码的

    2024年02月06日
    浏览(30)
  • 【数据结构与算法】Huffman编码/译码(C/C++)

    利用哈夫曼编码进行信息通讯可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系

    2024年02月04日
    浏览(36)
  • m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件

    目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 卷积码编码 2.2 RS码编码 2.3 级联编码 2.4 解码过程 3.Verilog核心程序 4.完整算法代码文件获得 Vivado2019.2仿真结果如下:         级联码是一种通过将两种或多种纠错码结合使用来提高纠错能力的编码方案。在RS+卷积级联编码中,

    2024年02月22日
    浏览(38)
  • 火星文:一种特殊的文字编码

    火星文是一种特殊的文字编码,也称为奇文,其特点是将常见的文字进行特殊的变体处理,使得原本的文字变得难以辨认,需要特定的解码方法才能阅读。 火星文生成器 | 一个覆盖广泛主题工具的高效在线平台(amd794.com) https://amd794.com/huoxingwen 火星文最早可以追溯到20世纪初,

    2024年03月25日
    浏览(31)
  • 【论文速递】WACV 2023 - 一种全卷积Transformer的医学影响分割模型

    【论文原文】:The Fully Convolutional Transformer for Medical Image Segmentation 【作者信息】:Athanasios Tragakis, Chaitanya Kaul,Roderick Murray-Smith,Dirk Husmeier 博主 :医学图像分割、全卷积Transformer 推荐论文 :无 我们提出了一种新的transformer,能够分割不同形态的医学图像。 医学图像分析

    2024年02月08日
    浏览(34)
  • 深度学习论文解读分享之diffGrad:一种卷积神经网络优化方法

    diffGrad: An Optimization Method for Convolutional Neural Networks Shiv Ram Dubey , Member, IEEE, Soumendu Chakraborty , Swalpa Kumar Roy , Student Member, IEEE, Snehasis Mukherjee, Member, IEEE, Satish Kumar Singh, Senior Member, IEEE, and Bidyut Baran Chaudhuri, Life Fellow, IEEE Adaptive moment estimation (Adam), difference of gradient, gradient descent,

    2024年01月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包