Vector LDPC:硬判决译码算法

Vector LDPC:硬判决译码算法,vector,decode,Vector,Decode,我正在使用位翻转解码[硬判决]进行一位翻转 我遵循了以下H_矩阵:“对于位翻转算法,沿着Tanner图边缘传递的消息也是二进制的:位节点发送一条消息,声明它是1还是0,每个检查节点向每个连接的位节点发送一条消息,根据检查节点可用的信息声明位的值 如果输入位值的模2和为零,则检查节点确定满足其奇偶校验方程。如果bit节点接收的大多数消息与其接收值不同,则bit节点将更改(翻转)其当前值。重复此过程,直到满足所有奇偶校验方程 正确的码字=[10010101] H矩阵[4][8]={0,1,0,1,1

我正在使用位翻转解码[硬判决]进行一位翻转

我遵循了以下
H_矩阵
:“对于位翻转算法,沿着Tanner图边缘传递的消息也是二进制的:位节点发送一条消息,声明它是1还是0,每个检查节点向每个连接的位节点发送一条消息,根据检查节点可用的信息声明位的值

如果输入位值的模2和为零,则检查节点确定满足其奇偶校验方程。如果bit节点接收的大多数消息与其接收值不同,则bit节点将更改(翻转)其当前值。重复此过程,直到满足所有奇偶校验方程

正确的
码字=[10010101]

H矩阵[4][8]={0,1,0,1,1,0,0,1},{1,1,1,0,0,1,0,0},{0,0,1,0,0,0,1,1},{1,0,0,1,1,1,0,1}

ReceivedCodeWord[8]={1,0,1,1,0,1}//错误代码字

我需要得到
[10010101]
,但是我得到
[10010001]
receivedDoward[8]={1,0,1,1,0,1}

但对于其他可能收到的德沃德,我的回答是正确的

e、 g.收到Deword
[0000101]
我得到了正确的码字
[10010101]
ReceivedDoward
[11010101]
我得到了正确的码字[10010101]

疑问:为什么对于
ReceivedCodeWord{1,0,1,1,0,1,0,1}
我得到了
[10010001]
,这是完全错误的。请给我解释一下

这是


谢谢

这是由您使用的线性块代码引起的。首先,该码不是LDPC码,因为
H
martix不满足行-列约束(例如,第3列和第6列在两个相同位置有1)

(1)当收到
{1,0,1,1,0,1,0,1}
时,校验和为
{0,1,1,0}
。如果使用多位翻转解码算法,这意味着在一次迭代中可以翻转多个位,第3个变量节点和第6个变量节点将一起翻转,因为它们都连接两个未满足的检查节点,那么第一次迭代后的结果将是
{1,0,0,1,0,0,0,1}
。在第二次迭代期间,校验和仍然是
{0,1,1,0}
,因此第3个变量节点和第6个变量节点将再次翻转,此过程将在以后的迭代中重复


(2)此代码的最小汉明距离为2,因此此代码可以检测1个错误并更正0.5个错误。即使使用单比特翻转解码算法,也有50%的概率将接收到的码字
{1,0,1,1,0,1}
解码为另一个有效码字
{1,0,1,1,0,0,0,1}

谢谢。很抱歉反应太晚;)