« poprzedni punkt   następny punkt »


2. Cyfrowy tor foniczny

Schemat ogólny cyfrowego toru fonicznego z zaznaczeniem niektórych elementów przedstawia poniższy rysunek.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Układ próbkująco-pamiętający, stosowany w cyfrowym torze fonicznym, przedstawiają poniższe rysunki w wersji schematu koncepcyjnego oraz praktycznego układu próbkująco-pamiętającego.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Dither zaznaczony na schemacie toru to stochastyczny szum, dodawany do sygnału wejściowego, w celu eliminacji zniekształceń wprowadzanych przez kwantyzer.

Ma na celu poprawę jakości odtwarzania sygnałów o niskich poziomach.

Zastosowanie szumu typu dither pozwala na uzyskanie sygnału wolnego od zniekształceń, co ilustruje poniższy rysunek.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Zastosowanie szumu typu dither wpływa na linearyzację charakterystyki konwersji, co ilustruje poniższy rysunek.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Dither wprowadza pewien minimalny poziom szumu, który może być słyszany jako bardzo ciche syczenie. Następuje zatem podniesienie tzw. podłogi szumowej.

Sposobem na wyeliminowanie lub ograniczenie szumu wprowadzanego przez dither jest technika noise shaping. Technika ta polega na kształtowaniu widmowym sygnału błędu kwantyzacji tak, by miał kształt oparty na krzywych słyszenia.

W torze fonicznym cyfrowym stosuje się różnego rodzaju kodowanie.

Ze względu na:

konieczne jest kodowanie protekcyjne i kanałowe.

Tor foniczny z uwzględnieniem kodowania przedstawia poniższy rysunek.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

W multiplekserze następuje mieszanie sygnałów (odpowiednik miksera analogowego), natomiast w demultiplekserze operacja odwrotna.

W cyfrowym torze fonicznym występują następujące rodzaje kodów:


2.1. Kodowanie protekcyjne

Kodowanie protekcyjne ma na celu zabezpieczenie sygnału cyfrowego przed skutkami błędów w procesie zapisu i odczytu.

Stosowane jest kodowanie nadmiarowe, jednak nadmiarowa informacja nie powinna przekraczać 50% objętości danych.

Przyczyny błędów w sygnale cyfrowym są następujące:

Miarą błędów jest stopa błędów=ilość błędnych bitów/ilość bitów odczytanych.

Bez korekcji nośniki cyfrowe mają stopę błędów około . Przy tej stopie błędów generowanych jest około 10 trzasków na sekundę.

Po zastosowaniu kodów stopa błędów zmniejsza się do - , w zależności od rodzaju zastosowanej ochrony przed błędami.

Kody protekcyjne służą do wykrywania, korekcji lub kompensacji błędów i zawierają:

Stosowane kody to:

Kodowanie protekcyjne poprzedzane jest zwykle operacją przeplatania bloków binarnych w celu ograniczenia skutków utraty bloków danych (np. dziury magnetyczne). Operację przeplatania zilustrowano na rysunku poniżej.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Detekcja błędów może być przeprowadzana na podstawie kontroli parzystości. Ilustrację sposobu obliczania bitu kontrolnego i przykłady wyników kontroli parzystości przedstawia poniższy rysunek.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Przykładem kodu protekcyjnego jest metoda Wynera-Asha, gdzie oprócz kontroli parzystości bloków zastosowano dodatkową kontrolę parzystości, obejmującą 2 pakiety, zapisywaną na osobnej ścieżce.

Metodę Wynera-Asha ilustruje poniższy rysunek.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Krzyżowa kontrola parzystości polega na dodaniu do każdego słowa bitu kontrolnego parzystości 1 lub 0 tak, aby w słowie występowała parzysta liczba jedynek. W ten sposób oblicza się słowa parzystości:

co ilustruje poniższy rysunek.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Poszczególne słowa układa się w bloki po 6 lub więcej słów. Do każdego bloku dodaje się po 2 słowa kontrolne P i Q.

Podczas dekodowania sprawdzane są sumy słów w bloku i porównywane z wartościami słów kontrolnych

Różnica między w0 a P0 to tzw. syndrom:

w0 - P0 =S1, w0 - Q0 =S2.

Krzyżową kontrolę parzystości ilustruje poniższa tabelka.

(źródło: K. Szklanny, Multimedia, materiały do wykładów, 2004 -kszklanny@pjwstk.edu.pl)

Słowa parzystości P0 i Q0 pozwalają ustalić położenie błędnego bitu w bloku. Można w ten sposób wykryć położenie 1 błędnego bitu, co ilustruje poniższy rysunek.

(źródło: K. Szklanny, Multimedia, materiały do wykładów, 2004 -kszklanny@pjwstk.edu.pl)

Do wykrycia większej ilości błędnych słów w bloku dla kodera CRC oblicza się słowo parzystości w=w1+w2+...+P0+Q0.

Do kontroli słowa w służy słowo CRCC tworzone ze słowa w:

CRCC=wR, gdzie R - dołączone bity kontroli nadmiarowej.

Kod krzyżowo-przeplatany (cross-interleaving code, CIC) stanowi połączenie krzyżowej kontroli błędów z przeplataniem bloków, co ilustruje poniższy rysunek.

(źródło: A. Czyżewski, Dźwięk cyfrowy, Exit, Warszawa 2001)

Kod CRC (Cyclic Redundancy Check code) jest kodem cyklicznym do kontroli informacji binarnej zawartej w blokach. Kod ten powoduje wprowadzenie kontrolowanej nadmiarowości poprzez operację binarnego mnożenia ciągów kodowych (traktowanych jak wielomiany o współczynnikach binarnych) przez ustalony wielomian (generator).

Jeśli w bloku występują 2 błędne słowa, to do wykrycia błędnego słowa potrzebne jest dodatkowe słowo kontrolne CRC (CRCC). Gdy w bloku są więcej niż 2 błędne słowa, to cały blok uznaje się za błędny i następuje kompensacja przez:

co ilustruje poniższy rysunek.

(źródło: K. Szklanny, Multimedia, materiały do wykładów, 2004 -kszklanny@pjwstk.edu.pl)


2.2. Kodowanie kanałowe

Kodowanie kanałowe (modulacja cyfrowa) ma na celu dopasowanie sygnału binarnego do charakterystyk kanału lub nośnika informacji cyfrowej.

Jest to narzędzie takiego przekształcania ciągu danych, aby w warunkach ograniczeń rzeczywistego toru można było optymalnie wykorzystać jego pojemność informacyjną. Kodowanie kanałowe głównie polega na ukształtowaniu charakterystyki widmowej sygnału cyfrowego tak, by był jak najdogodniejszy do transmisji/rejestracji i umożliwiał jak największą gęstość zapisu.

Proste kody kanałowe to:

Dwójkowe kody naturalne to nie tylko NRZ (Non-Return-to-Zero), ale również RZ (Return to Zero) i RB (Return to Bias).

W kodzie NRZ szerokość każdego impulsu jest równa czasowi trwania znaku cyfrowego (połowa okresu).

1 oznacza poziom wysoki, 0 - poziom niski. Dekodowane są przejścia 0->1 i 1->0. co ilustruje poniższy rysunek.

(źródło: K. Szklanny, Multimedia, materiały do wykładów, 2004 -kszklanny@pjwstk.edu.pl)

Wadą tego kodu jest to, że mogą powstać długie ciągi zer i jedynek lub kombinacje zer i jedynek, więc widmo sygnału jest bardzo szerokie. Ponadto, ponieważ w takt generatora dekodowane są przejścia 0->1 i 1->0, błąd w odczycie jednego przejścia powoduje, że wszystkie bity do najbliższego przejścia są błędnie dekodowane.

W kodzie RZ szerokość każdego impulsu jest równa 1/2 czasu trwania znaku cyfrowego. Każdy impuls zaczyna się w połowie taktu zegara. Dekodowane są przejścia 0->-U 0 oraz 0->+U 1, co ilustruje poniższy rysunek.

(źródło: K. Szklanny, Multimedia, materiały do wykładów, 2004 -kszklanny@pjwstk.edu.pl)

Mamy tu 3 poziomy: -U, 0, +U. Wysokość impulsów jest 2-krotnie wyższa niż w NRZ, więc SNR mniejszy (o ok. 6dB).

Do transmisji sygnału RZ wymagane jest 2-krotnie większe pasmo przenoszenia (impuls co 1/2 okresu zegara).

W kodzie RB szerokość każdego impulsu jest równa połowie czasu trwania znaku cyfrowego. Każdy impuls zaczyna się w połowie taktu zegara. Dekodowane są przejścia

co ilustruje poniższy rysunek.

(źródło: K. Szklanny, Multimedia, materiały do wykładów, 2004 -kszklanny@pjwstk.edu.pl)

Wyróżnianie poszczególnych bitów wymaga przeniesienia do dekodera impulsów taktujących

Amplituda jest tu 2 razy większa niż w NRZ.

Kodowanie kanałowe złożone stosowane jest w magnetofonach cyfrowych. Kody złożone to:


2.3. Kodowanie transmisyjne, kody czasowe i sterujące

Kodowanie transmisyjne

Kody transmisyjne są wykorzystywane do przesyłania cyfrowego sygnału fonicznego w sposób znormalizowany, zgodnie ze standardami interfejsów urządzeń fonicznych.

Protokoły transmisyjne to:

Kody czasowesłużą do celów synchronizacji. Najpopularniejszym kodem czasowym jest kod SMPTE (Society of Motion Picture and Television Engineers) do synchronizacji urządzeń.

Przypisuje on każdej ramce wizyjnej ramkę kodu, zawierającą pewien ciąg binarny.

Istnieje kilka standardów SMPTE różniących się zakresem zmian licznika ramek i czasem trwania ramki (ze względu na istnienie kilku standardów wizyjnych).

Ze względu na zapis rozróżniamy:

Innym popularnym kodem czasowym jest kod czasowy MIDI.

Kody sterujące,stosowane przede wszystkim w studiach nagrań, to


« poprzedni punkt   następny punkt »