How to proceed and execute LDPC decoding using Data Structure in C
-
Hi,
I know LDPC decoding logic but i don`t have knowledge in Data Structure. Please help me How to proceed LDPC Decoding Using Data Structure in C ? Please teach me in writing coding step by step.
In that process i have been provided with a H matrix,code word like [c1, c2, c3, c4, c5, c6] =[1 0 1 0 1 1].
The received word is r=[X 0 1 X 1 1], where X = missing bits. c1 and c4 are missing bits, i need to find missing bits using tanner graph.
In tanner graph, there are two nodes : Check Nodes and Variable Nodes
#Variable-nodes: Correspond to bits of the codeword or equivalently, to columns of the parity check matrix.
There are n v-nodes
#Check-nodes: Correspond to parity check equations or equivalently, to rows of the parity check matrix. Also known as constraint nodes.
There are m = (n-k) c-nodes.STEPS :
c4 bit is recovered first and then c1 bit is recovered. Total 2 iterations are used.- Messages are passed from variable nodes to check nodes. At check nodes they are processed and the results are stored
using the constraint c3^c4^ c6=0, we calculate the value of c4.
- Update the values at variable nodes, Messages (value of c4 ) are passed from check nodes to variable nodes
3.Updated messages are again transferred from variable nodes to check nodes.
Using constraint: c1^c2^c3^c4=0
Value of c1 is calculated
4. Values are updated at variable nodes, Message (value of c1) is passed from check nodes to variable nodes
Finally, missing bits are identified -
Hi,
I know LDPC decoding logic but i don`t have knowledge in Data Structure. Please help me How to proceed LDPC Decoding Using Data Structure in C ? Please teach me in writing coding step by step.
In that process i have been provided with a H matrix,code word like [c1, c2, c3, c4, c5, c6] =[1 0 1 0 1 1].
The received word is r=[X 0 1 X 1 1], where X = missing bits. c1 and c4 are missing bits, i need to find missing bits using tanner graph.
In tanner graph, there are two nodes : Check Nodes and Variable Nodes
#Variable-nodes: Correspond to bits of the codeword or equivalently, to columns of the parity check matrix.
There are n v-nodes
#Check-nodes: Correspond to parity check equations or equivalently, to rows of the parity check matrix. Also known as constraint nodes.
There are m = (n-k) c-nodes.STEPS :
c4 bit is recovered first and then c1 bit is recovered. Total 2 iterations are used.- Messages are passed from variable nodes to check nodes. At check nodes they are processed and the results are stored
using the constraint c3^c4^ c6=0, we calculate the value of c4.
- Update the values at variable nodes, Messages (value of c4 ) are passed from check nodes to variable nodes
3.Updated messages are again transferred from variable nodes to check nodes.
Using constraint: c1^c2^c3^c4=0
Value of c1 is calculated
4. Values are updated at variable nodes, Message (value of c1) is passed from check nodes to variable nodes
Finally, missing bits are identifiedYou already posted this at How to proceed and execute LDPC decoding using tanner graph[^] and Need Source Code for Decoding _Using algorithm - C / C++ / MFC Discussion Boards[^] and received some suggestions.
-
Hi,
I know LDPC decoding logic but i don`t have knowledge in Data Structure. Please help me How to proceed LDPC Decoding Using Data Structure in C ? Please teach me in writing coding step by step.
In that process i have been provided with a H matrix,code word like [c1, c2, c3, c4, c5, c6] =[1 0 1 0 1 1].
The received word is r=[X 0 1 X 1 1], where X = missing bits. c1 and c4 are missing bits, i need to find missing bits using tanner graph.
In tanner graph, there are two nodes : Check Nodes and Variable Nodes
#Variable-nodes: Correspond to bits of the codeword or equivalently, to columns of the parity check matrix.
There are n v-nodes
#Check-nodes: Correspond to parity check equations or equivalently, to rows of the parity check matrix. Also known as constraint nodes.
There are m = (n-k) c-nodes.STEPS :
c4 bit is recovered first and then c1 bit is recovered. Total 2 iterations are used.- Messages are passed from variable nodes to check nodes. At check nodes they are processed and the results are stored
using the constraint c3^c4^ c6=0, we calculate the value of c4.
- Update the values at variable nodes, Messages (value of c4 ) are passed from check nodes to variable nodes
3.Updated messages are again transferred from variable nodes to check nodes.
Using constraint: c1^c2^c3^c4=0
Value of c1 is calculated
4. Values are updated at variable nodes, Message (value of c1) is passed from check nodes to variable nodes
Finally, missing bits are identifiedCan I ask do you actually know how to program in C at all? With your last question about tanh and now this I am really suspecting not or you are a student and this is homework for like a communications unit. All you have to do is translate that text to code (start with pseudocode if you like). Here let me do step 1 and solve c4 it's 1 line of C code
if (c3^1^c6 == 0) c4 = 1; else c4 = 0;
That assumes c3,c4,c6 etc are int's or something I can run the logical operator on but you haven't even told us that detail but you want us to write some code. For now lets just treat it as pseudocode. So code written that is the solution to step 1, we have c4 evaluated. Now you try Step 2 it is a simple shuffle of c4 from above back into the nodes but we don't know what you have the data in. So how about you have a crack at writing the code and show us. Even if it's not working I can at least see how you have the nodes setup. I don't even care about the types for now just write the variables c4 is adjusting. Lets give you Step 3.
if (1^c2^c3^c4 == 0) c1 = 1; else c1 = 0;
Step 4 is another simple shuffle just needs some code which will be similar to Step 2 and you then have pseudocode to the entire problem.
In vino veritas
-
Can I ask do you actually know how to program in C at all? With your last question about tanh and now this I am really suspecting not or you are a student and this is homework for like a communications unit. All you have to do is translate that text to code (start with pseudocode if you like). Here let me do step 1 and solve c4 it's 1 line of C code
if (c3^1^c6 == 0) c4 = 1; else c4 = 0;
That assumes c3,c4,c6 etc are int's or something I can run the logical operator on but you haven't even told us that detail but you want us to write some code. For now lets just treat it as pseudocode. So code written that is the solution to step 1, we have c4 evaluated. Now you try Step 2 it is a simple shuffle of c4 from above back into the nodes but we don't know what you have the data in. So how about you have a crack at writing the code and show us. Even if it's not working I can at least see how you have the nodes setup. I don't even care about the types for now just write the variables c4 is adjusting. Lets give you Step 3.
if (1^c2^c3^c4 == 0) c1 = 1; else c1 = 0;
Step 4 is another simple shuffle just needs some code which will be similar to Step 2 and you then have pseudocode to the entire problem.
In vino veritas
Thanks leon de boer. As per your guidelines, i will start writing the codes.