Die Delta-Modulation ist ein Verfahren für die Speicherung und Übertragung von Daten, die äquidistante Stützstellen eines stetigen Verlaufs sind wie z.B Audio-Daten. Anstatt alle Werte als unabhängige Zahlen zu speichern oder zu übertragen wird jeweils durch die letzten n Werte ein Polynom (n-1)ten Grades gelegt und dessen Wert am nächsten Punkt berechnet. Übertragen wird die Differenz zwischen dem tatsächlichen Wert und dem vorausberechneten (der sog. Prädiktion). Diese Differenzen sollten klein sein, so dass nur wenige Bits dafür benötigt werden.
Es kann vorkommen, dass die zu übertragende Differenz nicht mehr durch die festgelegte Anzahl von Bits darstellbar ist. Man limitiert dann den Wert und spricht von "Overloading". In diesem Fall kann die ursprüngliche Datensequenz nicht ganz korrekt übertragen werden.
Zur Demonstration des Verfahrens dient die Funktion demoprediction(n,m,g)
mit den Parametern
n = Anzahl der Bits für die Repräsentation der Originaldaten, m = Anzahl der Bits pro zu übertragende Differenz,
g = Polynomgrad .
Die Funktion benutzt einen in der Frequenz ansteigenden Ton als Originalsignal (Chirp).
Die Tendenz zum Overloading steigt damit von links nach rechts.
Bei der eigentlichen Deltamodulation ist der Polynomgrad g = 0 :
Diese Funktion ist sehr rechenintensiv. Die Ausführung kann Minuten dauern!
demoprediction(6,3,0);
Wählen Sie mit der Maus unter dem Menü "Zoom" im oberen Bild ("Audio") jeweils einen Ausschnitt am Anfang, in der Mitte und am Ende der Datensequenz. Das Overloading beginnt etwa in der Mitte.
Zur Übertragung ohne Overload bei einer Genauigkeit von 10 bzw. 20 Bit sind bei dem gegebenen Signal 4 bzw. 7 Bit pro Datum erforderlich:
demoprediction(10,4,3);
demoprediction(20,7,6);
Im Fall des Polynomgrades g = 0 kann es zwar Overload-Fehler geben, das rekonstruierte Signal ist danach aber immer korrekt an den Stellen ohne Overloading. Bei g > 0 (mit steigender Tendenz bei größeren g) nimmt die Wahrscheinlichkeit zu, dass die Rekonstruktion nach einem Overloading nicht mehr gelingt. Dies liegt daran, dass Polynome höheren Grades im mittleren Bereich der Stützstellen zwar gut interpolieren, aber generell schlecht extrapolieren. Ein Beispiel ist das folgende:
demoprediction(10,3,2);
Die Deltamodulation ist nur eines von vielen Verfahren zur Codierung von Daten mit Korrelation von Nachbarn. Andere Verfahren erfordern zum Verständnis jedoch tiefergehende mathematische Kenntnisse, die an dieser Stelle noch nicht vorausgesetzt werden sollen.