Kody splotowe (konwolucyjne)

Podobne dokumenty
Modulacja i Kodowanie. Labolatorium. Kodowanie Kanałowe Kody Hamminga

Kody splotowe. Zastosowanie

W11 Kody nadmiarowe, zastosowania w transmisji danych

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

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

Temat 7. Dekodery, enkodery

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Wybrane metody kompresji obrazów

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF

KODOWANIE KANAŁOWE (NADMIAROWE) ERROR CONTROL CODING

ZAKŁAD SYSTEMÓW ELEKTRONICZNYCH I TELEKOMUNIKACYJNYCH Laboratorium Podstaw Telekomunikacji WPŁYW SZUMÓW NA TRANSMISJĘ CYFROWĄ

Modulacja i kodowanie laboratorium. Modulacje Cyfrowe: Kluczowanie Amplitudy (ASK)

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

- Quadrature Amplitude Modulation

Sławomir Kulesza. Projektowanie automatów synchronicznych

Kody transmisyjne. Systemy PCM Sieci ISDN Sieci SDH Systemy dostępowe Transmisja w torach przewodowych i światłowodowych

Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a

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

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

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

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Laboratorium ochrony danych

Tranzystor JFET i MOSFET zas. działania

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Teoria przetwarzania A/C i C/A.

Teoria informacji i kodowania

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

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

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Projektowania Układów Elektronicznych CAD Laboratorium

PODSTAWY TELEKOMUNIKACJI Egzamin I (za każde polecenie - 6 punktów)

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Niezawodność i diagnostyka systemów cyfrowych projekt 2015

Postać informacji zewnętrznej turbo-dekodera a jakość podejmowanych decyzji

Kombinacyjne bloki funkcjonalne

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

Stan wysoki (H) i stan niski (L)

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

UKŁADY MIKROPROGRAMOWALNE

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

1.1. Pozycyjne systemy liczbowe

Modulacja i kodowanie laboratorium. Modulacje Cyfrowe: Kluczowanie Amplitudy (ASK) i kluczowanie Fazy (PSK)

Techniki multimedialne

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 5

Projekt prostego procesora

Kody blokowe Wykład 2, 10 III 2011

Kwantyzacja wektorowa. Kodowanie różnicowe.

Dekodowanie iteracyjne sygnałów OFDM w systemie o wielu strumieniach przestrzennych

Cel. Poznanie zasady działania i budowy liczników zliczających ustaloną liczbę impulsów. Poznanie kodów BCD, 8421 i Rys. 9.1.

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

4. UKŁADY FUNKCJONALNE TECHNIKI CYFROWEJ

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

Instytut Telekomunikacji Wydział Elektroniki i Technik Informacyjnych.

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

Systemy Czasu Rzeczywistego FPGA

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

Kodowanie informacji. Przygotował: Ryszard Kijanka

Kodowanie informacji. Kody liczbowe

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2.

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Ćw. 7: Układy sekwencyjne

Programowany układ czasowy APSC

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Teoretyczne Podstawy Informatyki

Funkcja Boolowska a kombinacyjny blok funkcjonalny

Systemy i Sieci Radiowe

Instytut Telekomunikacji Wydział Elektroniki i Technik Informacyjnych.

Andrzej Leśnicki Laboratorium CPS Ćwiczenie 9 1/5 ĆWICZENIE 9. Kwantowanie sygnałów

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

TEMAT: SYSTEMY CYFROWE: MODULACJA DEMODULACJA FSK, PSK, ASK

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Kompresja danych DKDA (7)

Systemy liczenia. 333= 3*100+3*10+3*1

Podstawy Informatyki Elementarne podzespoły komputera

ćwiczenie 202 Temat: Układy kombinacyjne 1. Cel ćwiczenia

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

Badanie właściwości skramblera samosynchronizującego

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Naturalny kod binarny (NKB)

Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające

Laboratorium przedmiotu Technika Cyfrowa

Ćwiczenie 11. Podstawy akwizycji i cyfrowego przetwarzania sygnałów. Program ćwiczenia:

ZADANIE 1. Rozwiązanie:

SYMULACJA KOMPUTEROWA SYSTEMÓW

Instrukcja do ćwiczenia : Matryca komutacyjna

ADAPTACYJNE PRZETWARZANIE SYGNAŁÓW LABORATORIUM. Ćwiczenie 4. Wybrane telekomunikacyjne zastosowania algorytmów adaptacyjnych

Technika Cyfrowa 1 wykład 1: kody. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

Ćwiczenie 29 Temat: Układy koderów i dekoderów. Cel ćwiczenia

Projektowanie złożonych układów cyfrowych

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Architektura komputerów

ZASTOSOWANIE ALGORYTMÓW GENETYCZNYCH DO WYZNACZANIA NAJLEPSZYCH KODÓW TAIL-BITING

Transkrypt:

Modulacja i Kodowanie Labolatorium Kodowanie kanałowe kody konwolucyjne Kody splotowe (konwolucyjne) Główną różnicą pomiędzy kodami blokowi a konwolucyjnymi (splotowymi) polega na konstrukcji ciągu kodowego. W przypadku kodów blokowych mamy do czynienia z blokiem kodu o pewnej, ustalonej, i najczęściej, niezmiennej długości. Część bloku stanowią informacyjne, a resztę tzw. bity kontrolne. Np. w kodzie Hamminga (7,4) blok kody zawiera 7 bitów, z czego 4 to bity informacyjne, a 3 to bity kontrolne. Bity kontrolne są rozmieszczone nie przypadkowo, lecz na ściśle określonych pozycjach w przypadku kodu Hamminga znajdują się na pozycji pierwszej, a następnie na pozycjach będących potęgami liczby 2. Natomiast kody splotowe nie wymagają dzielenia strumieni informacji na bloke. Kodowany ciąg jest niejako w locie, a sam process kodowania można przyrównać do klasycznego splotu jednowymiarowego (konwolucji) sygnału z maską filtru. Bity kontrolne są rozmieszczane wzdłuż strumienia. Kody splotowe zwykle są określane przez trzy parametry: (n,k,m). Ideą kodowania splotowego jest przekształcenie wejściowego k-bitowego ciągu informacyjnego na n-bitowy ciąg wyjściowy. Sprawność kodu splotowego wynosi k/n (n k). Dodatkowym parametrem jest m, który oznacza liczbę przerzutników D w rejestrze układu kodującego albo ilość boksów, z których ten rejestr się składa. Kody konwolucyjne generacją pary (lub większe) liczby bitów w odpowiedzi na bity wejściowe. Kody konwolucyjne charakteryzują się trema, podstawowymi wartościami: gdzie: n liczba bitów wejściowych, k liczba bitów wyjściowych, m - długość rejestru pamięci. (n, k, m) sprawność kodu (code rate) jest dana : code rate = k / n Długość rejestru pamięci (Constraint length) L jest dana wzorem:

L = k ( m - 1) L oznacza liczbę bitów w pamięci enkodera, która wpływa na generowanie n bitów wyjściowych. Koder splotowy Figure 1: Przykład kodera splotowego Implementację kodera splotowego pokazano na rysunku 1. Kod generowany przez ten kod jest niesystematycznym kodem. W przeciwieństwie do kodów lokowych, zwykle stosuje się niesystematyczne kody splotowe. Koder splotowy jako maszyna stanowa (skończony automat deterministyczny) Enkoder konwolucyjny może być również reprezentowany jako maszyna skończona. Zauważ, że (w binarnym kanale) możemy zdefiniować tylko cztery stany możliwości: 00, 01, 10, 11 (są to wszystkie, możliwe kombinacje pary bitów 0 i 1), patrz rys. 2.

Figure 2 Koder splotowy jako deterministyczny automat skończony. Zgodnie z rys. 2: linia ciągła jest używana, gdy bity wejściowe mają wartość 0, a linia przerywana jest używana, gdy bit wejściowy wynosi 1. Sekwencja bitów, umieszczona obok linii, jest wyjściową parą bitów (wyjściem kodera). Gdy skończą się bity informacyjne, koder wraca najkrótszą ścieżka do stanu S00

Schemat diagramu kratowego to reprezentacja zakodowanej wiadomości w dziedzinie czasu: Każde możliwe słowo kodowe jest reprezentowane przez pojedynczą, unikalną ścieżkę przez kratę Każde słowo kodu zaczyna się i zatrzymuje w S00 (stan zerowy) Figure 3: Example of trellis diagram Symulacja kanału komunikacyjnego z kodowaniem kanałowym %paramtery kanału I modulacji: nbits = 100000; M = 16; k = log2(m); EbNo = 11; % liczba bitów do przesłania % liczba stanów dla modulacji QAM % stosunek energii n bit do mocy szumu %Definicja wielomianu określającego rodzaj kodu (rate 2/3 code). trellis = poly2trellis([5 4],[23 35 0; 0 5 13]); coderate = 2/3; %Generowanie danych wejściowych datain = randi([0 1],nbits,1); %Kodowanie splotowe danych wejśckowych codeword = convenc(datain,trellis);

%Reshape the encoded column vector into a matrix having k columns. Then, convert the binary matrix into an integer column vector. % przygotowanie danych binarnych (kodowanie ochronne) codewordmat = reshape(codeword,length(codeword)/k,k); datasymbolsincoding = bi2de(codewordmat); % przygotowanie danych binarnych (bez kodowania ochronnego) datainmatrix = reshape(datain,length(datain)/k,k); datasymbolsin = bi2de(datainmatrix); % Reshape data into %modulacja M-QAM gray gray (differental) encoding (kodowanie roznicowe) txsig = qammod(datasymbolsin,m,0,'gray'); txsigec = qammod(datasymbolsincoding,m,0,'gray'); %model kanału z szumem (AWGN) dla danego Eb/N0 snr = EbNo + 10*log10(k*codeRate); rxsig = awgn(txsig,snr,'measured'); rxsigec = awgn(txsigec,snr,'measured'); %Demoduacja sygnalow demodsig = qamdemod(rxsig,m,0,'gray'); demodsigec = qamdemod(rxsigec,m,0,'gray'); demodsigmat = de2bi(demodsigec,k); demodsigbinaryec = demodsigmat(:); %%%%% Sciezka dla sygnalu z kodem ochronnym %%%%% %Przygotowanie dekodera Viterbiego. traceback = 16; %Dekodowanie dataout = vitdec(demodsigbinaryec,trellis,traceback,'cont','hard'); %Obliczanie BER (z oknem synchronizacyjnym) decdelay = 2*traceBack; [numerrorsec,berec] = biterr(datain(1:end-decdelay),dataout(decdelay+1:end));

%%%%%% %%%%% Sciezka dla sygnalu bez kodu ochronnego %%%%% dataoutmatrix = de2bi(demodsig,k); dataout = dataoutmatrix(:); % Return data in column vector %Obliczanie BER [numerrors,ber] = biterr(datain,dataout); % wyswietlanie wynikow na ekranie fprintf('\nthe binary coding bit error rate = %5.2e, based on %d errors\n',... ber,numerrors) fprintf('\n[convolution error coding]the binary coding bit error rate = %5.2e, based on %d errors\n',... berec,numerrorsec) 2.1 Ćwiczenia: Zmierz współczynnik BER dla Eb/N0 zmieniającego się w zakresie od 1 do 20 (z krokiem co 1). Porównaj uzyskane wyniki z teoretycznymi wartościami BER za pomocą Matlabowego narzędzia: bertool. Zmierz BER dla QAM4 i QAM64 Zmierz BER dla innych typów kodera, np.: 7,[171 133] ( dlugość rejestru pamięci = 7, współczynnik kodowania = ½ ) Porównaj uzyskane wyniki z innymi rodzajami kodów ochronnych (np Kod Hamminga narzędzie bertool.)