mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -04:00 
			
		
		
		
	
		
			
	
	
		
			86 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|  | <HTML><HEAD> | ||
|  | 
 | ||
|  | <TITLE> Linear Dependence in Parity Check Matrices </TITLE> | ||
|  | 
 | ||
|  | </HEAD><BODY> | ||
|  | 
 | ||
|  | 
 | ||
|  | <H1> Linear Dependence in Parity Check Matrices </H1> | ||
|  | 
 | ||
|  | <P>If a code is specified by means of a <I>M</I> by <I>N</I> parity | ||
|  | check matrix, <B>H</B>, in which some rows are linearly dependent - a | ||
|  | situation that is usually avoided - it would be possible to map more | ||
|  | than the usual <I>K=N-M</I> message bits into a codeword, since one or | ||
|  | more rows of <B>H</B> could have been deleted without affecting which | ||
|  | bit vectors are codewords. | ||
|  | 
 | ||
|  | <P>However, this software does not increase the number of message bits | ||
|  | in this case, but instead produces a generator matrix in which some | ||
|  | rows are all zero, which will cause some bits of the codeword to | ||
|  | always be zero, regardless of the source message.  Referring to the <A | ||
|  | HREF="encoding.html#gen-rep">description of generator matrix | ||
|  | representations</A>, this is accomplished by partially computing | ||
|  | what would normally be <B>A</B><SUP><SMALL>-1</SMALL></SUP> (for a | ||
|  | dense or mixed representations) or the <B>L</B> and <B>U</B> matrices | ||
|  | (for a sparse representation), even though singularity prevents this | ||
|  | computation from being carried out fully. | ||
|  | 
 | ||
|  | <P><B>Example:</B> The parity check matrix created below is redundant, | ||
|  | since the 10100 row is equal to the sum of the 11000 and 01100 rows. | ||
|  | <UL><PRE> | ||
|  | <LI>make-pchk dep.pchk 4 5 0:0 0:1 1:1 1:2 2:0 2:2 3:3 3:4 | ||
|  | <LI>print-pchk -d dep.pchk | ||
|  | 
 | ||
|  | Parity check matrix in dep.pchk (dense format): | ||
|  | 
 | ||
|  |  1 1 0 0 0 | ||
|  |  0 1 1 0 0 | ||
|  |  1 0 1 0 0 | ||
|  |  0 0 0 1 1 | ||
|  | 
 | ||
|  | <LI>make-gen dep.pchk dep.gen dense | ||
|  | Note: Parity check matrix has 1 redundant checks | ||
|  | Number of 1s per check in Inv(A) X B is 0.2 | ||
|  | <LI>print-gen dep.gen | ||
|  | 
 | ||
|  | Generator matrix (dense representation): | ||
|  | 
 | ||
|  | Column order (message bits at end): | ||
|  | 
 | ||
|  |    0   1   3   2   4 | ||
|  | 
 | ||
|  | Inv(A) X B: | ||
|  | 
 | ||
|  |  0 | ||
|  |  0 | ||
|  |  1 | ||
|  |  0 | ||
|  | </PRE></UL> | ||
|  | The generator matrix above can be used to encode message blocks containing | ||
|  | one bit.  This message bit is copied unchanged to the last bit (numbered 4)  | ||
|  | of the codeword, and the first four bits of the codeword are set by multiplying | ||
|  | this message bit (seen as a vector of length one) by  | ||
|  | <B>A</B><SUP><SMALL>-1</SMALL></SUP><B>B</B>, shown above, and then | ||
|  | storing the results in positions given by the column ordering. | ||
|  | The result is that bit 3 of the codeword produced is | ||
|  | also set to the message bit, and bits 0, 1, and 2 are set to zero. | ||
|  | 
 | ||
|  | <P>Which bits are used for message bits, and which bits are fixed at | ||
|  | zero, depends on arbitrary choices in the algorithm, which may differ | ||
|  | from one encoding method to another.  No attempt is made to make the | ||
|  | best choice. | ||
|  | 
 | ||
|  | <P>Note that codeword bits that are always zero can arise even when <B>H</B> | ||
|  | does not have linearly dependent rows.  For example, if a row of <B>H</B> | ||
|  | has just one 1 in it, the codeword bit at that position must be zero in any | ||
|  | codeword.  The way the software handles parity check matrices with less | ||
|  | than <I>M</I> independent rows is equivalent to adding additional rows | ||
|  | to <B>H</B> in which only one bit is 1, in order to produce <I>M</I>  | ||
|  | independent checks. | ||
|  | 
 | ||
|  | <HR> | ||
|  | 
 | ||
|  | <A HREF="index.html">Back to index for LDPC software</A> | ||
|  | 
 | ||
|  | </BODY></HTML> |