Content deleted Content added
Fix typos and link |
SpiralSource (talk | contribs) Adding short description: "Array for a particular vector space" |
||
(30 intermediate revisions by 22 users not shown) | |||
Line 1:
{{Short description|Array for a particular vector space}}
In [[coding theory]], a '''standard array''' (or Slepian array) is a <math>q^{n-k}</math> by <math>q^{k}</math> array that lists all elements of a particular <math>\mathbb{F}_q^n</math> [[vector space]]. Standard arrays are used to [[Decoding methods|decode]] [[linear code]]s; i.e. to find the corresponding [[Code word (communication)|codeword]] for
== Definition ==
A standard array for an [''n'',''k'']-code is a <math>q^{n-k}</math> by <math>q^{k}</math> array where:
# The first row lists all [[Code word (communication)|codewords]] (with the <u>0</u> codeword on the extreme left)
# Each row is a [[coset]] with the [[coset leader]] in the first column
# The entry in the i-th row and j-th column is the sum of the i-th coset leader and the j-th codeword.
For example, the [
{| class="wikitable"
|-
| <u>[[Zero vector|0]]</u>
| 01101
| 10110
Line 54 ⟶ 55:
|}
The above is only one possibility for the standard array; had 00011 been chosen as the first [[coset leader]] of weight two, another standard array representing the code would have been constructed.
== Constructing a standard array ==
Line 67 ⟶ 68:
# Repeat steps 2 and 3 until all rows/cosets are listed and each vector appears exactly once.
=== Construction
Let <math>C</math> be the [[Binary code|binary]] [4,2]-code. i.e. C = {0000, 1011, 0101, 1110}. To construct the standard array, we first list the codewords in a row.
{| class="wikitable"
Line 109 ⟶ 110:
| 0011
| 1101
|
|}
Line 124 ⟶ 125:
| 0011
| 1101
|
|-
| 0100
Line 137 ⟶ 138:
|}
== Decoding via standard array ==
Line 143 ⟶ 144:
To decode a vector using a standard array, subtract the error vector - or coset leader - from the vector received. The result will be one of the codewords in <math>C</math>. For example, say we are using the code C = {0000, 1011, 0101, 1110}, and have constructed the corresponding standard array, as shown from the example above. If we receive the vector 0110 as a message, we find that vector in the standard array. We then subtract the vector's coset leader, namely 1000, to get the result 1110. We have received the codeword 1110.
Decoding via a standard array is a form of [[nearest neighbour decoding]]. In
== See also ==
▲Note that decoding via standard array does not guarantee that all vectors are decoded correctly. If we receive the vector 1010, using the standard array above would decode the message as 1110, a codeword distance 1 away. However, 1010 is also distance 1 away from the codeword 1011. In such a case some implementations might ask for the message to be resent. This ambiguity is another reason that different decoding methods are sometimes used.
* [[Linear code]]
== References ==
*{{cite book
|last = Hill
|first = Raymond
|author-link = Raymond Hill (computer scientist)
|title = A First Course in Coding Theory
|url = https://archive.org/details/firstcourseincod0000hill
|url-access = registration
|publisher = [[Oxford University Press]]
|series = Oxford Applied Mathematics and Computing Science series
|year = 1986
|isbn = 978-0-19-853803-5}}
[[Category:Coding theory]]
|