3. Predykcja i kodery ADPCM

3.4. Koder ADPCM G.726

Jako przykład kodera ADPCM weźmy koder G.726, który (podobnie jak inne kodery, w tym znany już nam G.711) jest standardem ITU - Unii Telekomunikacyjnej z siedzibą w Genewie [5]. Podstawową funkcją tego kodera jest zamiana strumienia binarnego PCM o przepływności 64 kbit/s na strumień o 2 razy mniejszej przepływności. Poza przepływnością 32 kbit/s standard G.726 oferuje kilka innych przepływności. Podstawowe parametry kodera są następujące:

  • Częstotliwość próbkowania 8 kHz
  • Przepływności binarne 40, 32, 24, 16 kbit/s
  • Zabezpieczenie przed kumulacją zniekształceń (przy wielokrotnym kodowaniu/dekodowaniu).

Odbiornik ADPCM generuje strumień binarny PCM o przepływności 64 kbit/s w taki sposób, aby w kolejnym koderze G.726 wybierane były te same poziomy kwantyzacji.
Schemat kodera, wg normy ITU [5], pokazano na rys.18, a dekodera – na rys.19.

Rysunek 18 Koder ADPCM G.726 [5]

 

Rysunek 19 Dekoder ADPCM G.726 [5]

Kwantyzator adaptacyjny ma następujące parametry:

  • Liczba poziomów 31, 15, 7 lub 4 (dla przepływności 40, 32, 24 lub 16 kbit/s).
  • Adaptacja „wstecz” wg wzoru (16):   z(n+1)=zNieM(|I_n|)
  • Adaptacja szybka dla mowy i wolna dla sygnałów modemowych, które są transmitowane w paśmie akustycznym 
  • Zabezpieczenie przed kumulacją błędów. Chodzi o to, aby odebrany z błędem numer poziomu kwantyzacji (I_n) nie spowodował trwałego rozejścia się zakresu pracy kwantyzatora i dekodera.

Predyktor różni się od opisanego wzorem (20), gdyż do przewidywania wykorzystuje nie tylko próbki sygnału mowy ale także próbki sygnału błędu predykcji:

x_n^p=\sum_{i=1}^{2}a_i(n)x_{n-i}^\ast+\sum_{i=1}^{6}b_i(n)\varepsilon_{n-i}^\ast (30)

Współczynniki predykcji a_1,\ a_2,\ b_1,\ b_2,\ldots,b_6 są adaptowane metodą sekwencyjną. Aby nie dopuścić do trwałego rozejścia się wartości współczynników predykcji w nadajniku i w odbiorniku, wprowadza się tłumienie o wartości 1-\alpha=\frac{255}{256}. Gdy, skutkiem przekłamania bitów, pojawi się błąd, jest on mnożony przez \frac{255}{256} co próbkę i szybko zanika:

a_i\left(n+1\right)=a_i\left(n\right)\left(1-\alpha\right)+\alpha\ \mathrm{\Delta}a_i(n),

b_i\left(n+1\right)=b_i\left(n\right)\left(1-\alpha\right)+\alpha\ \mathrm{\Delta}b_i(n),\qquad\alpha=\frac{1}{256}

Przy szybkości transmisji z przepływnością 32 kbit/s koder G.726 utrzymuje tę samą jakość sygnału co koder PCM o przepływności 64kbit/s.