note 2020-12-31 20:59 写到这里我已经看不懂了,很可能哪些地方说错了,请指出。
https://app.yinxiang.com/shard/s59/res/66462838-254e-4230-b07f-1d8635f05379/CamScanner 12-31-2020 19.28(1).pdf
这份教材里好像有些地方有错,比如例11-29 我觉得是(3,1,3)卷积码。我做的笔记的有些地方可能写错了。
刚刚学完,这东西最好理解的方式就是把那个编码器结构图看明白就弄懂它在说什么了。
该编码器有n个输出,这n个输出不仅和当前的进入的k个输入有关,还和过去的m个输入有关。用到了mk级寄存器。
最常见的就是k=1(k!=1的情况这里不打算研究,这篇文章讨论的k默认是1),一次进来一位,(最老的那一位被抵没了)一次进来k位,最老的那k位被抵没了。
就像m序列你只要看懂那个编码器结构图大概就弄懂了。
https://upload.wikimedia.org/wikipedia/commons/9/99/Lfsr.gif
例题里面没有给卷积码解码相关的问题。
简单说一下:
卷积码解码有代数译码法和概率译码法。代数译码。
概率译码法,即最大似然译码法。包括维特比算法和另一个人名算法。
我联想到的是这个:实际上,如果__在二元对称无记忆信道中____,最大似然译码法则 和 最小距离译码准则 等价。所以操作时其实在按照最小距离译码准则在做。
实际做的就是在\(O(2^{不知道怎么说,我在下面示意一下})\)个长度是\(nW\)(编码器在W个工作周期中每个周期输出n位卷积码)码片中找到一个卷积码码片和你接收到的那个长度(nW)码片汉明距离最小。
与其说是找码片,不如说是你在找它是怎么在网格图上走的。
拿上面这个网格图举例子:
初始的寄存器00状态(a状态)的话
2,4,8,16,32,64,128,256,512,......
稳态后就成了(所以我真的不知道如何表述,不知道。。。。)
8, 16,32,64,128,256,512,1024,......
这个一般人想到的做法是暴力搜索,
或者剪枝,
或者是有艺术的剪枝
考试的时候当然是人脑,笔,纸怎么快怎么来
附录
k!=1的更一般的情况下的编码器结构看这里
例题
我好像把剪枝和DP弄混了,,,
维基百科告诉我viterbi算法说白了就是个DP
如何通俗地讲解 viterbi 算法? - 路生的回答 - 知乎
https://www.zhihu.com/question/20136144/answer/763021768
viterbi算法改进版有lazy viterbi
例题给的答案不一定对