Podręcznik
3. Predykcja i kodery ADPCM
3.2. Obliczanie predyktora
Jak skonstruować predyktor o wysokim zysku predykcji? Aby rozpatrzyć to zagadnienie, oddzielimy predyktor od układu ADPCM, przyjmując, że do przewidywania próbki sygnału wejściowego
możemy wykorzystać poprzednie próbki tego samego sygnału
,
– rys.16.
Rysunek 16 Predykcja próbki sygnału
Predyktory wykorzystywane w koderach mowy należą do predyktorów liniowych, tzn. predykcja
jest kombinacją liniową poprzednich próbek sygnału.
Najprostszy predyktor wykorzystuje wprost wartość poprzedniej próbki
. Lepszym rozwiązaniem jest użycie poprzedniej próbki pomnożonej przez współczynnik predykcji
. Ogólnie predyktor liniowy wyraża się wzorem:
![]() |
(20) |
Współczynniki predykcji
obliczamy na minimum mocy błędu predykcji:
![]() |
(21) |
gdzie E – operator uśredniania, który w praktyce jest zastępowany obliczaniem wartości średniej w bloku próbek.
Przyjmijmy, że znamy współczynniki autokorelacji sygnału:
![]() |
(22) |
Współczynnik
jest równy mocy sygnału:
.
Na początku obliczmy zysk predykcji najprostszego predyktora opisanego równaniem
.
![]() |
(23) |
Jeżeli
, wówczas
i stosowanie tego predyktora jest korzystne. Jeżeli
, wówczas jakość sygnału na wyjściu układu ADPCM jest niższa niż ta, jaką oferuje sam kwantyzator.
Zajmijmy się teraz predyktorem ze współczynnikiem predykcji:
. Próbka sygnału błędu predykcji wynosi:
, a moc tego sygnału
Minimum mocy błędu predykcji obliczymy, różniczkując
względem 
![]() |
(24) |
Zysk dla optymalnego współczynnika predykcji
wynosi
![]() |
(25) |
Jest on większy od 1, gdyż współczynniki autokorelacji spełniają nierówność
. Wartość równą 1 osiąga dla nieskorelowanego sygnału, dla którego
. Wówczas również
. Predyktor nie jest w stanie przewidzieć próbki nieskorelowanego sygnału, w związku z tym wyłącza się.
Podobnie postępujemy w ogólnym przypadku, gdy predyktor ma p współczynników i jest opisany wzorem (20). Do wyznaczenia współczynników predykcji będą potrzebne współczynniki autokorelacji
. Współczynniki predykcji są rozwiązaniem układu równań liniowych [1]. Np., dla p=3 jest to następujący układ równań:
![]() |
(26) |
Wykonując symulacje w ramach ćwiczenia laboratoryjnego „Kwantyzacja skalarna” można będzie porównać działanie kodera ADPCM z działaniem samego kwantyzatora. Różnica wartości SNR[dB] to zysk predykcji wyrażony w decybelach (wzór 19). Zysk predykcji zależy od predyktora (jest tym większy im więcej poprzedzających próbek wykorzystamy do przewidywania próbki bieżącej). W głównej jednak mierze zależy od samego sygnału. W przypadku sygnału nieskorelowanego predykcja nie jest możliwa. Podstawiając zerowe wartości współczynników autokorelacji (poza wartością
, która jest mocą sygnału) do równania (26) otrzymamy zerowy wektor prawej strony i zerowe wartości współczynników predykcji. Predykcja
i zysk wynosi 1 (w decybelach 0). Z kolei sygnał o wartości stałej jest bezbłędnie przewidywalny z wykorzystaniem predykcji
. Tu zysk jest nieskończony. Bezbłędnie przewidywalny jest też sygnał harmoniczny, wystarczy znać 2 poprzednie próbki, aby obliczyć kolejną próbkę jako kombinację liniową tych 2 poprzednich. Będzie się o tym można przekonać, symulując koder ADPCM z predyktorem o co najmniej 2 współczynnikach predykcji. Należy się wówczas spodziewać wysokich wartości SNR.
Zadanie pn. „SEZAM: System Edukacyjnych Zasobów Akademickich i Multimedialnych” realizowane w ramach projektu „NERW PW. Nauka – Edukacja – Rozwój – Współpraca” współfinansowanego ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego







