RELEASE 1.1 - 05/5/2002 It has almost been a year since the toolkit's first release and I finally managed to find some time to improve the toolkit a wee bit. In release 1.1, the toolkit includes a "decode_ldpc_log()" function that implements LDPC decoding in the log domain. This works a lot faster than the probability domain decoding implemented in release 1.0. This function takes the same parameters as the function "decode_ldpc" in the previous release. Function usage examples can be found in my hastily thrown together tutorial, the links to which can be found at the bottom of this page Also the "bpsk()" function used for modulation, maps bit 0 to '1' and bit 1 to '-1' which is the general practice. The mapping was done the other way in the first release of the software. Click the links below to download the two new files. Click here ( ldpc_toolkit_1_1.zip, ldpc_toolkit_1_1.tar.gz) to download the entire package.1.decode_ldpc_log.m 2.bpsk.m WARNING: Do not use the 'decode_lpdc_log' function along with the 'bpsk' function of release 1. The other functions are the same in both versions and do not present a problem. RELEASE 1.0 - 07/27/2001 The Matlab toolkit contains the following functions
that can be used by students to understand and implement Low Density Parity
Check Codes.
1. gen_ldpc(rows,cols)
2. rref_GF2(parity_check_matrix) 3. rearrange_cols(parity_check_matrix) 4. inv_GF2(A) 5. mul_GF2(A,B) 6. reorder_bits(u1,rearranged_cols) 7. bpsk(codeword,amplitude); 8. awgn(tx_waveform,No) 9. decode_ldpc(rx_waveform,No,1,h,scale) 10.extract_mesg(vhat,rearranged_cols) This software is not
very fast when the block size of the codes becomes large. This has not
been implemented with the most efficient
algorithm for encoding and decoding the codes. The software has been implemented
in the simplest and most direct manner possible so that it is easier
to look at the code and understand the implementation issues. For a rate
1/2 code with a block size of 1000, I was only able to run a few 1000 blocks/day
on a Sun Ultra 5 when the error rate was pretty high. This is because the
software iterates a maximum of 1000 times whenever there is a code-word
error. If the parity check matrix is big, it takes long time because each
iteration updates around 6 quantities associated with each entry in the
parity check matrix. So if you want to run a couple of million bits for
a large block size at a high error rate...you better have a lot of
patience.
The functions in this
release do not check for 'function argument errors'. For example, if you
use the mul_GF2() functions and pass matrices with
Since this is the first release of the toolkit, the program might have bugs. Email me if you find any bugs or if you have any suggestions or if you just have any questions. If you are the hiring manager of a Telecomm company, I just want you to know that I am available for work from Dec. 2001.;-) The software is divided into 4 parts .Click
on the links to browse through the short tutorial I prepared. This tutorial
is
Software Download and Download instructions This software is freely distributed without any warranty. The software may contain bugs and has not been extensively tested for use in critical research or commercial applications. The user is solely responsible for use of this software. |