Podręcznik
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 , gdzie – predykcja bieżącej próbki . 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 , 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 różni się od sygnału wejściowego kodera jedynie błędem kwantyzacji powstającym w kwantyzatorze adaptacyjnym:
(17) |
gdzie - 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 ma mniejszą amplitudę niż sygnał wejściowy , 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):
(18) |
gdzie - moce sygnału wejściowego, różnicowego i szumu kwantyzacji, - stosunek mocy sygnału wejściowego kwantyzatora do mocy szumu kwantyzacji (zależy głównie od liczby bitów na próbkę), - 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:
(19) |
Jeśli błąd predykcji jest mniejszy od sygnału wejściowego, wówczas i . Następuje wówczas poprawa jakości sygnału skutkiem zastosowania predyktora.