0 + 0 = 0, = 1, = 1, = 0.

Podobne dokumenty
Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Kody blokowe Wykład 2, 10 III 2011

Matematyka dyskretna

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Macierze. Rozdział Działania na macierzach

3. Macierze i Układy Równań Liniowych

Układy równań i nierówności liniowych

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

W11 Kody nadmiarowe, zastosowania w transmisji danych

3. Wykład Układy równań liniowych.

Podstawy Informatyki: Kody. Korekcja błędów.

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Kody blokowe Wykład 1, 3 III 2011

1 WPROWADZENIE 1. Agata Pilitowska. parzysta. 3. Znaleźć odległość kodu kontroli parzystości nad ciałem GF (q).

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

13 Układy równań liniowych

UKŁADY RÓWNAŃ LINIOWYCH

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

, A T = A + B = [a ij + b ij ].

1. Wykład NWD, NWW i algorytm Euklidesa.

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

Układy równań liniowych

Detekcja i korekcja błędów w transmisji cyfrowej

MACIERZE I WYZNACZNIKI

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Polska-Brazylia 5:0, czyli o poprawianiu błędów w przekazywanych informacjach

Podstawowe struktury algebraiczne

Rozwiązania, seria 5.

Liczby zespolone. x + 2 = 0.

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

1 Układy równań liniowych

Zapis liczb binarnych ze znakiem

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Grupy, pierścienie i ciała

Krótkie wprowadzenie do macierzy i wyznaczników

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

Chcąc wyróżnić jedno z działań, piszemy np. (, ) i mówimy, że działanie wprowadza w STRUKTURĘ ALGEBRAICZNĄ lub, że (, ) jest SYSTEMEM ALGEBRAICZNYM.

5. Rozwiązywanie układów równań liniowych

Arytmetyka liczb binarnych

Detekcja i korekcja błędów w transmisji cyfrowej

Grupy. Permutacje 1. (G2) istnieje element jednostkowy (lub neutralny), tzn. taki element e G, że dla dowolnego a G zachodzi.

Układy równań liniowych i metody ich rozwiązywania

Przestrzenie wektorowe

O MACIERZACH I UKŁADACH RÓWNAŃ

1 Zbiory i działania na zbiorach.

Wykład 14. Elementy algebry macierzy

1 Macierze i wyznaczniki

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Przestrzenie liniowe

Algebra liniowa z geometrią

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

Układy równań liniowych

Rozwiązywanie układów równań liniowych

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Laboratorium ochrony danych

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

LOGIKA I TEORIA ZBIORÓW

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

1 Macierz odwrotna metoda operacji elementarnych

Zajęcia nr. 3 notatki

2. Układy równań liniowych

Zasada indukcji matematycznej

Indukcja matematyczna. Zasada minimum. Zastosowania.

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Kody blokowe Wykład 5a;

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

1 WPROWADZENIE 1. Agata Pilitowska. parzysta. 3. Znaleźć odległość kodu kontroli parzystości nad ciałem GF (q).

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Równania liniowe. Rozdział Przekształcenia liniowe. Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem

Własności wyznacznika

SYSTEMY LICZBOWE 275,538 =

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Algebra. Jakub Maksymiuk. lato 2018/19

Zastosowania wyznaczników

Algebra abstrakcyjna

Zadania egzaminacyjne

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

1.1 Definicja. 1.2 Przykład. 1.3 Definicja. Niech G oznacza dowolny, niepusty zbiór.

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Działania Definicja: Działaniem wewnętrznym w niepustym zbiorze G nazywamy funkcję działającą ze zbioru GxG w zbiór G.

Matematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

Wykład 16. P 2 (x 2, y 2 ) P 1 (x 1, y 1 ) OX. Odległość tych punktów wyraża się wzorem: P 1 P 2 = (x 1 x 2 ) 2 + (y 1 y 2 ) 2

Wykład 4 Udowodnimy teraz, że jeśli U, W są podprzetrzeniami skończenie wymiarowej przestrzeni V to zachodzi wzór: dim(u + W ) = dim U + dim W dim(u

Wykład z równań różnicowych

Praca domowa - seria 6

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Tydzień nr 9-10 (16 maja - 29 maja), Równania różniczkowe, wartości własne, funkcja wykładnicza od operatora - Matematyka II 2010/2011L

Baza w jądrze i baza obrazu ( )

LISTA 1 ZADANIE 1 a) 41 x =5 podnosimy obustronnie do kwadratu i otrzymujemy: 41 x =5 x 5 x przechodzimy na system dziesiętny: 4x 1 1=25 4x =24

1.1. Pozycyjne systemy liczbowe

cx cx 1,cx 2,cx 3,...,cx n. Przykład 4, 5

Podstawy Informatyki

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Postać Jordana macierzy

Transkrypt:

5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi, czyli tymi, z których składał się blok przed dodaniem do niego symboli sprawdzających. Wspomniana zależność najczęściej jest liniowa i dlatego odpowiadający kod nazwiemy kodem liniowym. Poniżej, dokładnie omówimy znaczenie użytych słów. 5.1 Definicja Alfabet kodowy składa się z zera i jedynki. Zapiszemy to F = {0, 1}. Na zbiorze F zdefiniujemy operację dodawania następująco: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 0. Jak widzimy, dodawanie to różni się tylko tym od,,zwykłego dodawania, że 1 + 1 = 0. Od razu widać, że zdefiniowane działanie jest przemienne i ma element neutralny 0. Troszkę trudniejsze jest sprawdzenie, że nasze dodawanie jest też łączne. Dodatkowo zauważmy, że 0 oraz 1 są liczbami przeciwnymi do siebie. Oznacza to, że dodawanie i odejmowanie, to jest jedno i to samo działanie. Będziemy też używać mnożenia, które niczym się nie różni od dobrze znanego mnożenia liczb. Jest, więc, to działanie łączne, przemienne, rozdzielne względem dodawania i ma element neutralny 1. Rozważać będziemy zbiór w n (F) wszystkich słów n-bitowych. W zbiorze tym określimy sumę słów a = a 1 a 2... a n oraz b = b 1 b 2... b n następująco: a + b = (a 1 + b 1 )(a 2 + b 2 )... (a n + b n ). Ponownie, zdefiniowane działanie jest łączne, przemienne, ma element neutralny 0 = 00... 0, oraz każde słowo a ma słowo przeciwne a. Rozważmy podzbiór K zbioru w n (F) zamknięty ze względu na działanie dodawania słów. Zamknięty, oznacza, że suma dwóch słów ze zbioru K jest też słowem należącym do K. Taki zbiór nazywamy kodem liniowym długości n. Jeżeli kod K ma k bitów informacyjnych, to ma on 2 k słów kodowych. Liczbę bitów informacyjnych nazywamy też wymiarem kodu K i oznaczamy dim K. 27

5.2 Przykłady Kod powtórzeń K n jest kodem liniowym i dim K n = 1 ponieważ ma on jeden bit informacyjny. Kod K 4 jest podzbiorem w 4 (F), ma dwa bity informacyjne i dwa sprawdzające, które są równe drugiemu bitowi informacyjnemu. Aby sprawdzić, czy jest to kod liniowy, wystarczy wykonać poniższe działania: 0111 + 1000 = 1111, 0111 + 1111 = 1000, 1000 + 1111 = 0111. Ponieważ wszystkie trzy wyniki są elementami K 4, więc kod K 4 jest kodem liniowym wymiaru 2. Podobnie sprawdzamy, że K 6 jest kodem liniowy o wymiarze 3. 5.3 Macierz generująca Jak już wspominaliśmy, bity informacyjne są dowolne. Przyjmijmy, że mamy dim K = k oraz u 1 u 2... u k jest blokiem bitów informacyjnych. Zauważmy, że dodając kilka z bloków 10... 0, 010... 0,..., 00... 01 otrzymamy dowolny blok informacyjny. Zdefiniujmy słowa e i (1 i k) następująco: blok bitów informacyjnych składa się z k 1 zer i jedynki na pozycji i. Bity sprawdzające, jak zwykle, zależą od informacyjnych. Zachodzi wzór k v K v = u i e i. (1) i=1 Macierzą generującą kodu K nazywamy macierz e 1 G = e 2.... e k Wzór (1) mówi, że dowolne słowo kodowe możemy otrzymać mnożąc macierze [ u 1 u 2... u k ] oraz G. 5.4 Przykłady Kod powtórzeń K n ma macierz generującą G = [ 1 1... 1 ]. 28

Rozważmy kod, o którym już wspominaliśmy jako ortogonalnym do K n. Jest to kod sprawdzający parzystość. Oznaczymy go przez Kn. Przypomnimy, że kod ten ma n 1 bitów informacyjnych i jeden bit sprawdzający równy sumie wszystkich bitów informacyjnych. Jego macierz generująca to 1 0... 0 1 0 1... 0 1 G =............. 0 0... 1 1 Macierze generujące kodów K4 oraz K6 wyglądają następująco: [ ] 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1. 0 1 1 1 0 0 1 1 1 0 Pokażemy, jak w kodzie K6 jest generowane słowo kodowe z bitów informacyjnych 011. Aby to słowo wygenerować, mnożymy macierze [ ] 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 = [ 0 1 1 0 1 1 ]. 0 0 1 1 1 0 Wygenerowanym słowem kodowym jest tu 011011. Podamy teraz przykład kodu, który jeszcze się nie pojawił. Niech r > 1 i s > 1 będą ustalonymi liczbami naturalnymi i niech n = rs. Każde słowo kodowe zapisujemy w postaci macierzy w następujący sposób: W każdym z wierszy 1, 2,..., s 1 zapisujemy r 1 bitów informacyjnych. W sumie daje to (r 1)(s 1) bitów informacyjnych. Ostatni bit w wierszu jest bitem, który sprawdza parzystość słowa w danym wierszu, tj. liczba jedynek w wierszu musi być parzysta, lub ostatni bit jest sumą wszystkich poprzednich. Ostatni wiersz składa się z bitów sprawdzających parzystości swoich kolumn. Ustalmy r = 4 i s = 3. Przykładem słowa kodowego jest 1 1 0 0 0 1 1 0. 1 0 1 0 29

Bitami informacyjnymi są tu (czytane wierszami) 110011. Jest to więc kod wymiaru 6 i o długosci 12. Przyjmijmy, że słowa kodowe odczytujemy z macierzy poprzez łączenie kolejnych wierszy. Macierzą generującą jest tu więc 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1. 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 5.5 Równania opisujące kody Macierz generująca daje nam możliwość zakodowania bloku informacyjnego. Jeżeli bity informacyjne mamy już zakodowane, możemy powstały kod opisać stosując jednorodne układy równań liniowych. Na przykład, dla kodu powtórzeń K n wiemy, że wszystkie bity są równe. Można więc to zapisać jako x 1 = x 2 = = x n lub, równoważnie, jako Kod sprawdzający parzystość K n x 1 + x n = 0 x 2 + x n = 0. x n 1 + x n = 0. opisuje natomiast równanie x 1 + x 2 + + x n = 0. Powyższe równania możemy zapisać w postaci macierzowej: 1 0... 0 1 x 1 0 0 1... 0 1 x 2............. = 0. 0 0... 1 1 x n 0 oraz x 1 0 [ ] x 2 1 1... 1. = 0. 0 Zauważmy, że macierz generująca kod sprawdzający parzystość jest macierzą układu (2), czyli układu opisującego kod powtórzeń. Natomiast macierz układu opisującego kod sprawdzający parzystość (3) jest macierzą generującą kod powtórzeń. 30 x n (2) (3)

Każdy jednorodny układ równań (tj. taki, gdzie wyrazy wolne są równe zeru) opisuje pewien kod liniowy i odwrotnie, każdy kod liniowy może być opisany za pomocą układu równań jednorodnych. Niech dane będą dwa kody liniowe K oraz K. Jeżeli istnieje taki układ równań jednorodnych opisujący kod K, że macierz tego układu jest macierzą generującą kod K, to kody K i K nazywamy ortogonalnymi lub dualnymi. Zatem kod powtórzeń oraz kod sprawdzający parzystość są ortogonalne. 5.6 Macierz sprawdzająca parzystość. Mając dany kod K oraz układ równań jednorodnych opisujący K, macierzą sprawdzającą parzystość nazywamy macierz tego układu. Macierz tę oznaczać będziemy przez H. Dla kodu sprawdzającego parzystość mamy H = [ 1 1... 1 ], a dla kodu powtórzeń mamy 1 0... 0 1 0 1... 0 1 H =............. 0 0... 1 1 Wprost z definicji wynika, że jeśli v K, to Hv T = 0 T. Dla dowolnej macierzy A, symbol A T oznacza transpozycje tej macierzy, czyli zamianę wierszy i kolumn. W powyższym równaniu, v T oznacza zapis słowa v jako kolumnę. Następujące twierdzenie mówi jak otrzymać macierz sprawdzającą parzystość z macierzy generującej. Twierdzenie. Kod o macierzy generującej G = [I k B] ma macierz sprawdzającą parzystość H = [ ] B T I n k. Symbol I k oznacza tu macierz jednostkową stopnia k. Bezpośrednio z twierdzenia otrzymujemy następujący wniosek. Wniosek. Każdy kod liniowy długości n i wymiaru k ma macierz sprawdzającą parzystość o wymiarach (n k) n. 5.7 Waga Hamminga Do tej pory mówiliśmy jak opisać dany kod liniowy oraz jak zakodować blok bitów informacyjnych. Zajmiemy się teraz dekodowaniem pamiętając, że przy tej czynności musimy też korygować lub wykrywać ewentualne 31

błędy powstałe w wyniku transmisji. Okazuje się, że w przypadku kodów liniowych zasadę MLD łatwiej jest zastosować niż w przypadku ogólnym. Przede wszystkim, dzięki strukturze liniowej, możemy uprościć koncepcję odległości Hamminga wprowadzając wielkość, którą jest zdefiniowana poniżej waga Hamminga. Wagą Hamminga binarnego słowa kodowego a = a 1 a 2... a n nazywamy liczbę różnych od zera symboli w tym słowie, tj. a = # {i : a i 0}. Twierdzenie. Dla dowolnych słów a, b w n (F) zachodzą następujące własności: (i) a = 0 a = 0; (ii) a + b a + b. (iii) Jeśli określimy d(a, b) = a + b, to d jest odległością Hamminga. Podobnie jak dla odległości Hamminga zdefiniowaliśmy odległość minimalną, tak teraz zdefiniujemy wagę minimalną. Wagą minimalną kodu K nazywamy najmniejszą wagę Hamminga niezerowego słowa a K. W celu obliczenia minimalnej wagi rozważamy tylko odległości Hamminga słów kodowych od słowa 0, a nie wszystkie możliwe odległości. Na przykład, waga minimalna kodu sprawdzającego parzystość wynosi 2, natomiast kodu powtórzeń n. Okazuje się, że waga minimalna to jest dokładnie odległość minimalna, o czym mówi następujące twierdzenie. Twierdzenie. Dla dowolnego nietrywialnego kodu dwójkowego, waga minimalna jest równa odległości minimalnej. Używając tego twierdzenia oraz twierdzeń o wykrywaniu i poprawianiu błędów możemy wydedukować następujący wniosek. Wniosek. Kod liniowy poprawia (wykrywa) t błędów wtedy i tylko wtedy, gdy jego waga minimalna jest większa od 2t (t). 5.8 Syndrom Zajmiemy się teraz metodami dekodowania kodów liniowych. Stosować będziemy przy tym zasadę MLD. Załóżmy, że w wyniku wysłania słowa v otrzymaliśmy słowo w. Sytuacją błędu nazywamy słowo e = w + v. Aby ang. error pattern 32

rozkodować słowo w musimy więc znać sytuację błędu e. Wówczas v = w + e. Oczywiście, szukamy słowa e, które ma najmniejszą wagę Hamminga, ponieważ prowadzi to, zgodnie z MLD, do najbliższego od w, w sensie odległości Hamminga, słowa kodowego. Dużo informacji na temat sytuacji błędu daje nam łatwo obliczalny syndrom. Dokładnie, przypuśćmy, że kod liniowy K ma macierz sprawdzającą parzystość H. Syndromem słowa w nazywamy iloczyn s = Hw T. Zatem, jeśli K jest k wymiarowym kodem liniowy długości n, macierz sprawdzająca parzystość H ma n kolumn i k wierszy. Stąd syndrom s w k (F). Twierdzenie. Sytuacja błędu ma ten sam syndrom, co otrzymane słowo, tj. dla dowolnego słowa kodowego v i sytuacji błędu e, He T = H(v + e) T. Powyższe twierdzenie stanowi podstawę dekodowania kodów liniowych: otrzymujemy słowo, liczymy jego syndrom i szukamy słowa o najmniejszej wadze Hamminga, które posiada taki sam syndrom. 5.9 Wykrywanie i poprawianie błędów Przypomnijmy, że kod K wykrywa t błędów, jeśli jego waga minimalna jest większa od t. Zatem kod liniowy jest tym lepszy im większa jest jego waga minimalna i im większa jest liczba bitów informacyjnych. Niestety te dwa warunki stoją ze sobą w jawnej sprzeczności, o czym mówi następujące twierdzenie. Twierdzenie. Waga minimalna w k wymiarowego kodu liniowego długości n spełnia nierówność w n k + 1. Ponieważ syndrom każdego słowa kodowego jest równy 0, więc błąd jest wykryty, jeśli syndrom otrzymanego słowa jest różny od zera. Używając syndromu możemy też dekodować kod, albo poprawiać ewentualne błędy transmisji. Opiszemy procedurę dekodowania przez syndrom. Załóżmy, że K jest liniowym kodem długości n o wymiarze k z macierzą sprawdzającą parzystość H. Tworzymy zbiory e + K = {e + v : v K}. Zbiory tej postaci nazywamy warstwami kodu K. Element warstwy o najmniejszej wadze Hamminga nazywamy liderem warstwy. Wszystkie elementy 33

warstwy e + K mają ten sam syndrom. Słowo s = ( He T ) T nazywamy syndromem warstwy. Załóżmy, że otrzymaliśmy słowo w. Dekodowanie wygląda następująco: 1. Liczymy syndrom s = ( Hw T ) T ; 2. Znajdujemy lidera e warstwy o syndromie s; 3. Zakładamy, że wysłanym słowem jest v = w + e. Oczywiście, przed rozpoczęciem opisanej procedury, warto sporządzić jest tablicę syndromów i odpowiadających im liderów. 5.10 Przykłady Rozważmy kody K 4 oraz K 6. Ich macierzami generującymi są, odpowiednio, [ 1 0 0 ] 0 0 1 1 1 oraz 1 0 0 0 1 1 0 1 0 1 0 1. 0 0 1 1 1 0 Zatem macierzami sprawdzającymi parzystość są, odpowiednio, [ ] 0 1 1 1 0 0 0 1 1 0 H 4 = oraz H 0 1 0 1 6 = 1 0 1 0 1 0. 1 1 0 0 0 1 Kod K 4 ma 4 elementy, a w 4 (F) ma 16 elementów. Dlatego mamy 4 warstwy: kod (warstwa 0), s = 00: 0000 1000 0111 1111 warstwa 1, s = 01: 0001 1001 0110 1110 warstwa 2, s = 10: 0010 1010 0101 1101 warstwa 3, s = 11: 0100 1100 0011 1011. Bez trudu wybieramy tu liderów warstw i otrzymujemy: lider syndrom 0000 00 0001 01 0010 10 0100 11 34

Jeśli otrzymaliśmy słowo 1010, to jego syndromem jest 10, któremu odpowiada lider 0010, więc wysłane było prawdopodobnie 1000. Zwróćmy uwagę, że błąd w pierwszym bicie jest niezauważony przez naszą procedurę: syndromem słów 1bbb oraz 0bbb jest zero, bez względu na to, czy b jest równe 1, czy 0. Jest tak, ponieważ bity sprawdzające sprawdzają tylko drugi bit. Kod K6 ma 8 elementów, a cała przestrzeń 64 elementy, więc mamy tu 8 warstw: kod (warstwa 0), s = 000: 000000 100011 010101 001110 011011 101101 110110 111000 warstwa 1, s = 001: 000001 100010 010100 001111 011010 101100 110111 111001 warstwa 2, s = 010: 000010 100001 010111 001100 011001 101111 110100 111010 warstwa 3, s = 011: 100000 000011 110101 101110 111011 001101 010110 011000 warstwa 4, s = 100: 000100 100111 010001 001010 011111 101001 110010 111100 warstwa 5, s = 101: 010000 110011 000101 011110 001011 111101 100110 101000 warstwa 6, s = 110: 001000 101011 011101 000110 010011 100101 111110 110000 warstwa 7, s = 111: 010010 110001 000111 011100 001001 111111 100100 101010. Dla każdej warstwy wybieramy lidera i obliczamy jego syndrom. Wątpliwości mogą być przy wyborze lidera warstwy siódmej, ponieważ aż trzy elementy tej warstwy mają wagę Hamminga równą 2. Zgodnie z zasadą MLD, wybieramy losowo. lider syndrom 000000 000 000001 001 000010 010 100000 011 000100 100 010000 101 001000 110 010010 111 35

Załóżmy, że otrzymaliśmy słowo 111111. Jego syndrom, to 111. Z powyższej tabeli odczytujemy lidera, którym jest 010010. Zatem otrzymane słowo rozkodowujemy jako 101101. Jeśli otrzymanym słowem jest 001101, to syndromem jest 011, czyli zakładamy, że wysłane zostało 101101. Jeżeli otrzymamy 010101, to syndrom tego słowa wynosi 000, więc jest to słowo kodowe i zakładamy, że takowe zostało wysłane. 36