Deltamodulation

Advancedsettings.png

Dieser Artikel befindet sich derzeit in der Qualitätssicherung im WikiProjekt Elektrotechnik des Portal Elektrotechnik. Wenn du dich mit dem Thema auskennst, bist du herzlich eingeladen, dich an der Prüfung und möglichen Verbesserung des Artikels zu beteiligen. Der Meinungsaustausch dazu ist in der Diskussion (Artikel „Deltamodulation“ eintragen) zu finden.


Die Deltamodulation, auch als Δ-Modulation oder Δ-M bezeichnet, dient zur Pulsfrequenzmodulation (PFM) und Pulsdichtemodulation (PDM) und ist eine Variante der Differential Pulse Code Modulation (DPCM), bei welcher das pulscodierte Signal am Übertragungskanal nur zwei Logikpegel annehmen kann.

Das Verfahren überführt einen analogen Signalverlauf in ein Signal, das wie ein Digitalsignal nur zwei diskrete Werte annehmen kann, es ist aber in seinem Impulsabstand stufenlos veränderbar, d. h. nicht zeitdiskret. Je größer das zu konvertierende Eingangssignal, desto mehr Impulse konstanter Dauer werden pro Zeitspanne erzeugt. Mit dem Verfahren verwandt ist die Pulsweitenmodulation (PWM), bei der allerdings die Pulsbreite bei konstanter Frequenz variiert wird.

Die Deltamodulation wird unter anderem in der Messtechnik und zur Steuerung von Schaltreglern und Gleichspannungswandlern verwendet und in diesem Zusammenhang meist als Pulsfrequenzmodulation bezeichnet. Im Bereich der Signalverarbeitung wird das gleiche Verfahren als Deltamodulation bezeichnet und dient dazu, analoge Signalverläufe in eine binäre Folge umzusetzen. Eine Erweiterung der Deltamodulation stellt die Delta-Sigma-Modulation (ΣΔ-Modulation) dar, welche ergänzt um digitale Filter unter anderem bei Analog-Digital-Umsetzern (ADUs) eingesetzt wird.

Bei der Deltamodulation können nur Änderungen des Eingangssignals erkannt werden. Quantitative Aussagen über den Wert am Eingang sind nicht möglich.

Allgemeines

Prinzip Deltamodulation und Deltademodulation

Bei der Deltamodulation wird das analoge Signal in gleichmäßigen Abständen abgetastet, je ein Abtastwert wird gespeichert und mit dem vorherigen verglichen. Ist der zweite Abtastwert größer als der erste, wird vom Deltamodulator ein 1-Signal erzeugt. Ist der zweite Abtastwert kleiner, wird ein 0-Signal erzeugt.

Um einen entsprechenden Dynamikumfang mit der Deltamodulation zu erzielen, wird eine höhere Abtastfrequenz als bei der Pulscodemodulation verwendet. Wie bei der Pulscodemodulation, muss die Abtastfrequenz mindestens so hoch gewählt werden, dass das Nyquist-Shannon-Abtasttheorem erfüllt wird. Das entspricht bei der Deltamodulation dem Dynamikumfang von einem Bit. Bei der Deltamodulation wird daher die Abtastfrequenz deutlich höher als dieser untere Wert gewählt, für einen Dynamikumfang von n Bit um den Faktor 2n höher, da es sonst zu einer Slope-Overload-Verzerrung kommen kann.

Mathematische Beschreibung

Prinzip des Bitstreams der Delta Modulation. Das Ausgangssignal (blau) wird mit den Grenzwerten (grün) verglichen. Die Grenzen (grün) sind abhängig vom Eingangs/Referenzsignal (rot) und einem bestimmten Faktor. Sobald das Ausgangssignal einen Grenzwert erreicht hat, ändert sich das PWM-Signal.

Bei der Deltamodulation gibt es eine Einschränkung der Amplitude des Eingangssignals. Wenn das übertragene Signal eine große Ableitung hat (abrupte Änderungen), dann kann das modulierte Signal dem Eingangssignal nicht folgen und es kommt zu einer Übersteuerung der Flankensteilheit. Man nimmt folgendes Eingangssignal an:

,

das modulierte Signal (Ableitung des Eingangssignals), das durch den Modulator übertragen wird, ist

,

wobei die Bedingung zur Vermeidung einer Übersteuerung folgendermaßen lautet

.

Die maximale Amplitude des Eingangssignals kann also

,

wobei fs die Abtastfrequenz ist und ω die Frequenz des Eingangssignals und σ die Schrittweite der Quantisierung. Amax ist also die maximale Amplitude, welche die DM übertragen kann, ohne die Steigung zu überlasten.

Liegt ein konstantes Signal am Eingang an, resultiert am Ausgang ein 50% PWM Signal. Ist die Steigung des Eingangssignals maximal (1), resultiert ein pulsdichtenmoduliertes Signal, welches einen höheren Anteil an Einsen hat. Eine maximale Steigung in die andere Richtung (−1) hat ein pulsdichtenmoduliertes Signal mit einem höheren Anteil an Nullen zur Folge.

Literatur

  • John G. Proakis, Masoud Salehi: Communication Systems Engineering. 2. Auflage. Prentice Hall, 2002, ISBN 0-13-095007-6.
  • Djuro G. Zrilic: Circuits and Systems Based on Delta Modulation: Linear, Nonlinear and Mixed Mode Processing. Springer, 2005, ISBN 3-540-23751-8.
  • Joshua D. Reiss: Understanding Sigma–Delta Modulation: The Solved and Unsolved Issues. Jahrgang 56, Nr. 1/2. Journal of the Audio Engineering Society, 2008, ISSN 0004-7554 (Online [PDF; 6,3 MB]).

Auf dieser Seite verwendete Medien

Delta1.svg
Autor/Urheber: Katanzag, Lizenz: CC BY 2.5
Block diagram of a Δ-modulator/demodulator
Advancedsettings.png
Autor/Urheber: Everaldo Coelho (YellowIcon);, Lizenz: LGPL
Ein Icon aus dem Crystal Project-Thema;
Delta PWM.svg
Autor/Urheber: , Lizenz: CC-BY-SA-3.0

Principle of the delta Pulse Width Modulation (PWM).

Created using maxima code:
freq : 0.05;        /* frequency of the reference signal */
hysteresis : 0.15;  /* hysteresis of the delta pwm */
currentStep : 0.5;  /* rate of increase (or decrease) in the output current */
RefSinSignal(t) := sin(2*%pi*freq*t);
UpSineSignal(t) := RefSinSignal(t) + hysteresis;
LoSineSignal(t) := RefSinSignal(t) - hysteresis;
stepSize : 1e-2;    /* step size for calculations */
stepLim : ceiling(1/(freq*stepSize)); /* final step */
myX : makelist(k*stepSize,k,0,stepLim)$ /* X axis points of evaluation */
increasing : 1;     /* flag to identify if the current is increasing or decreasing */
currentY : [0]$     /* current signal (input to modulate) */
deltaSignal : [0]$  /* the delta-PWM signal (modulated) */
crossing : [0]$     /* rising and falling times of the PWM signal */
for j:1 thru stepLim do /* create the current waveform and its delta-PWM */
    block(
    if(increasing=1)
        then if(currentY[j]<=UpSineSignal(j*stepSize)) /* if current is increasing and below upper limit */
            then block(
                currentY : append(currentY,[currentY[j]+(currentStep*stepSize)]),
                deltaSignal : append(deltaSignal,[1]))
        else block(
            currentY : append(currentY,[currentY[j]-(currentStep*stepSize)]),
            deltaSignal : append(deltaSignal,[0]),
            crossing : append(crossing,[myX[j]]),
            increasing : 0)
    else
        if(currentY[j]>=LoSineSignal(j*stepSize)) /* if current is decreasing and above lower limit */
            then block(
                currentY : append(currentY,[currentY[j]-(currentStep*stepSize)]),
                deltaSignal : append(deltaSignal,[0]))
        else block(
            currentY : append(currentY,[currentY[j]+(currentStep*stepSize)]),
            deltaSignal : append(deltaSignal,[1]),
            crossing : append(crossing,[myX[j]]),
            increasing : 1)
    );
crossing : setify(crossing)$    /* convert list to set */
  /* Plot them */
load(draw);
topPlot : gr2d(points_joined=true,point_type=dot,
    line_width=2,ytics={-1,0,1},font="Times",
    ylabel="Analog signals",font_size=15,
    color=red,key="Reference",explicit(RefSinSignal(x),x,0,20),
    color=green,key="Limits",explicit(UpSineSignal(x),x,0,20),
    key="",explicit(LoSineSignal(x),x,0,20),
    color=blue,key="Output",points(myX,currentY),
    xtics=crossing,grid=true,
    user_preamble="set format x ""; set tmargin 0; 
        set bmargin 0; set xlabel "" 0,1.5",
    title=""
)$
lowPlot : gr2d(points_joined=true,point_type=dot,
    line_width=2,ytics={0,1},font="Times",title="",
    ylabel="Delta-PWM signal",xlabel="Time",
    color=magenta,points(myX,deltaSignal),
    xtics=crossing,grid=true,yrange=[-.25,1.25],
    user_preamble="set format x ""; set tmargin 0;
        set bmargin 1.5"
)$
draw(terminal=svg,file_name="Delta PWM",
    topPlot,lowPlot);