Algebra abstrakcyjna i kodowanie, I rok inf., WPPT

Transkrypt

Algebra abstrakcyjna i kodowanie, I rok inf., WPPT
Algebra abstrakcyjna i kodowanie, I rok inf., WPPT
Lista 10 - 24 kwietnia 2010
Temat: kod Hamminga, oszacowanie Hamminga liczby słów kodowych, kod doskonały, kod
wielomianowy, kod cykliczny, kod Golaya
1. Wyznacz w standarowej postaci macierz generującą kod Hamminga o długości 15 i
zakoduj słowo źródłowe 11111100000. Czy następujące słowa należą do tego kodu
01010 01010 01000,
11110 00101 10110?
Jeśli nie, to czy można je (i jak) skorygować? Wyznacz syndromy.
2. Czy macierze H1 i H2 są kontrolnymi macierzami parzystości kodu Hamminga o długości
7:




1 0 0
0 0 1




 1 1 0 
 0 1 0 




 1 1 1 
 0 1 1 







H1 = 
 1 0 0  , H2 =  0 1 1 ?
 1 0 1 
 1 0 1 








 0 1 0 
 1 1 0 
0 0 1
1 1 1
Czy to są kody równoważne?
3. Wyznacz oszacowanie z góry liczby słów kodowych lub wymiar kodu liniowego o długości
n i minimalnej odległości d:
• n = 8, d = 3,
• n = 7, d = 3,
• n = 23, d = 7.
4. Wyznacz macierz parzystości kodu liniowego K(n, k, d) dla n = 15, k = 6, d = 5. Czy
istnieje kod liniowy dla n = 8, k = 3, d = 5? Uwaga. n - długość słów kodowych, d minimalna odległość, k - wymiar kodu.
5. Niech wielomian g(x) dzieli się przez x + 1. Czy i dlaczego wszystkie słowa kodowe mają
parzystą liczbę jedynek?
6. Napisz wszystkie słowa kodowe kodu K(6, 3) generowanego przez wielomian 1 + x2 + x3 .
7. Czy słowa, określone przez wielomiany 1 + x3 + x4 + x6 + x7 i x + x2 + x3 + x6 są słowami
kodu K(8, 4) generowanego przez wielomian g(x) = 1 + x2 + x3 + x4 ?
8. Podaj macierz generującą G i kontrolną macierz parzystości H kod K(4, 1) generowanego
przez wielomian 1 + x + x2 + x3 .
9. Niech w = w0 w2 · · · wn−1 będzie słowem kodowym. Dla kilku wartości n sprawdź, czy
następujące zbiory są kodami cyklicznymi
{w ∈ Zn2 :
n−1
X
j=0
1
wj = 0}.
10. Sprawdź, że x6 + 1 = (1 + x)2 (1 + x + x2 )2 i x5 + 1 = (x + 1)(1 + x + x2 + x3 + x4 ). Czy
są to rozkłady na iloczyny wielomianów nierozkładalnych?
11. Podaj wielomiany generujące wszystkie kody cykliczne o długości n = 5 i n = 6.
12. Wyznacz najkrótszy kod cykliczny generowany przez wielomian g(x) = 1 + x4 + x5 .
13. Czy wielomian g(x) = 1 + x + x2 + x3 + x4 generuje kod cykliczny o długości n = 7?
14. Niech g(x) = 1 + x2 + x3 będzie wielomianem generującym kod cykliczny o długości
n = 7.
(a) Zakoduj słowa źródłowe odpowiadające wielomianom: a1 (x) = 1 + x3 , a2 (x) =
x, a3 (x) = x + x2 + x3 .
(b) Jakie słowa źrółowe są przyporządkowane słowo kodowym odpowiadającym wielomianom:
x2 + x4 + x5 , 1 + x + x2 + x4 , x2 + x3 + x4 + x6 .
(c) Zakoduj słowa źródłowe z punktu (a) tak, aby były one jawną częścią słów kodowych?
15. Sprawdź, że kod cykliczny o długości n = 15, generowany przez wielomian g(x) =
1 + x + x4 , jest kodem Hamminga. Wyznacz wielomian kontrolny.
16. Niech macierz G generująca kod K ma następującą własność: każdy jej wiersz po cyklicznym przesunięciu jest nadal słowem kodowym. Pokaż, że jest to kod cykliczny.
17. Kod o długości n = 7 generowany przez wielomian 1 + x + x3 jest kodem Hamminga.
Zakładamy, że otrzymane słowa mają po jednym błędnym bicie:
(a) 1101011
(b) 0101111
(c) 0100011.
Skoryguj błędy.
18. Wielomian g(x) generuje najmniejszy kod cykliczny zawierający słowo v o długości n,
jeśli g(x) jest największym wspólnym dzielnikiem wielomianów v(x) i xn + 1. Wyznacz
wielomian g(x) generujący najmniejszy kod cykliczny zawierający słowo 1000111.
19. Niech kod cykliczny o długości n = 15 będzie generowany przez wielomian g(x) =
1 + x2 + x4 + x5 . Wyznacz minimalną odległość kodu. Wyznacz kontrolną macierz
parzystości.
Zadania i pytania powtórkowe
1. Niech K(n, k) będzie binarnym kodem liniowym - n długość (liczba bitów) słów kodowych, k - długość słów źródłowych.
(a)
(b)
(c)
(d)
Ile słów źródłowych można zakodować w tym kodzie?
Czy i dlaczego słowa kodowe tworzą podprzestrzeń liniową?
Podaj definicję macierzy G generującej ten kod i jej własności.
Podaj definicję kontrolnej macierzy parzystości H.
2
(e) Jaki jest związek między macierzami G i H? Jak krótko można ten związek uzasadnić?
(f) Podaj definicję syndromu.
2. Podaj przykład kontrolnej macierzy parzystości rozmiaru 3 × 2. Ile słów jest zakodowanych w tym kodzie? Jak na podstawie kontrolnej macierzy parzystości można wyznaczyć
macierz generującą kod?
3. Niech K(n, k) będzie kodem liniowym z kontrolnym bitem parzystości (tzn. do bitów
słowa źródłowego dodaje się jeden bit będący sumą bitów ze słowa źródłowego). Niech
n = 3, k = 2. Podaj macierze kontrolną i generującą ten kod. Sprawdź, czy otrzymane
słowa: 111, 110 są kodowe. Jeśli tak, to jakie im odpowiada słowo źródłowe?
4. Kiedy kod liniowy może wykrywać t lub mniej błędów? Kiedy kod liniowy może korygować t lub mniej błędów? Czy i jak za pomocą kontrolnej macierzy parzystości można
wyznaczyć minimalną odległość kodu?
5. Co to jest kod dualny?
6. Podaj definicję kodu wielomianowego. Napisz wszystkie słowa, które należą do kodu
generowanego przez wielomian g(x) = 1 + x + x3 i w którym słowa źródłowe są 4-bitowe.
Jaka jest długość słów kodowych? Czy i dlaczego ten kod jest cykliczny? Podaj macierz
generującą ten kod i kontrolną macierz parzystości. Jakie błędy wykrywa i koryguje ten
kod?
7. Podaj definicję kodu Hamminga i omów algorytm korygowania w nim jednego błędu.
Jakiej długości n może być kod Hamminga? Czy prawdą jest, że każde słowo z przestrzeni Zn2 jest albo słowem z kodu Hamminga albo jest odległe od wszystkich słów
kodowych o 1?
8. Niech wielomian g(x) = 1 + x + x3 generuje kod o długości n = 6. Sprawdź, czy
następujące słowa
100011, 100110, 101000
należą do tego kodu.
9. Znajdź macierz kontrolną kodu o długości n = 9 generowanego przez wielomian g(x) =
(1 + x)(1 + x + x4 ). Sprawdź, czy następujące słowo 110110111 należy do tego kodu.
10. Jak skonstruować cykliczny kod wielomianowy o możliwie najmniejszej liczbie słów i
zawierający dane słowo v? Odpowiedź zilustrować na przykładzie n = 8 i słowa v =
11011000. Odpowiedź. Wielomianem generującym ten kod jest g(x) = 1 + x2 .
11. Niech kod ma następującą macierzą kontrolną





H=



1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1





.



Sprawdź, czy następujące słowa są kodowe
11001,
011100,
100011,
3
101011,
0000001.
Jeśli nie, to czy każde z nich może być skorygowane? Skoryguj błąd.
12. Co to jest kod doskonały? Podaj przykład kodu doskonałego.
13. Podaj oszacowanie Hamminga liczby słów kodowych. Wyznacz oszacowanie liczby słów
kodowych w kodzie liniowym o długości n = 8 i minimalnej odległości d = 3.
14. Wyznacz liczbę słów kodowych w kodzie o macierzy generującej


100111


G =  010101 
001011
i porównaj tę liczbę z oszacowaniem Hamminga.
15. Czy istnieje kod K(n, k) o długości n = 9 i minimalnej odległości d = 5? Dlaczego?
16. Niech macierz
"
G=
1 0 0 1
0 1 1 1
#
generuje kod liniowy. Jaka jest minimalna odległość w tym kodzie? Jakie błędy wykrywa
i koryguje ten kod?
17. Czy wielomian 1 + x3 + x4 + x5 + x7 + x8 generuje kod cykliczny o długości n = 9?
Znaleźć macierz parzystości dla tego kodu.
Krystyna Ziętak
4