Deltamodulation
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
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
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 die Abtastfrequenz ist, die Kreisfrequenz des Eingangssignals und die Schrittweite der Quantisierung. 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. In: Journal of the Audio Engineering Society. Band 56, Nr. 1/2, 2008, ISSN 0004-7554 (Online [PDF; 6,3 MB]).
Auf dieser Seite verwendete Medien
Autor/Urheber: Everaldo Coelho (YellowIcon);, Lizenz: LGPL
Ein Icon aus dem Crystal Project-Thema;
Autor/Urheber:
- Delta_PWM.png: Cyril BUTTAY
- derivative work: Krishnavedala (talk)
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);
|