Fichier:Butterworth filter bode plot.png

De testwiki
Aller à la navigation Aller à la recherche
Fichier d’origine (1 250 × 875 pixels, taille du fichier : 110 kio, type MIME : image/png)

Ce fichier provient de Wikimedia Commons et peut être utilisé par d'autres projets. Sa description sur sa page de description est affichée ci-dessous.

Description

Description
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
 Cette représentation graphique a été créée avec gnuplot par n.
Many orders on one plot: File:Butterworth orders.png
Date 8 octobre 2005 (date de téléversement)
Source Travail personnel
Auteur Omegatron
Autres versions

[modifier]

.svg:

.png:

gnuplot source
InfoField
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
Une version vectorielle de cette image existe, dans le format « SVG ». Si elle n’est pas inférieure, elle devrait être utilisée à la place de la présente version pour des affichages en plus grandes dimensions ou nécessitant une meilleure résolution.

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

Pour plus d’informations sur les images vectorielles, consultez la page de transition de Commons vers le format SVG.
Voir aussi les informations à propos de la manière dont le logiciel MediaWiki gère les images au format SVG.

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

Conditions d’utilisation

Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous les licences suivantes :
w:fr:Creative Commons
paternité partage à l’identique
Ce fichier est sous licence Creative Commons Attribution – Partage dans les Mêmes Conditions 3.0 Non Transposé, 2.5 Générique, 2.0 Générique et 1.0 Générique.
Vous êtes libre :
  • de partager – de copier, distribuer et transmettre cette œuvre
  • d’adapter – de modifier cette œuvre
Sous les conditions suivantes :
  • paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
  • partage à l’identique – Si vous modifiez, transformez ou vous basez sur cet élément, vous devez distribuer votre contribution sous une license identique ou compatible à celle de l’original.
GNU head Vous avez la permission de copier, distribuer et modifier ce document selon les termes de la GNU Free Documentation License version 1.2 ou toute version ultérieure publiée par la Free Software Foundation, sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture. Un exemplaire de la licence est inclus dans la section intitulée GNU Free Documentation License.
Vous pouvez choisir l’une de ces licences.

Légendes

Ajoutez en une ligne la description de ce que représente ce fichier

Éléments décrits dans ce fichier

dépeint

image/png

4b0596035fd06b6a070c0c0b5e8a4a2fd0d47617

112 847 octet

875 pixel

1 250 pixel

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureVignetteDimensionsUtilisateurCommentaire
actuel8 octobre 2005 à 21:01Vignette pour la version du 8 octobre 2005 à 21:011 250 × 875 (110 kio)wikimediacommons>Omegatronlast revision?

La page suivante utilise ce fichier :