Podręcznik

3. Konwersja sekwencji bitów na sygnał

3.2. Kodowanie liniowe

Impulsy prostokątne „samodzielnie”  również mogą być sygnałami niosącymi informacje o bitach. Na przykład bitowi o wartości logicznej 1 odpowiada impuls prostokątny o czasie trwania T, a  bitowi 0 impuls o przeciwnej polaryzacji i takim samym czasie trwania. Jest to najprostszy sposób konwersji bitów na sygnał (kod NRZ – Non Return to Zero). Ponieważ nie mamy tu do czynienia z modulacją, tego typu konwersje nazywa się kodowaniem liniowym, albo transmisyjnym.  Najstarszymi, a zarazem najprostszymi kodami liniowymi oprócz wspomnianego kodu NRZ są kody: RZ (Return to Zero), AMI (Alternate Mark Inversion), HDB3 (High Density Bipolar 3) i CMI (Coded Mark Inversion). Klasyfikując te kody  liniowe na wzór modulacji można powiedzieć, że są to kody jednowartościowe i jednowymiarowe. Przykłady konwersji strumienia bitów na wymienione kody liniowe pokazano na rysunku 1.10.  
Stosując wybrany kod liniowy mamy na uwadze dopasowanie właściwości widmowych przesyłanych sygnałów do właściwości kanałów transmisyjnych, na przykład by sygnał nie zawierał składowej stałej, jeżeli składowa stała nie jest przepuszczana w kanale transmisyjnym, ale nie tylko. Ponieważ mamy do czynienia z transmisją cyfrową konieczne jest by kod liniowy umożliwiał w łatwy sposób odtwarzanie w odbiorniku częstotliwości zegara z jakim są nadawane impulsy, dawał jak największą odporność na zakłócenia i zniekształcenia sygnału w kanale, a nawet pozwalał wykrywać i usuwać błędy binarne.   

Rys.1.10. Przykład konwersji bitów na wybrane kody liniowe

Choćby pobieżna analiza wymienionych kodów linowych pokazuje, że między nimi występują istotne różnice. Na przykład, gdy kodowanie dotyczy sekwencji składających się w większości z bitów o wartości logicznej 1 (albo 0) w sygnałach otrzymanych po użyciu koderów  RZ i NRZ pojawia się składowa stała, a gdy nadawane mają być długie ciągi bitów o wartości logicznej w sygnale generowanym przez koder AMI występują długie odcinki czasu z zerowym sygnałem (brakiem sygnału), co utrudnia, a czasami wręcz uniemożliwia odtworzenie w odbiorniku okresu nadawania (częstotliwości zegara).  Wspomnianych wad koderów RZ, NRZ i AMI nie mają kodery HDB3 i CMI. W obu składowa stała nie występuje. W koderze HDB3 po trzech kolejnych zerach (brak sygnału) pojawia się impuls prostokątny o polaryzacji dodatniej albo ujemnej, co eliminuje problem  z jakim spotykamy się używając kodera AMI. Z kolei w przypadku kodera CMI sygnał nigdy nie ma wartości 0 i nigdy impuls o danej polaryzacji nie trwa dłużej niż 1,5T. Zwróćmy uwagę, że w przypadku kodu HDB3 i kodu CMI można wykrywać i czasami usuwać błędy wnoszone w kanale transmisyjnym. 
Przedstawione tu cechy koderów liniowych były związane przede wszystkim z transmisją sygnałów elektrycznych. W światłowodach impulsy światła są nadawane bądź nie. W takim przypadku trudniej jest mówić o polaryzacji, a w szczególności o polaryzacji  dodatniej czy ujemnej. Dlatego w przypadku transmisji optycznej stosuje się nieco inne kodery liniowe (rysunek 1.11).

Rys.1.11.  Przykład konwersji bitów na kody liniowe nBmB

W dotychczas przedstawionych kodach liniowych obowiązywała reguła jeden bit reprezentuje jeden impuls prostokątny. Jeżeli n-bitowa sekwencja jest reprezentowana przez m impulsów, z których każdy może przyjmować jeden z L poziomów to taki kod liniowy jest kodem z rodziny nBmL. Jednym z najpopularniejszych kodów z tej rodziny jest kod 2B1Q. W tym kodzie dwubitowej sekwencji jest przypisywany impuls prostokątny o jednej z czterech możliwych wartości amplitud. Stąd w akronimie kodu jest litera Q – quaternary. Na rysunku 1.12  jest pokazana sekwencja bitów i odpowiadający jej sygnał wyjściowy w kodzie 2B1Q.

Rys.1.12. Przykład kodu liniowego 2B1Q

Przedstawioną zasadę kodowania można zastosować dla większej liczby amplitud sygnałów prostokątnych. W ogólności prowadzi to do modulacji L-PAM (Pulse Amplitude Modulation). Liczba amplitud sygnału wynosi L. W kodzie 2B1Q, L jest równe 4, dwa bity są reprezentowane przez jeden impuls mogący przyjmować jedną z czterech wartości, a  w kodzie 4B3T, cztery bity są reprezentowane przez ciąg trzech impulsów o jednej z trzech amplitud  (T od słowa ternarny), L jest równe 3. 
Jeżeli maksymalna amplituda impulsów jest niezależna od wartościowości, to w miarę wzrostu wartościowości rośnie prawdopodobieństwo   błędnego odbioru symbolu. Może ono być wyznaczone z zależności:

    P\left(\varepsilon\right)=\frac{M-1}{M}\mathrm{erfc}\left(\sqrt{\frac{3k}{M^2-1}}\bullet\frac{E_b}{N_o}\right)  

gdzie: k=0,5{\mathrm{log}}_\mathrm{2}M,\, E_b energia przypadającej na jeden transmitowany bit, widmowa gęstość mocy No szumu białego, a erfc jest symbolem, tzw. komplementarnej funkcji błędu i wyraża się wzorem::

\mathrm{erfc}(x)=\frac{2}{\sqrt\pi}\int_{x}^{\infty}{e^{-x^2}\mathrm{d} x}  

Wzrost prawdopodobieństwa popełnienia błędu w stosunku do modulacji dwuwartościowej wynika z coraz to mniejszego odstępu pomiędzy amplitudami kolejnych symboli, gdy rośnie wartościowość modulacji i proporcjonalnego negatywnego wzrostu wpływu szumu na poziom odbieranego sygnału. To spostrzeżenie stało się podstawą fundamentalnego dla transmisji danych twierdzenia Shannon’a-Hartley’a. Zgodnie z nim teoretyczna, maksymalna pojemność kanału transmisyjnego C (przepustowość) zależy od szerokości B widma częstotliwościowego kanału oraz stosunku SNR (Signal to Noise Ratio) w kanale. Może ona być wyrażona zależnością:

C\left[\mathrm{b/s}\right]=B\left[\mathrm{Hz}\right]{\mathrm{log}}_2(1+SNR)  

Zależność tę można zastosować tylko wtedy, gdy stosunek SNR ma stałą wartość w rozpatrywanym zakresie częstotliwości (paśmie B). Oczywiście, stosunek SNR nie musi mieć stałej wartości w funkcji częstotliwości. W związku z tym, w ogólnym przypadku przepustowość kanału można wyrazić następująco:

C[\mathrm{b/s}]=\int_{f_d}^{f_g}b\log _2(1+SNR(f))\mathrm{d}f  

gdzie   fd i fg oznaczają odpowiednio dolną i górną częstotliwość kanału transmisyjnego.
Możliwości transmisyjne w kanale charakteryzuje maksymalna efektywność widmowa transmisji definiowana następująco:

\eta_{max}\mathrm{[b/(s\cdot Hz)]}=\log_2(1+SNR)  

Przedstawione modulacje cyfrowe i kody liniowe oczywiście nie wyczerpują tematyki. Więcej o modulacjach cyfrowych i kodach liniowych znajdzie Czytelnik w licznych publikacjach na ten temat.