帮我指点一下viterbi译码软判决的思路,谢谢!
1、如果是发二进制,收多进制的情况,需要量化处理,大多数资料认为8级量化被认为是代表着性能和复杂度之间的良好折衷;然后依此求分支度量和路径度量,然后再比较译码,比如卷积编码之后进行bpsk调制,到接收端进行bpsk解调,对解调输出进行量化,然后进行软判决的译码,这种思路我完全可以理解和接受。
2、如果不是发二进制呢,那如何来实现软判决译码呢?比如卷积编码之后,进行映射,进行8psk,16qam,32qam等高阶调制,到接收端进行解调,解调后的数据如何进行软判决译码?如果是硬判决,我完全可以理解和接受。但是如果用软判决在这种情况下,我就不知道该如何下手,我理解的两种思路:
(1)、不进行量化,直接将解调后的数据和星座图上的星座点比较,求相应的欧式距离作为分支度量和路径度量,然后译码,这种思路我感觉理论上行得通,但是实现上是不是很难,因为译出来的是星座点,还必须转化成比特流,我心里没底,不知道可行不可行?
(2)、首先将解调输出的数据进行转化,比如16qam,将解调输出的数据转化成4个未量化的值分别对应该星座点的四个比特,然后就是将其视为1的情况,进行软判决译码,后面就可以解决了,这个思路是不是比较可行?
不知道实际工程中到底是怎么实现的,请大侠帮我指点一下,让我少走些弯路,谢谢!
如果有更好的思路,那我就更要拜谢了!
大侠,随便说几句啥,谢谢了!
decoding 是要结合 coding 的方式来做吧
感觉你的(2)只是作了解调
coding 是(2,1,7)的卷积编码
那就按卷积码来decoding贝
所谓的调制方式不管是2D,1D 只是一个映射而已,把符号看成一个数就可以了
如果是割裂了一个码字对各个符号分别做判决再综合起来在汗明距离上做码字的判决就是硬判决
如果是尽可能多利用软信息直接在欧式空间做码字的整体判决就是软判决
你的意思是按照我原贴中的2-(1)的意思做?
那就按卷积码来decoding贝
所谓的调制方式不管是2D,1D 只是一个映射而已,把符号看成一个数就可以了
如果是割裂了一个码字对各个符号分别做判决再综合起来在汗明距离上做码字的判决就是硬判决
如果是尽可能多利用软信息直接在欧式空间做码字的整体判决就是软判决
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
那么判决出来的码字是不是还要转化成比特流?
我看了802.11a的程序代码,里面的viterbi译码就是按照我原贴说的2-(2)来实现软判决的,不知道工程上到底该用哪一种好?
一个码字就是Kbit 经过 编码后得到的Lbit序列称做一个码字
然后码字经过调制(1-1映射)变成一串符号,成形后发出去
如果是对符号序列的整体在欧式空间做判决就是软判决
否则把符号序列割裂分别判决然后在汉明空间做整体判决就是硬判决
这是偶的理解
2是硬判决吧...
802.11a里的注释是:soft-decision
我是认为按照我原贴的2-1,也就是你说的软判决方式,译出来的是星座点,就不知道工程上是不是这么使用的。。。。
因为我要理论确认后,就要自己编写代码尝试一下,不想老看别人的代码了。。。。
软判决和调制方式(QPSK还是高QAM)没有矛盾。
高阶调制和BPSK同样可以用软判决,比如16QAM的话4个原始bit分别软判成为多比特的软信息,再输入viterbi译码器。
那就是我原贴中的2-(2)的思路了,是不是?
能否再给确认一下,大虾?
谢谢!
我实在看不明白你原帖的那些描述。
2-(2)中你的叙述:“将解调输出的数据转化成4个 未量化的值 分别对应该星座点的四个比特”,“未量化的值”按我的理解是硬判决而不是软判决,因为软判决的输出结果都是多比特量化的。
我原贴的意思是:
比如16qam,发送端4个比特b0b1b2b3映射为一个星座点,比如0000-〉1+j*`1,经过传输,解调后得到0.9+j*1.1,那么在译码之前,必须先根据0.9+j*1.1,求出原来的b0,b1,b2,b3 此时所对应的未量化值,例如b0->0.9,b2->1.1.....,然后再进行量化,编码成多比特,然后求branch metric,path metric,然后译码。。。。
是这样吗?
对啊
谢谢!
因为我不敢确定,我看到有人说直接将接收到点a+j*b和星座图上的各点(x+j*y)求欧式距离sqrt((a-x)^2+(b-y)^2),作为branch metric,再求path metric就可以译码,我很汗啊!因为这样感觉理论上也是可以的,就是译出来的是星座点符号,必须还要在转换成比特,我自己没有做过,也没看见哪个例程是这么做的,所以就不敢肯定了。
倒是你说的那种方式我在802.11a的网上例程里见过,也能接受,所以就将二者拿出来问一下大虾们。。。。。
恩,这样是软判决的
能利用0.9+1.1j最好了,量化越多软信息利用就越充分,如果判决成四个比特就是硬判决了
给人感觉是你前面中的2是硬判决
突然又发现问题了,如果是高阶调制的话,在前面所讨论的基础上,如何量化呢?
不会同bpsk一样吧?
因为16qam可是i,q轴都是四个值啊。。。。
大虾再指点一下,谢谢!
你的原帖中的第一个说法是软判决的,第二个说法我没有看清楚。
按照你给的环境(16QAM,(2,1,7)CC),理想的软判决解法中,篱笆图每个列
有 16^4 个结点,每个结点有四组出和入的连线。而在计算路径测度的时候,
对于每一个新的接收符号,会算出 16 个测度。然后在做 加|比较|选择 算法时,
每个节点采用的是这 16 个测度中的四个...
显然,这个做法,复杂度十分庞大...
所以,不妨讨论一下,到底什么是软判决。事实上,硬判决译码有明确的意义,就是
假装信道编码不存在,直接选择判决门限得到判决的比特,然后进行解码。而软判决
译码的定义,其实并不完全明确,因为,软,可以有各种软。
——以欧式距离作为输出,是一种软信息;以似然比作为输出,也是一种软信息;以
判决置信度矢量作为输出,也是一种可能的方式...
——所以,你的问题,其实可以表述为:在工程可实现性的约束下,那种“非理想”
的软判决译码是值得采用的。
不过,呵呵,我也就只能说到这里。后面具体的做法,其实还和星座映射方式都有
牵连,不是我能解释得清楚的。
.55
大侠怎么考虑17394?
国内的博士过剩了... -_______-b
对于矢志研究工作的,那么还好说。
——如果只是为了谋职而读博,这并不见得是个好想法...
.55
.55
做物理层算法的应该挺容易找工作啊,当然,把算法和硬件实现看成是独立的两码事是
很狭隘的,我一直认为,不了解如何实现,算法的理解也是肤浅的
你的问题其实和viterbi解码无关
你要了解的如何解映射,或者说如何得到软信息
其实,欧式距离是一种软信息,汉明距离也是一种软信息.
对于高阶调制,目前常用的是2-(2)中的方法吧,先进行解调&软判决,得到每一位的软判决序列,然后进入译码器。
译码器里面通常会有个解交织,然后计算一个欧式距离,然后在进行加比选之类的。
其实如果对于16QAM调制,先分成IQ两路,这样每路上有两个比特的信息,可以对译码器进行改造,不需要分解出每路上的两个比特的信息,把这两个比特作为一个整体进行计算欧式距离。
一开始是想简单的设计个软判决的viterbi译码器就可以了,因为前段时间已经把定时恢复设计完了,后来就发现如此一堆问题,看来软判决并不是那么简单的通过教材上简单的例子就可以解决的,等我把viterbi译码器设计完再理一理,关于量化软判决对译码的影响这个问题应该可以独立研究,斑竹你觉得呢?谢谢!
呵呵,这个问题是可以独立出来的,本身就是比较麻烦的事情...
——就连 8PSK 这样的信号做起来都需要做些近似,更高的星座图就更复杂了... hehe..
.55
相关文章:
- 求助,卷积码的软判决维特比译码的matlab仿真!(05-08)
- 问一个STBC检测判决的问题.(05-08)
- 请问通过复瑞利衰落信道如何判决(05-08)
- 载波相位估计中,面向判决和非面向判决环(05-08)
- 谁给详细地讲讲软判决和硬判决译码?(05-08)
- 请教怎样确定MASK里面的判决门限值(05-08)