3. Predykcja i kodery ADPCM

3.1. Działanie kodera ADPCM

Predykcja to przewidywanie – w tym przypadku przewidywanie wartości bieżącej próbki sygnału na podstawie obserwacji próbek poprzednich. Przewidywalnej części sygnału nie trzeba transmitować, można ją odtworzyć w odbiorniku, używając do tego celu poprzednich próbek. Transmitować należy jedynie nieprzewidywalną część sygnału. Tę ideę wykorzystano m.in. w koderze ADPCM (Adaptive Differential Pulse Code Modulation) – rys.15. 

 

Rysunek 15 Koder i dekoder ADPCM: Q - kwantyzator adaptacyjny, , P - predyktor

Kwantowaniu (z wykorzystaniem adaptacji kwantyzatora) podlega sygnał różnicowy \varepsilon_n=x_n-x_n^p, gdzie x_n^p – predykcja bieżącej próbki x_n. Po stronie odbiorczej ta sama predykcja jest dodawana do skwantowanego sygnału różnicowego. Predykcja w koderze i w dekoderze musi być obliczona w identyczny sposób. W dekoderze do przewidywania próbki bieżącej możemy wykorzystać poprzednie próbki sygnału wyjściowego x_n^\ast, więc ten sam sygnał musimy wytworzyć po stronie nadawczej. Stąd częścią nadajnika jest kopia odbiornika, tzw. dekoder lokalny.  
Ponieważ sygnał predykcji jest odejmowany od sygnału mowy, a potem jest dodawany, to sygnał wyjściowy dekodera x_n^\ast różni się od sygnału wejściowego kodera x_n jedynie błędem kwantyzacji powstającym w kwantyzatorze adaptacyjnym:

x_n^\ast=x_n+e_n (17)

gdzie  e_n=\varepsilon_n^\ast-\varepsilon_n  - błąd kwantyzacji, powstający przy kwantowaniu sygnału różnicowego (zwanego sygnałem błędu predykcji). Jeśli predykcja jest skuteczna, czyli sygnał błędu predykcji \varepsilon_n=x_n-x_n^p ma mniejszą amplitudę niż sygnał wejściowy x_n, wówczas kwantyzator adaptacyjny „zagęszcza” siatkę poziomów kwantyzacji i błąd kwantyzacji maleje. Tym samym poprawia się jakość sygnału na wyjściu dekodera.  Ta właściwość ADPCM wynika także ze wzoru (18):

SNR=\frac{\sigma_x^2}{\sigma_e^2}=\frac{\sigma_x^2}{\sigma_\varepsilon^2}\cdot\frac{\sigma_\varepsilon^2}{\sigma_e^2}=G_p\cdot SNR_q (18)

gdzie \sigma_x^2,\ \sigma_\varepsilon^2,\ \ \sigma_e^2 -  moce sygnału wejściowego, różnicowego i szumu kwantyzacji, SNR_q=\frac{\sigma_\varepsilon^2}{\sigma_e^2}  - stosunek mocy sygnału wejściowego kwantyzatora do mocy szumu kwantyzacji (zależy głównie od liczby bitów na próbkę), G_p=\frac{\sigma_x^2}{\sigma_\varepsilon^2}  - stosunek mocy sygnału wejściowego do mocy błędu predykcji, zwany zyskiem predykcji.  
Logarytmując obie strony wzoru (18) i mnożąc przez 10, otrzymujemy wartości w decybelach:

SNR[dB]=SNR_q[dB]+G_p[dB] (19)

Jeśli błąd predykcji jest mniejszy od sygnału wejściowego, wówczas G_p>1 i G_p[dB]>0.  Następuje wówczas poprawa jakości sygnału skutkiem zastosowania predyktora.