Ldpc Encode - Decode scheme doesnt produce expected results

8 views (last 30 days)
Hi,I'm using the communication toolbox to try and see how the ldpc encode/decode module works. I'm doing it as it should work in my opinion, but I guess I have an error somewhere and it'd be great if someone could point to that :)
I'm using the following code. the multiplication of H*codeword' does indeed equal all zeros (mod 2).
After the decoding process(as the codeword is entered flawlessly, no decoding error should happen) I would expect to see the decoded message equal to msg. However, that is not the case, and I cant even connect the decoded output and the original msg, they're completely different. Could anyone tell me where am I wrong?
Thanks a lot in advance, Alex
H = dvbs2ldpc(0.5)
l = fec.ldpcenc(H);
msg = randint(1,l.NumInfoBits,2);
codeword = encode(l,msg);
H * codeword'
c = fec.ldpcdec(H);
decoded = decode(c,codeword);
decoded - msg; % should be all zeros?
  1 Comment
Ed MrTz
Ed MrTz on 10 Aug 2012
Hi, Alex!
I have the same doubt...cause I get the same results..... i don't recover the original msg when I decode.
Your post were from time ago.....did you find any theory?
THNX!!

Sign in to comment.

Answers (2)

CT
CT on 5 Nov 2012
Decode expects LLR values as inputs. Try the code below instead.
decoded = decode(c,-sign(codeword-0.5));
sum(abs(decoded-msg))

Khushboo Singh
Khushboo Singh on 27 Dec 2012
please go through this. i think its working correctly.
I = randint(1,43200);
H = dvbs2ldpc(2/3);
l = fec.ldpcenc(H);
codeword = encode(l,I);
d = fec.ldpcdec(H);
decoded = decode(d,codeword);
ans = not(xor(decoded,I)); % should be all zeros?
sparse(ans)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!