Difference between revisions of "Aufgaben:Exercise 4.11: Analysis of Parity-check Matrices"
(23 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | {{quiz-Header|Buchseite= | + | {{quiz-Header|Buchseite=Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes}} |
− | [[File: | + | [[File:EN_KC_A_4_11_v2.png|right|frame|Product code described by the parity-check matrix H]] |
− | In | + | In the adjacent graphic, a product code is indicated at the top, which is characterized by the following parity-check equations: |
− | :$$p_1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_1 \oplus u_2\hspace{0.05cm}, | + | :$$p_1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_1 \oplus u_2\hspace{0.05cm},$$ |
− | p_2 = u_3 \oplus u_4\hspace{0.05cm},$$ | + | :$$p_2 = u_3 \oplus u_4\hspace{0.05cm},$$ |
− | :$$p_3 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_1 \oplus u_3\hspace{0.05cm}, | + | :$$p_3 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_1 \oplus u_3\hspace{0.05cm},$$ |
− | p_4 = u_2 \oplus u_4\hspace{0.05cm}.$$ | + | :$$p_4 = u_2 \oplus u_4\hspace{0.05cm}.$$ |
− | + | Below are given the check matrices H1, H2 and H3. To be checked: Which of the matrices correctly describe the given product code according to the equation x_=u_⋅HT assuming the following definitions: | |
− | * | + | * the code word x_=(u1,u2,u3,u4,p1,p2,p3,p4), |
− | |||
+ | * the code word x_=(u1,p1,u2,p2,u3,p3,u4,p4). | ||
− | |||
− | + | All H matrices contain fewer "ones" than "zeros". This is a characteristic of the so-called "low–density parity–check codes" (short: LDPC codes). In the case of LDPC codes relevant to practice, however, the share of "ones" is still significantly lower than in these examples. | |
− | * | + | |
− | * | + | Furthermore, note for the exercise: |
− | * | + | * An (n, k) $\underline{x} = \underline{u} \cdot \mathbf{H}^{\rm T} block code is systematic if the first k bits of the code word \underline{x}$ contains the information word u_. With the code word x_=(u1,u2,u3,u4,p1,p2,p3,p4) the parity-check matrix H must then end with a k × k diagonal matrix. |
− | * | + | |
− | :$$R \ge 1 - \frac{{\rm E}[w_{\rm | + | * A "regular code" $($with respect to the LDPC application) exists, if the Hamming weight of all rows ⇒ $w_{\rm R}$ and the Hamming weight of all columns ⇒ $w_{\rm C}$ are equal in each case. Otherwise, one speaks of an "irregular LDPC code". |
− | \hspace{0.5cm}{\rm | + | |
− | {\rm E}[w_{\rm | + | * The parity-check matrix H of a conventional linear (n, k) block code consists of exactly m=n−k rows and n columns. For LDPC codes, the requirement is m ≥ n - k. The equal sign is true if the m parity-check equations are statistically independent. |
− | \hspace{0.5cm}{\rm | + | |
− | {\rm E}[w_{\rm | + | * From the parity-check matrix H a lower bound for the code rate R can be given: |
+ | :$$R \ge 1 - \frac{{\rm E}[w_{\rm C}]}{{\rm E}[w_{\rm R}]} | ||
+ | \hspace{0.5cm}{\rm with}\hspace{0.5cm} | ||
+ | {\rm E}[w_{\rm C}] =\frac{1}{n} \cdot \sum_{i = 1}^{n}w_{\rm C}(i) | ||
+ | \hspace{0.5cm}{\rm and}\hspace{0.5cm} | ||
+ | {\rm E}[w_{\rm R}] =\frac{1}{m} \cdot \sum_{j = 1}^{ m}w_{\rm R}(j) | ||
\hspace{0.05cm}.$$ | \hspace{0.05cm}.$$ | ||
− | + | *This equation applies equally to regular and irregular LDPC codes, where for regular codes holds ${\rm E}[w_{\rm C}] = w_{\rm C}$ and ${\rm E}[w_{\rm R}] = w_{\rm R}$. | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <u>Hints:</u> | ||
+ | * This exercise belongs to the chapter [[Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes|"Basics of the Low–density Parity–check codes"]]. | ||
+ | * Reference is made in particular to the page [[Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes#Some_characteristics_of_LDPC_codes|"Some characteristics of LDPC codes"]]. | ||
− | |||
− | |||
− | === | + | ===Questions=== |
<quiz display=simple> | <quiz display=simple> | ||
− | { | + | {Which parity-check matrix describes the given product code according to the sketch above? |
|type="[]"} | |type="[]"} | ||
− | + H1 | + | + H1 given $\underline{x} = (u_1, \, u_2, \, u_3, \, u_4, \, p_1, \, p_2, \, p_3, \, p_4)$. |
− | - H1 | + | - H1 given x_=(u1,p1,u2,p2,u3,p3,u4,p4). |
− | + H2 | + | + H2 given x_=(u1,p1,u2,p2,u3,p3,u4,p4). |
− | - H3 | + | - H3 given $\underline{x} = (u_1, \, p_1, \, u_2, \, p_2, \, u_3, \, p_3, \, u_4, \, p_4)$. |
− | { | + | {For the remaining subtasks we shall always assume x_=(u1,u2,u3,u4,p1,p2,p3,p4). <br>Which statements are valid for the parity-check matrix H1? |
|type="[]"} | |type="[]"} | ||
− | + | + | + The code is systematic. |
− | - | + | - The code is regular. |
− | - | + | - For the code rate holds R>1/2. |
− | + | + | + For the code rate holds R=1/2. |
− | { | + | {What statements hold for the parity-check matrix H3? |
|type="[]"} | |type="[]"} | ||
− | - | + | - No relation between H1 and H3 is discernible. |
− | + H3& | + | + The H3 rows are linear combinations of two H1 rows each. |
− | + | + | + The four parity-check equations according to H3 are linearly independent. |
− | { | + | {Which statements apply to the code denoted by H3 ? |
|type="[]"} | |type="[]"} | ||
− | - | + | - The code is systematic. |
− | + | + | + The code is regular. |
− | + | + | + For the code rate holds R ≥ 1/2. |
− | + | + | + For the code rate holds R=1/2. |
</quiz> | </quiz> | ||
− | === | + | ===Solution=== |
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' | + | '''(1)''' Correct are the <u>solutions 1 and 3</u>: |
− | '''(2)''' | + | *With the code word definition x_=(u1,u2,u3,u4,p1,p2,p3,p4), the parity-check matrix H1 denotes the following check equations: |
− | '''(3)''' | + | :$$u_1 \oplus u_2 \oplus p_1 = 0\hspace{0.05cm},\hspace{0.3cm} |
− | '''(4)''' | + | u_3 \oplus u_4 \oplus p_2 = 0\hspace{0.05cm},\hspace{0.3cm} |
− | + | u_1 \oplus u_3 \oplus p_3 = 0\hspace{0.05cm},\hspace{0.3cm} | |
+ | u_2 \oplus u_4 \oplus p_4 = 0\hspace{0.05cm}.$$ | ||
+ | *This corresponds exactly to the assumptions made above. | ||
+ | |||
+ | *The same result is obtained for H2 and the code word definition x_=(u1,p1,u2,p2,u3,p3,u4,p4). | ||
+ | |||
+ | |||
+ | With the same code word definition x_=(u1,p1,u2,p2,u3,p3,u4,p4) the other parity-check matrices do not yield a meaningful set of equations: | ||
+ | * According to parity-check matrix H1: | ||
+ | :$$u_1 \oplus p_1 \oplus u_3 = 0\hspace{0.05cm},\hspace{0.3cm} | ||
+ | u_2 \oplus p_2 \oplus p_3 = 0\hspace{0.05cm},\hspace{0.3cm} | ||
+ | u_1 \oplus u_2 \oplus u_4 = 0\hspace{0.05cm},\hspace{0.3cm} | ||
+ | p_1 \oplus p_2 \oplus p_4 = 0\hspace{0.05cm};$$ | ||
+ | * corresponding to parity-check matrix H3: | ||
+ | :$$u_1 \hspace{-0.12cm}\oplus\hspace{-0.06cm} p_2 \hspace{-0.12cm}\oplus\hspace{-0.06cm} u_3 \hspace{-0.12cm}\oplus\hspace{-0.06cm} p_4 \hspace{-0.05cm} = \hspace{-0.05cm} 0\hspace{0.05cm},\hspace{0.15cm} | ||
+ | u_1 \hspace{-0.12cm}\oplus\hspace{-0.06cm} p_2 \hspace{-0.12cm}\oplus\hspace{-0.06cm} p_3 \hspace{-0.12cm}\oplus\hspace{-0.06cm}u_4 \hspace{-0.05cm} = \hspace{-0.05cm} 0\hspace{0.05cm},\hspace{0.15cm} | ||
+ | p_1 \hspace{-0.12cm}\oplus\hspace{-0.06cm} u_2 \hspace{-0.12cm}\oplus\hspace{-0.06cm} u_3 \hspace{-0.12cm}\oplus\hspace{-0.06cm}u_4 \hspace{-0.05cm} = \hspace{-0.05cm} 0\hspace{0.05cm},\hspace{0.15cm} | ||
+ | p_1 \hspace{-0.12cm}\oplus\hspace{-0.06cm} u_2 \hspace{-0.12cm}\oplus\hspace{-0.06cm} p_3 \hspace{-0.12cm}\oplus\hspace{-0.06cm} p_4 \hspace{-0.05cm} = \hspace{-0.05cm} 0\hspace{0.05cm}.$$ | ||
+ | |||
+ | |||
+ | '''(2)''' Correct are the <u>proposed solutions 1 and 4</u>: | ||
+ | * The code is systematic because H1 ends with a 4 × 4 diagonal matrix. | ||
+ | |||
+ | *For a regular (LDPC) code, there should be an equal number of "ones" in each row and in each column. | ||
+ | |||
+ | *The first condition is satisfied (wR=3), but not the second. Rather, there is (equally often) one "one" or two "ones" per column ⇒ E[wC]=1.5. | ||
+ | |||
+ | * For an irregular code, the lower bound for the code rate is: | ||
+ | :$$R \ge 1 - \frac{{\rm E}[w_{\rm C}]}{{\rm E}[w_{\rm R}]} | ||
+ | = 1 - \frac{1.5}{3} = 1/2 | ||
+ | \hspace{0.05cm}.$$ | ||
+ | |||
+ | * Because of the given code structure (k=4 information bits, m=4 check bits ⇒ n=8 encoded bits) the code rate can also be given in the conventional form: R=k/n ⇒ Correct is solution 4 in contrast to answer 3. | ||
+ | |||
+ | |||
+ | |||
+ | '''(3)''' The H3 rows result from linear combinations of H1 rows: | ||
+ | * The first H3 row is the sum of row 1 and row 4. | ||
+ | |||
+ | * The second H3 row is the sum of row 2 and row 3. | ||
+ | |||
+ | * The third H3 row is the sum of row 1 and row 3. | ||
+ | |||
+ | * The fourth H3 row is the sum of row 2 and row 4. | ||
+ | |||
+ | |||
+ | By linear combinations, the four linearly independent equations with respect to H1 now become four linearly independent equations with respect to H3 <br>⇒ Therefore, the <u>proposed solutions 2 and 3</u> are correct. | ||
+ | |||
+ | |||
+ | '''(4)''' Here, <u>solutions 2, 3, and 4</u> are correct: | ||
+ | * If the code described by H3 were systematic, H3 should end with a 4 × 4 diagonal matrix. This is not the case here. | ||
+ | |||
+ | * The Hamming weights of all rows are equal (wR=4) and also all columns each have the same Hamming weight $(w_{\rm C} = 2)$ ⇒ the code is regular. | ||
+ | |||
+ | * This gives R ≥ 1 - 2/4 = 1/2 for the code rate. | ||
+ | |||
+ | *But since the four rows of H3 also describe four independent equations, the equal sign ⇒ R=1/2 also holds. | ||
{{ML-Fuß}} | {{ML-Fuß}} | ||
Line 76: | Line 142: | ||
− | [[Category: | + | [[Category:Channel Coding: Exercises|^4.4 Low–density Parity–check Codes^]] |
Latest revision as of 18:20, 19 December 2022
In the adjacent graphic, a product code is indicated at the top, which is characterized by the following parity-check equations:
- p1 = u1⊕u2,
- p2=u3⊕u4,
- p3 = u1⊕u3,
- p4=u2⊕u4.
Below are given the check matrices H1, H2 and H3. To be checked: Which of the matrices correctly describe the given product code according to the equation x_=u_⋅HT assuming the following definitions:
- the code word x_=(u1,u2,u3,u4,p1,p2,p3,p4),
- the code word x_=(u1,p1,u2,p2,u3,p3,u4,p4).
All H matrices contain fewer "ones" than "zeros". This is a characteristic of the so-called "low–density parity–check codes" (short: LDPC codes). In the case of LDPC codes relevant to practice, however, the share of "ones" is still significantly lower than in these examples.
Furthermore, note for the exercise:
- An (n, k) x_=u_⋅HT block code is systematic if the first k bits of the code word x_ contains the information word u_. With the code word x_=(u1,u2,u3,u4,p1,p2,p3,p4) the parity-check matrix H must then end with a k×k diagonal matrix.
- A "regular code" (with respect to the LDPC application) exists, if the Hamming weight of all rows ⇒ wR and the Hamming weight of all columns ⇒ wC are equal in each case. Otherwise, one speaks of an "irregular LDPC code".
- The parity-check matrix H of a conventional linear (n, k) block code consists of exactly m=n−k rows and n columns. For LDPC codes, the requirement is m≥n−k. The equal sign is true if the m parity-check equations are statistically independent.
- From the parity-check matrix H a lower bound for the code rate R can be given:
- R≥1−E[wC]E[wR]withE[wC]=1n⋅n∑i=1wC(i)andE[wR]=1m⋅m∑j=1wR(j).
- This equation applies equally to regular and irregular LDPC codes, where for regular codes holds E[wC]=wC and E[wR]=wR.
Hints:
- This exercise belongs to the chapter "Basics of the Low–density Parity–check codes".
- Reference is made in particular to the page "Some characteristics of LDPC codes".
Questions
Solution
- With the code word definition x_=(u1,u2,u3,u4,p1,p2,p3,p4), the parity-check matrix H1 denotes the following check equations:
- u1⊕u2⊕p1=0,u3⊕u4⊕p2=0,u1⊕u3⊕p3=0,u2⊕u4⊕p4=0.
- This corresponds exactly to the assumptions made above.
- The same result is obtained for H2 and the code word definition x_=(u1,p1,u2,p2,u3,p3,u4,p4).
With the same code word definition x_=(u1,p1,u2,p2,u3,p3,u4,p4) the other parity-check matrices do not yield a meaningful set of equations:
- According to parity-check matrix H1:
- u1⊕p1⊕u3=0,u2⊕p2⊕p3=0,u1⊕u2⊕u4=0,p1⊕p2⊕p4=0;
- corresponding to parity-check matrix H3:
- u1⊕p2⊕u3⊕p4=0,u1⊕p2⊕p3⊕u4=0,p1⊕u2⊕u3⊕u4=0,p1⊕u2⊕p3⊕p4=0.
(2) Correct are the proposed solutions 1 and 4:
- The code is systematic because H1 ends with a 4×4 diagonal matrix.
- For a regular (LDPC) code, there should be an equal number of "ones" in each row and in each column.
- The first condition is satisfied (wR=3), but not the second. Rather, there is (equally often) one "one" or two "ones" per column ⇒ E[wC]=1.5.
- For an irregular code, the lower bound for the code rate is:
- R≥1−E[wC]E[wR]=1−1.53=1/2.
- Because of the given code structure (k=4 information bits, m=4 check bits ⇒ n=8 encoded bits) the code rate can also be given in the conventional form: R=k/n ⇒ Correct is solution 4 in contrast to answer 3.
(3) The H3 rows result from linear combinations of H1 rows:
- The first H3 row is the sum of row 1 and row 4.
- The second H3 row is the sum of row 2 and row 3.
- The third H3 row is the sum of row 1 and row 3.
- The fourth H3 row is the sum of row 2 and row 4.
By linear combinations, the four linearly independent equations with respect to H1 now become four linearly independent equations with respect to H3
⇒ Therefore, the proposed solutions 2 and 3 are correct.
(4) Here, solutions 2, 3, and 4 are correct:
- If the code described by H3 were systematic, H3 should end with a 4×4 diagonal matrix. This is not the case here.
- The Hamming weights of all rows are equal (wR=4) and also all columns each have the same Hamming weight (wC=2) ⇒ the code is regular.
- This gives R≥1−2/4=1/2 for the code rate.
- But since the four rows of H3 also describe four independent equations, the equal sign ⇒ R=1/2 also holds.