Bestand:Butterworth filter bode plot.png

Oorspronkelijk bestand(1.250 × 875 pixels, bestandsgrootte: 110 kB, MIME-type: image/png)


Beschrijving

Beschrijving
English: The Bode plot of a Butterworth filter with logarithmic axes and various labels. Cutoff frequency is normalized to 1 rad/s. Gain is normalized to 0 dB in the passband. Phase is in degrees because that's typical.

The code is kind of kludgy, but makes a good output.

See Wikipedia graph-making tips. Generated in gnuplot with the script below (save as butterworth_bode_plot.plt and then open in gnuplot). Then I opened the butterworth_bode_plot.ps file in a text editor to edit the line colors and linestyles, as per this description. This avoids needing to open in proprietary software, and really isn't that difficult (especially if you don't know the commands in the proprietary software either). ;-) Identify the lines easily by their color (the arrow is currently magenta and I want it to be black. Ah, there is the entry with 1 0 1, red + blue = magenta) or by using the gnuplot linestyle−1. (For instance, gnuplot's linestyle 3 corresponds to the ps file's /LT2.) Then you can edit the colors and dashes by hand. I changed the original:
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def

into this:

/LT0 { PL [] 0 0 1 DL } def
/LT1 { PL [4 dl 2 dl] 0.5 0.5 0.5 DL } def
/LT2 { PL [6 dl 3 dl] 0.3 0.3 1 DL } def
/LT3 { PL [] 0 0 0 DL } def

/LT4–/LT8 I left unchanged. (I don't know what they're used for anyway.) /LTw, /LTb, and /LTa are for the grid lines and such.

To convert the PostScript file to PNG:

  1. Open it in the GIMP (make sure you have ghostscript installed! - Windows instructions)
    • Enter 500 under Resolution (it doesn't say "DPI" but I think that's what it means)
    • Uncheck Try bounding box (since the bounding box cuts off the edge, unfortunately. You can try with the bounding box first.)
    • Enter large values for Width and Height
    • Check Color
    • Check Strong anti-aliasing for both graphics and text
  2. Crop off extra whitespace (Shift+C if you can't find it in the toolbox)
  3. Possibly need to rotate it: Click ImageTransformRotate 90 degrees clockwise
  4. FiltersBlurGaussian blur at 2.0 px (No need to blur if you use strong anti-aliasing during conversion. I see no significant difference between end results.)
  5. ImageScale Image...
    • Width and Height at 25%
    • Cubic interpolation
  6. You can view at normal size if you want by pressing 1, Ctrl+E
  7. Save as Butterworth filter bode plot.png
 
Deze PNG rasterafbeelding is gemaakt met Gnuplot.
Many orders on one plot: File:Butterworth orders.png
Datum 8 oktober 2005 (uploaddatum)
Bron Eigen werk
Auteur Omegatron
Andere versies

[bewerken]


.svg:

.png:

gnuplot source
InfoField
click to expand
set samples 2001
set terminal postscript enhanced landscape color lw 2 "Times-Roman" 20
set output "butterworth bode plot.ps"

# Butterworth amplitude response and decibel calculation.  n is the order, which is just 1 in this image.
G(w,n) = 1 / (sqrt(1 + w**(2*n)))
dB(x) = 20 * log10(abs(x))
# Phase is for first order
P(w) = -pi/2-atan(1.2*w)-atan(0.09*w)

# Gridlines
set grid

# Set x axis to logarithmic scale
set logscale x 10

# No need for a key
set nokey #0.1,-25

# Frequency response's line plotting style
set style line 1 lt 1 lw 2

# Asymptote lines and slope lines are the same "arrow" style
set style line 3 lt 3 lw 1
set style arrow 3 nohead ls 3

# -3 dB arrow style
set style line 4 lt 4 lw 1
set style arrow 4 head filled size screen 0.02,15,45 ls 4

# Separator between passband and stopband line style
set style line 2 lt 2 lw 1 
set style arrow 2 nohead ls 2

set multiplot

# Magnitude response
# =============================================
set size 1,0.5
set origin 0,0.5

# Set range of x and y axes
set xrange [0.001:1000]
set yrange [-60:10]

# Create x-axis tic marks once per decade (every multiple of 10)
set xtics 10
#set ytics 10

# No need for two sets of numbers
set format x ""

# Use 10 x-axis minor divisions per major division
set mxtics 10

# Axis labels
set ylabel "Gain (dB)"

# Draw asymptote lines
set arrow 1 from 1,0 to 1000,-60 as 3
set arrow 2 from .001,0 to 1,0 as 3

# -3 dB arrow
set arrow 4 from 2,3 to 1,0 as 4

# "Cutoff frequency" label uses same coordinates as the function
set label 3 "Cutoff frequency" at 2,4 l

# "-3 dB" label
set arrow 5 from 0.5,-6 to 1,-3 as 4   
set label 4 "-3.01 dB" at 0.5,-7 r

# Draw a separator between passband and stopband and label them
set arrow 3 from 1,-60 to 1,10 as 2

# Label coordinates are relative to the graph window, not to the function, centered at the 1/4 and 3/4 width points
set label 1 "Passband" at graph 0.25, graph 0.1 c
set label 2 "Stopband" at graph 0.75, graph 0.1 c

# Draw slope lines and label
set arrow 6 from 100,-20 to 12,-20 as 3
set arrow 7 from 100,-20 to 100,-39 as 3
set label 5 "Slope: -20 dB/decade" at 100,-15 c

plot dB(G(x,1)) ls 1  title "1st-order response"

#Phase response
# =============================================
set size 1,0.5
set origin 0,0

# Set range of x and y axes
set yrange [-105:15]

# Create y-axis tic marks every 15 degrees
set ytics 30

# Regular numbers
set format x "% g"

# Axis labels
set ylabel "Phase (degrees)"
set xlabel "Angular frequency (rad/s)"

# Draw asymptote lines
set arrow 1 from 0.1,0 to 10,-90 as 3
set arrow 2 from 0.001,0 to 0.1,0 as 3
set arrow 10 from 10,-90 to 1000,-90 as 3

# -3 dB arrow
unset arrow 4 #from 2,3 to 1,0 as 4

# "Cutoff frequency" label uses same coordinates as the function
unset label 3 #"Cutoff frequency" at 2,4 l

# "-3 dB" label
unset arrow 5 #from 0.5,-6 to 1,-3 as 4   
unset label 4 #"-3.01 dB" at 0.5,-7 r

# Draw a separator between passband and stopband and label them
set arrow 3 from 1,-105 to 1,15 as 2

# Label coordinates are relative to the graph window, not to the function, centered at the 1/4 and 3/4 width points
set label 1 "Passband" at graph 0.25, graph 0.5 c
set label 2 "Stopband" at graph 0.75, graph 0.5 c

# Draw slope lines and label
unset arrow 6 #from 100,-20 to 12,-20 as 3
unset arrow 7 #from 100,-20 to 100,-39 as 3
unset label 5 #"Slope: -20 dB/decade" at 100,-18 c

plot P(x) ls 1 title "Phase response"

unset multiplot
Bestand:Butterworth filter bode plot.svg is een vectorversie van dit bestand. Indien niet van slechtere kwaliteit dient deze gebruikt te worden in plaats van deze rasterafbeelding.

File:Butterworth filter bode plot.png → File:Butterworth filter bode plot.svg

Zie Help:SVG voor meer informatie.

In andere talen
Alemannisch  Bahasa Indonesia  Bahasa Melayu  British English  català  čeština  dansk  Deutsch  eesti  English  español  Esperanto  euskara  français  Frysk  galego  hrvatski  Ido  italiano  lietuvių  magyar  Nederlands  norsk bokmål  norsk nynorsk  occitan  Plattdüütsch  polski  português  português do Brasil  română  Scots  sicilianu  slovenčina  slovenščina  suomi  svenska  Tiếng Việt  Türkçe  vèneto  Ελληνικά  беларуская (тарашкевіца)  български  македонски  нохчийн  русский  српски / srpski  татарча/tatarça  українська  ქართული  հայերեն  বাংলা  தமிழ்  മലയാളം  ไทย  한국어  日本語  简体中文  繁體中文  עברית  العربية  فارسی  +/−
SVG-bestand

Licentie

Ik, de auteursrechthebbende van dit werk, maak het hierbij onder de volgende licenties beschikbaar:
w:nl:Creative Commons
naamsvermelding Gelijk delen
Dit bestand is gelicenseerd onder de Creative Commons-licenties Naamsvermelding-Gelijk delen 3.0 Unported, 2.5 Algemeen, 2.0 Algemeen en 1.0 Algemeen.
De gebruiker mag:
  • Delen – het werk kopiëren, verspreiden en doorgeven
  • Remixen – afgeleide werken maken
Onder de volgende voorwaarden:
  • naamsvermelding – U moet op een gepaste manier aan naamsvermelding doen, een link naar de licentie geven, en aangeven of er wijzigingen in het werk zijn aangebracht. U mag dit op elke redelijke manier doen, maar niet zodanig dat de indruk wordt gewekt dat de licentiegever instemt met uw werk of uw gebruik van zijn werk.
  • Gelijk delen – Als u het werk heeft geremixt, veranderd, of erop heeft voortgebouwd, moet u het gewijzigde materiaal verspreiden onder dezelfde licentie als het oorspronkelijke werk, of een daarmee compatibele licentie.
GNU head Toestemming wordt verleend voor het kopiëren, verspreiden en/of wijzigen van dit document onder de voorwaarden van de GNU-licentie voor vrije documentatie, versie 1.2 of enige latere versie als gepubliceerd door de Free Software Foundation; zonder Invariant Sections, zonder Front-Cover Texts, en zonder Back-Cover Texts. Een kopie van de licentie is opgenomen in de sectie GNU-licentie voor vrije documentatie.
U mag zelf één van de licenties kiezen.

Bijschriften

Beschrijf in één regel wat dit bestand voorstelt

Items getoond in dit bestand

beeldt af

image/png

4b0596035fd06b6a070c0c0b5e8a4a2fd0d47617

112.847 byte

875 pixel

1.250 pixel

Bestandsgeschiedenis

Klik op een datum/tijd om het bestand te zien zoals het destijds was.

Datum/tijdMiniatuurAfmetingenGebruikerOpmerking
huidige versie8 okt 2005 22:01Miniatuurafbeelding voor de versie van 8 okt 2005 22:011.250 × 875 (110 kB)Omegatronlast revision?
8 okt 2005 21:41Miniatuurafbeelding voor de versie van 8 okt 2005 21:411.250 × 875 (113 kB)Omegatronbetter
8 okt 2005 21:30Miniatuurafbeelding voor de versie van 8 okt 2005 21:301.250 × 875 (117 kB)OmegatronThe frequency response of a Butterworth filter with logarithmic axes (Bode plot) and various labels. Cutoff frequency is normalized to 1 rad/s. Gain is

Geen enkele pagina gebruikt dit bestand.

Globaal bestandsgebruik

De volgende andere wiki's gebruiken dit bestand: