Linear code: Difference between revisions

Content deleted Content added
m rm extra blank lines; formatting
converted to TeX some formulas which did not look good in HTML
Line 1:
In [[mathematics]], a '''(binary) linear code''' of length ''n'' > 0 and ''rank'' 0 < ''k'' < ''n'' + 1 is a [[linear subspace]] ''C'' with [[dimension (linear algebra)|dimension]] ''k'' of the [[vector space]]
 
:<math>F^n_2.</math>
:''F''<sup>''n''</sup><sub>2</sub>.
 
Aside: ''F''<sub>2</sub> = {0,1} is the [[field (mathematics)|field]] with two [[element (mathematics)|element]]s and ''F''<supmath>''n''</sup><sub>2F^n_2</submath> is the set of all [[n-tuple]]s of length ''n'' over ''F''<sub>2</sub>. Occasionally some other [[finite field]] ''F''<sub>q</sub> containing ''q'' > 2 elements is used, in which case the code is said to be a ''q''-ary code (rather than a binary code). Special exceptions to the [[adjective]] 'q-ary' are ''binary'' and ''ternary'' codes (corresponding to ''q=2'' and ''q=3'' respectively).
 
==Properties==
 
By virtue of the fact that the code is a [[subspace]] of ''F''<sup>''n''</sup>, the sum ''c<sub>1</sub> + c<sub>2</sub>'' of two codewords in ''C'' is also a codeword (ie an [[element (mathematics)|element]] of the subspace ''C''). Thus the entire code (which may be very large) to be represented as the [[span (linear algebra)|span]] of a minimal set of codewords (known as a [[basis (linear algebra)|basis]] in [[linear algebra]] terms). These basis codewords are often collated in the rows of a matrix known as a ''generating matrix'' for the code ''C''.
 
 
The subspace definition also gives rise to the important property that the minimum [[Hamming distance]] between codewords is simply the minimum [[Hamming weight]] of all codewords since:
 
:<math>d(c_1, c_2)=d(c_1+c_2, 0)\,</math>
:''d'' (''c<sub>1</sub>'' , ''c<sub>2</sub>'' ) = ''d'' (''c<sub>1</sub> + c<sub>2</sub>'' , 0 )
 
implying:
 
:<math>\min_{c_1, c_2\in C}d(c_1,c_2)=\min_{c_1, c_2\in C}d(c_1+c_2, 0)=\min_{c_1\in C}d(c_1, 0).</math>
:min<sub>'' c<sub>1</sub> , c<sub>2</sub>'' in ''C''</sub> { ''d'' (''c<sub>1</sub>'' , ''c<sub>2</sub>'' ) } = min<sub>'' c<sub>1</sub> , c<sub>2</sub>'' in ''C''</sub> { ''d'' (''c<sub>1</sub> + c<sub>2</sub>'' , 0 ) } = min<sub>'' c<sub>1</sub>'' in ''C''</sub> { ''d'' ( ''c<sub>1</sub>'' , 0 ) }
 
The motivation behind creating linear codes is to allow for [[syndrome decoding]].