DPCM (ang. Differential Pulse-Code Modulation) – metoda kompresji stratnej przeznaczona głównie dla sygnałów dźwiękowych. Różnicowa modulacja kodowo-impulsowa (DPCM) opiera się na zasadach kodowania sygnału stosowanych w modulacji kodowo-impulsowej (PCM), a różnica polega wyłącznie na tym, że nadajnik DPCM próbkuje otrzymany sygnał, a następnie koduje jedynie różnicę pomiędzy próbką rzeczywistą a przewidywaną. Zatem słowa kodowe metody DPCM reprezentują różnice pomiędzy kolejnymi próbkami sygnału, natomiast słowa kodowe metody PCM – konkretne wartości próbek. Odbiornik tak zakodowanego strumienia danych odtwarza oryginalny sygnał na podstawie przewidzianej przez siebie wartości oraz otrzymanej różnicy.

Efektywność metody DPCM zależy od zdolności algorytmu predykcji (przewidywania), który może być bardziej lub mniej złożony, jednak jego wynik zawsze uzyskuje się w oparciu o poprzedzające wartości próbek. Jeśli w kanale transmisyjnym nie występują szumy, to sygnał wyjściowy odbiornika różni się od oryginalnego sygnału wejściowego tylko błędem kwantyzacji.

Rozszerzeniem metody kompresji DPCM jest adaptacyjna różnicowa modulacja kodowo-impulsowa, czyli ADPCM.

Podstawy analityczne edytuj

 
Schemat nadajnika dla modulacji DPCM
 
Schemat odbiornika dla demodulacji DPCM

Predykcja wartości próbki n:

 

gdzie   – współczynnik predykcji.

Sygnał wejściowy kwantyzatora (błąd predykcji):

 

Sygnał wyjściowy kwantyzatora:

 

gdzie   – błąd kwantyzacji.

Sygnał zrekonstruowany:

 

Zysk przetwarzania edytuj

Stosunek sygnał–szum na wyjściu DPCM:

 

gdzie   to odpowiednio wariancja oryginalnego sygnału wejściowego i błędu kwantowania.

Zysk przetwarzania:

 

gdzie   – wariancja błędu predykcji.

Zalety i Wady edytuj

Zalety edytuj

  • metoda DPCM pozwala zakodować sygnał na mniejszej liczbie bitów niż PCM
  • stosunek sygnał–szum kwantowania jest lepszy o 4 – 11 dB niż w przypadku systemu PCM (dotyczy kodowania sygnałów mowy)

Wady edytuj

  • Brak możliwości swobodnego dostępu do strumienia: dekodowanie każdej próbki wymaga znajomości całej historii (problem ten rozwiązuje się, wprowadzając cykliczne zerowanie predyktora, co jednak pogarsza efektywność kompresji).

Zobacz też edytuj