Dziś wykonamy takie ćwiczenie z kodowania i dekodowania nadmiarowego. Załóżmy, że mamy daną długość wektora kodowego równą 7 (7 pozycji dla wektora kodowego). Należy skonstrułować układ kodowania i dekodowania i obliczyć ile będzie pozycji informacyjnych i kontrolnych, oraz które to są. Dodatkowo należy wskazać na której pozycji kontrolnej w wektorze kodowym pojawia się błąd. A oto, jak będą wyglądać te pozycje informacyjne i kontrolne na wyjściu układu (na razie nie wiemy, które to i ile ich jest):
to pozycje wektora kodowego, a
to pozycje syndromu. Jak wiadomo układ kodowania składa się z sygnałów informacyjnych na wejściu. Te sygnały po przejściu przez koder dają taki układ jak wyżej i niektóre z pozycji na wyjściu są informacyjne, a niektóre kontrolne (te są dodawane). Z powyższego układu można wyliczyć trzy syndromy tworząc układ:
Z tego układu będziemy obliczać, które z pozycji wektora kodowego będą pozycjami kontrolnymi. W tym celu zamiast
podstawimy 0 i stworzy się coś takiego:
Z tego, co mamy po lewej stronie wybieramy takie a, którego jest najmniej we wszystkich tych trzech przypadkach. W tym wypadku będzie to
i te przerzucamy na prawą stronę. To, co zostanie nam po lewej stronie to będą właśnie nasze pozycje informacyjne na wejściu i na wyjściu, zaś
po prawej stronie to są nasze pozycje kontrolne. I z tego otrzymujemy następujący układ kodowania:
Widzimy więc cztery pozycje informacyjne, oraz trzy kontrolne. Popatrzmy jeszcze, jak by wyglądał program, który zrealizowałby kodowanie dla tego ukłdu:
koder(bit m1, bit m2, bit m3, bit m4)
{
bit a1, a2, a3, a4, a5, a6, a7;
a1=m1+m2+m4;
a2=m1+m3+m4;
a3=m1;
a4=m2+m3+m4;
a5=m2;
a6=m3;
a7=m4;
}
m1, m2, m3 i m4, to zmienne typu bit (przyjmujące wartości 0 i 1) będace pozycjami informacyjnymi na wyjściu układu.
No i na koniec został nam układ dekodowania. Tutaj sprawa będzie nieco bardziej skomplikowana, jeśli chodzi o rysunek graficzny. Mniej więcej dekoder będzie wyglądał tak: (przykładowo dla k3 = a3 + b3):
Tutaj dla wektora odebranego należy obliczyć syndrom, a nastepnie wskazać, która pozycja z pozycji kontrolnych jest błędna. Oto, jak wygląda układ obliczania syndromu (przykładowo dla s1):
No i nasz błąd (wartość 1 dla s4):
|
|
|
|
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |