Image:Sigma delta.png
From Wikipedia, the free encyclopedia
Size of this preview: 800 × 560 pixels
Full resolution (1,500 × 1,050 pixels, file size: 93 KB, MIME type: image/png)
| | This is a file from the Wikimedia Commons. The description on its description page there is shown below.
|
[edit] Summary
| Description |
Main signals of a sigma-delta Pulse-Width Modulation (PWM) |
|---|---|
| Source |
Own Work |
| Date |
6/6/2006 |
| Author |
Cyril BUTTAY |
| Permission (Reusing this image) |
as licenced |
[edit] Licensing
[edit] Details
This graph represents the main signals of a sigma-delta PWM. The top green waveform is the reference signal, on which the output signal (PWM, in the middle plot) is substracted to form the error signal (blue, in top plot). This error is integrated (bottom plot), and when the integral of the error exceeds the limits (red lines), the output changes state.
This figure was made using the following python code (requires gnuplot 4.0 and scipy):
#!/usr/bin/python
#this file generates data and the gnuplot file used for the sigma
# delta pwm plot. Needs python, scipy and gnuplot (4.0 used)
from scipy import *
freq= 0.05 # frequency of the reference signal
step=1e-3 # calculation time step
hysteresis=0.15 # hysteresis of the sigma-delta pwm
pwm=[1] # This vector is the pwm signal
grid=["0"] # this vector contains the x-values at which the pwm signal
# changes state
error=[0]
integral=[0]
file = open("sigma_delta.dat","w") # the data file
for i in range(int(1/(freq*step))):
reference=sin(i*step*freq*2*pi)
error=reference-pwm[i]
integral.append(integral[i]+step*error)
if integral[i+1]>hysteresis:
pwm.append(1)
grid.append("%s"%(i*step))
elif integral[i+1]<-hysteresis:
pwm.append(-1)
grid.append("%s"%(i*step))
else:
pwm.append(pwm[i])
file.write('%s\t%s\t%s\t%s\t%s\n'%(i*step,reference,pwm[i],
error,integral[i]))
file.close() # end of data generation
xtics=',"" '.join(grid) # creates a string used for the x-tics
file = open("sigma_delta.plt","w") # generates the gnuplot file
file.write("""
# This file is used to generate a plot that explains the
# principle of the sigma-delta pwm
# graph configuration
set terminal postscript eps enhanced "Times-Roman" 24 color solid
set encoding iso_8859_15
unset title
set line style 1 lt 3 lw 3 pt 0 ps 0
set line style 2 lt 2 lw 3 pt 0 ps 0
set line style 3 lt 8 lw 2 pt 0 ps 0
set line style 4 lt 4 lw 3 pt 0 ps 0
set border 15 lt 7 lw 4
set grid xtics ytics
set xlabel ""
set format x ""
set bmargin 0
set tmargin 0
set ytics 1
set xtics (%s)
set output "sigma_delta.eps"
set multiplot
set ylabel "Ref. and Error"
set origin 0,0.695
set size 1,0.3
plot [0:19][-2.2:2.2] 'sigma_delta.dat' using 1:2 ls 2 title '' w l,\
'' using 1:4 ls 1 title '' w l
set ylabel "PWM"
set origin 0,0.395
plot [0:19][-1.2:1.2]'sigma_delta.dat' using 1:3 ls 4 title '' w l
set arrow 1 from graph 0,first %s to graph 1, first %s nohead
set arrow 2 from graph 0,first %s to graph 1, first %s nohead
set ylabel "Integration"
set xlabel "Time"
set origin 0,0.095
plot [0:19][-0.25:0.25] 'sigma_delta.dat' using 1:5 ls 1 title '' w l
unset multiplot """ %( xtics, hysteresis, hysteresis, -hysteresis, -hysteresis))
file.close() # end of the gnuplot file.
#%set ytics ("0" 0, "-1" -1, "1" 1)
File history
Click on a date/time to view the file as it appeared at that time.
| Date/Time | Dimensions | User | Comment | |
|---|---|---|---|---|
| current | 20:41, 6 June 2006 | 1,500×1,050 (93 KB) | CyrilB | ({{Information |Description=Main signals of a sigma-delta Pulse-Width Modulation (PWM) |Source=Own Work |Date=6/6/2006 |Author=Cyril BUTTAY |Permission=as licenced |other_versions= }}) |
File links
The following pages on the English Wikipedia link to this file (pages on other projects are not listed):

