Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykład 11: Kody i metody korekcji błędów PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński.

Podobne prezentacje


Prezentacja na temat: "Wykład 11: Kody i metody korekcji błędów PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński."— Zapis prezentacji:

1 Wykład 11: Kody i metody korekcji błędów PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński

2 Korekcja błędów w kodzie powtórzeniowym

3 Przesyłanie prostego repetycyjnego kodu 3-bitowego dowa: Prawidłowa transmisja dla (a), (b), (e) i (f). W innych przyp. dekoder kryterium większościowego popełnia błędy. Występuje to gdy jest więcej niż t=1 błędów bit

4 Odległość Hamminga Jeśli jest d bł. bitów to przekazywane słowo będzie zamienione na inne i błąd nie może być wykryty Przy klasyfikacji kodu stosuje się triplet z łożony z długości słowa kodowego n, liczby bitów informacyjnych k iminimalnej odległości Hamminga d. Taki triplet oznacza się jako (n,k,d). Nasz kod powtórzeniowy zapiszemy jako (3, 1, 3). Liczba bitów parzystości (nadmiarowych) =n-k. Według odl. Hamminga możemy stwierdzić ile błędnych bitów t (na słowo kodowe) może obsłużyć dany kod. Jeśli w słowie kodowym jest więcej niż t błędnych bitów, to wyżej opisane kodowanie może nawet zwiększyć liczbę bitów i pogorszyć sytuację. W takim przypadku trzeba zastosować lepszy kod, lub nawet może być korzystna rezygnacja Z zastosowania jakiegokolwiek kodu korekcji błędów.

5 Liniowe kody korekcji błędów, np. LC(6,3,3) To takie kody w których suma składowych (binarna tj. modulo2) dwóch słów kodowych x i i x j musi być też słowem kodowym. Mają właściwość, że sąsiedztwo wszystkich słów kodowych w n-miernej przestrzeni kodowej wygląda jednakowo. Kodowanie polega na mnożeniu słowa informacji u=[0 1 0] przez macierz generującą kodu G=[I:P] (mac. I (k*k) rozszerzona o macierz P (k*n-k) określającą bity parzystości) x=[u 1 u 2 u 3 p 1 p 2 p 3 ], np. p 1 = u 1 +u 2 ; p 2 = u 2 +u 3 ; p 3 = u 1 +u 2 +u 3 ; Przesyłane słowo kodowe:x=u*G=u*[I:P]=[0 1 0]* =[ ] Macierz parzystości: H=[P T :I] W dekoderze najpierw obliczamy syndrom błędu jako: (gdy brak błędów y=x) s=y*H T = [ ]* =[0 0 0]=0; Jeżeli powstanie błąd, np.e=[ ] tj. odebrano y=x+e=[ ]+[ ]=[ ] wtedy: Wyodrębnienie inform. z odebranego słowa: s=y*H T = [ ] =[0 1 1] u=x*[I:0]= [ ]*=[0 1 0];

6 Tablica dekodowania Zawiera ona wektory błędów, które mogą generować specyficzny wektor syndromu błędu. Syndrom użyjemy jako indeks w tablicy dekodowania stosując zasadę maksymalnej wiarygodności (najbardziej prawdopodobny błąd 1 bitu) dlatego z 1kol odczytujemy: e=[ ] więc: skorygowane słowo kodowex=y+e=[ ]+[ ]=[ ] stąd przesłana inf.u=x*[I:0]=[0 1 0] (odl.Hamminga=3->wykryje (3-1) bł. koryguje [(3-1)/2] błędów Nie skoryguje np. podwójnego błędu bitów e=[ ]+x=[ ]=[ ]=y po skorygowaniu (jak wyżej) u=[010]<>u

7 Kody cykliczne, np. CC(7,4,3) Oprócz liniowości cechują się również przesunięciem cyklicznym (rotacja też daje inne słowo kodowe, np i ) Dla nich używa się zapisu wielomianowego: c(x)=c 0 + c 1 *x + c 2 *x c n-1 *x n-1 ; c=[c 0 c 1 c 2...c n-1 ] m-bit rotacja: x m *c(x) modulo(x n -1). Kodowanie to mnożenie przez wielomian generujący g(x) lub przesuwanie i dzielenie wyniku przez g(x) -> c(x)= x n-k u(x)-r(x); x n-k u(x)/g(x)=q(x)+r(x)/g(x) Przy dekodowaniu odebran. słowa v(x)=c(x)+e(x) obl. wielomian syndromu jako reszta v(x)/g(x) -jest on jednocześnie resztą z dzielenia e(x) przez g(x), dlatego m.b. użyty do identyfikacji bł. e(x) Np. g(x)= 1+x+x 3 ; informacja: 0010, tj.u(x)=x 2 ; wielomian kodu: c(x)=u(x)*g(x)= x 2 + x 3 + x 5 ; tzn. przesyłana sekwencja bitów: przy braku bł. e(x)=0 c(x)/g(x)= x 2 + 0/g(x), tj. s(x)=0 gdy jest bł. e(x)= x 5, więc: v(x)=c(x)+e(x)= x 2 + x 3 ; dlatego: v(x)/g(x)=1+(x 2 +x+1)/g(x) stąd dla c(x)=0 obl. lub znajdujemy e(x)= x 5 Korekcja błędu daje: v(x)+e(x)= x 2 + x 3 + x 5 ; skąd u(x)=x 2 Syndrom po 7krokach.

8 Tabela dekodowania i implementacja algorytmu Do implementacji mnożenie i dzielenie wielomianów zamieniamy filtracją bo C(z)=U(z)*G(z) gdy: g 0 =1 i g n-k =1 tj. G(z)=1+G(z) SOI G(z) w pętli -sprz. da NOI:

9 Kody splotowe, np. (2,1,2) – kodowanie Działają na zasadzie ciągłego strumienia wtrącając bity parzystości między bity informacyjne zgodnie z pewnymi regułami. Kodowanie to n binarnych filtrów SOI, mających wspólną linię opóźniającą (o dł.m). Każdy filtr j ma swą własną binarną odpowiedź impulsową g i (J),dlatego na wyjściu j-filtru: gdzie u 1, u 2,... u L bity informacyjne, g i (J) j-ty generator Bity przesyłanego słowa kodowego: c=(c 1 (1), c 1 (2),... c 1 (n), c 1 ( 1), c 2 (2),... c 2 (n), c L+m (1), c L+m (2),... c L+m (n) ) Na początku wszystkie m elementów w linii opóźniającej jest zerowanych. Potem wprowadzamy po kolei symbole informacyjne i obl. syg. wy. wszystkich filtrów i przesyłamy do wyjścia i tak do u L.W dalszych m krokach wchodzą zera (końcówka kodu tail). Np. g (1) =(1,0,1) i g (2) =(1,1,1) sekw. informac. u l =(0,1,0,1) daje c l (j) =(00,11,01,00,01,11)

10 Dekodowanie Viterbiego – wykres przejść całych sekwencji (c 1 c 2... c L+m ) maksymalizuje wiarygodność odebrania sekwencji bitów c jako sumy odległości Hamminga m.odebraną sekwencją a przesyłaną Nie znamy ostatniej ale z wiedzy o działaniu kodera tworzymy estymatę tzw. wykres przejść między stanami w koderze lub kratowy wykres kodu możliwych przejść (zaczynając od stanu początkowego 00 i kończąc po L+m krokach tworzących końcówkę na 00) Wykres przejść między stanami zaczynając od stanu 00 (wszystkie elementy pamięc. 0). Cyfry w węzłach są nr. stanów, czyli zawartościami elementów pamięciowych, a cyfry nad gałęziami są symbolami informacji wejściowej u l (w nawiasach) i bitami kodu wyjściowego c l (1) i c l (2).

11 Wykres kratowy. Stany na osi y, kroki na osi x, liczby pisane kursywą są są skumulowanymi ujemnymi odległościami Hamminga, liczby w nawiasach są estymowanymi symbolami informacyjnymi, liczby przy gałęziach są spodziewanymi blokami kodu. We.sekw.u l =(0,1,0,1) brak bł.c l (j) =(00,11,01,00,01,11) Przy bł. e=(01,10,00,10,11) -> v=(01,01,01,10,01,11) W 1-kr.(od 00) odbierany blok (słowo) v 1 =(0,1). Były 2 możliw: u l =(1) tj. przejście do 10 i wygen. c 1 =(1,1) (ale odebraliśmy v 1 =(0,1)więc obl. odl. Hamminga –1) lub pozostać w 00 i wygenerować c 1 =(0,0). W 2-kr.odebr.v 2 =(0,1) obl.skumul.odl.Hamminga dla wszystkich możliw.przejść itd..Wybieramy najtańszą Śledząc wstecznie uzysk.estymow.(zdekod) inf. u (dół)

12 Częściej stosowane kody CRC (redundancy check codes), BCH, RS i splotowe. CRC-4: g(x)=1+x+x 4 CRC-5: g(x)=1+x 2 +x 4 +x 5 CRC-6: g(x)=1+x+x 6 CRC-12: g(x)=1+x+x 2 +x 3 +x 11 +x 12 CRC-16: g(x)=1+x 2 +x 15 +x 16 CRC-CCITT: g(x)=1+x 5 +x 12 +x 16 BCH: n=2 m -1; k>=n-mt; d>=2t+1; m=3,4,5..(Bose, Chaudhuri, Hocquenghem dla tel.komórkow.) Kody Reeda-Solomona (RS) to kody BCH działające z grupą bitów (z m-narnymi symbolami). Mają one największą możliwą minimalną odległość Hamminga przy danej liczbie bitów kontrolnych I danej długości bloku. Stosuje się je w systemach kombinacyjnych. Jet PropulisionLab (NASA do Voyagera na Marsa) kod splotowy (2,1,6)g (1) =(1,1,0,1,1,0,1) g (2) =(1,1,0,1,1,0,1) Linkabit kod splotowy (3,1,6) g (1) =(1,1,0,1,1,0,1) g (2) =(1,0,0,1,1,1,1) g (3) =(1,0,1,0,1,1,1)

13 Przeplot Przeplot stosuje się, np. w kanałach radiowych, tam gdzie błędy pojawiają się w paczkach (seryjne) Jest to metoda rozproszenia błędów bitowych w serii na większą liczbę bloków kodowych tak aby liczba błędów bitowych na blok (dł. n mający k bitów inf.) mb.skorygowana przez dość krótki kod. Przychodzące symb.inf. są kodowane i zapamiętywane wiersz po wierszu (l wierszy=głębok.przepl) Po zgromadzeniu l słów matryca jest pełna. u i (j) bit inf. i w słowie j, p m (j) bit parzystości m w słowie j Wyjściem kanału jest nl bitów, lecz tym razem kolumna po kolumnie u 1 (1),u 1 (2),.. u 1 (l)... P (n-m) (l) Po stronie dekodera działanie odwrotne – rozplot bity są rejestrowane, kolumna po kolumnie i potem odczytywane do dekodera wiersz po wierszu Rozproszenie serii N kolejnych błędnych bitów na L słów kodowych. Każde słowo kodowe zawiera t korygowanych

14 Kodowanie w modemie V.32 z 32(.) modulacją kratową (Trellis mod.) Dane wejściowe są dzielone w grupy 4-bitowe. Pierwsze dwa bity każdej grupy są kodowane różnicowo, później następuje kodowanie złożone tak, aby uzyskać zestaw 3 bitów. Pozostałe dwa bity nie są kodowane, a jedynie przesyłane dalej. W wyniku takiego działania każda grupa zawiera pięć bitów. Następnie te pięć bitów jest mapowane na rozkładzie 32-punktowym. Po stronie odbiornika dane są dekodowane algorytmem największego prawdopodobieństwa (Viterbi) w celu oszacowania otrzymanych danych.

15 Koder c.d Kodowanie 2-etapowe: koder różnicowy + koder splotowy. Koder różnicowy zabezpiecza przed 180 o niejednoznacznością.Tylko 2 z 4 bitów jest kodowanych Koder splotowy wprowadza ograniczenia -nie pozwala na sąsiedztwo kolejnych wyjść (dla zadanych stanów (S0,S1,S2), np.(0,0,1) dop. 4 z 8 dróg (Y0,Y1,Y2):000,010,100,110) Funkcjonalnie to 3-bit.rejestr przesuwny połączony układami logiki AND i XOR. Stanem opóźnienia nazywane są trzy bity pamięci kodera (S0, S1, S2), a bity wyjścia (Y0, Y1, Y2) nazywane są stanem ścieżki. Dając określony stan opóźnienia (S0, S1, S2) nie wszystkie stany ścieżki są możliwe w tym czasie. Np. mając stan opóźnienia (0, 0, 1) możemy w następnym interwale czasu otrzymać tylko 4 ścieżki stanu (0, 0, 0), (0, 1, 0), (1, 0, 0) i (1, 1, 0). W ten sposób otrzymujemy strukturę siatki. Koder jest maszyną o skończonej odpowiedzi, a więc można go przedstawić za pomocą schematu o skończonej odpowiedzi. Koder ma osiem możliwym stanów opóźnienia. W dowolnym czasie koder może przyjąć tylko jeden stan opóźnienia (S0, S1, S2). W następnej iteracji koder może przyjąć już tylko cztery stany opóźnienia.

16 V.32 konstelacja Modulacja 32-punktowa charakteryzuje się większym bit-error rate (BER) w porównaniu do rozkładu 16-bit. Dzieje się tak dlatego, że minimalna odl. Euklidesowa między dowolnymi dwoma punktami na 32-punktowym rozkładzie jest bardzo mała, co zmniejsza margines szumu. Jednakże kodowanie złożone nie pozwala dwóm następu- jącym po sobie symbolach być w ośmiu sąsiednich pozycjach od siebie. Dzięki temu minimalny dystans miedzy dwoma punktami jest zwiększony i uzyskujemy wzrost wydajności o 3 dB.

17 Wykres kratowy (V.32 Modem Trellis Diagram) Ukazuje on zależność pomiędzy stanami opóżnionymi i bieżącymi (delay and path states). Zauważ, że nie wszystkie stany mogą być osiągnięte ze stanów poprzednich. Wybór właściwej drogi (w czasie) zależy od bieżącego stanu (path state) i od historii stanów wraz z ich rzetel- nością (tzw.miękka decyzja wg.funkcji kosztu: sum.Euclides.odległości zamiast odległości Hamminga bo dla szumu białego czym odleglejszy (.) na konstelacji tym jest on mniej prawdopodobny )

18 Dekodowania Viterbiego Z 4 możliwych dróg (path states) ta która ma min.koszt jest wybierana (reszta jest dezaktywowana) Określony stan (delay state) m.b. osiągnięty tylko z 4 stanów poprzednich. Dekoder wybiera tylko jeden tak aby uzyskać połączenie pomiędzy poprzednim i bieżącym odcinkiem czasowym. To połączenie jest identyfikowane jako path state.Każda droga (path state) związana z 3 bit z 5-ciu Dlatego1 droga identyfikuje 4(.) na konstelacji symetrycznie umieszczone i jednakowo max.odległe

19 Implementacja dekodowania Viterbiego w modemie V.32 Na początku każdego interwału czasowego wybiera najbliższy(.) na konstel.i selekcjonuje 8 dróg. Jest to rozwinięcie wykresu kratowego (x czas, y 8 możliw.) Koder m. osiągać tylko 1, ale dekoder zapamiętuje wszystkie 8 aż do zdecydowania który. Funkcje kosztu są uaktualniane jako sumy odległości dla drogi i wybierana z min.kosztem. Wybrana droga prześledzona z powrotem daje poszukiwany stan (Y0,Y1,Y2). Ten 3-bit. rezultat nie identyfik. jednoznacznie 5-bit. wy.sygn. 4 (.) na konstelacji odpowiadaj tym 3 bitom są porównywane z korespondującymi w danym czasie i wybierana 5-bit. wartość najbliższa (ciągnie całą historię z 16 interwałów czasowych)


Pobierz ppt "Wykład 11: Kody i metody korekcji błędów PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński."

Podobne prezentacje


Reklamy Google