File:Butterworth filter bode plot.png

页面内容不支持其他语言。
這個文件來自維基共享資源
维基百科,自由的百科全书

原始文件(1,250 × 875像素,文件大小:110 KB,MIME类型:image/png


摘要

描述
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
 
本PNG 位图使用Gnuplot创作.
Many orders on one plot: File:Butterworth orders.png
日期 2005年10月8日 (上传日期)
来源 自己的作品
作者 Omegatron
其他版本

[编辑]


.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
File:Butterworth filter bode plot.svg是此文件的矢量版本。 如果此文件质量不低于原点阵图,就应该将这个PNG格式文件替换为此文件。

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

更多信息请参阅Help:SVG/zh

其他语言
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图片

许可协议

我,本作品著作权人,特此采用以下许可协议发表本作品:
w:zh:知识共享
署名 相同方式共享
本文件采用知识共享署名-相同方式共享3.0 未本地化版本2.5 通用2.0 通用1.0 通用许可协议授权。
您可以自由地:
  • 共享 – 复制、发行并传播本作品
  • 修改 – 改编作品
惟须遵守下列条件:
  • 署名 – 您必须对作品进行署名,提供授权条款的链接,并说明是否对原始内容进行了更改。您可以用任何合理的方式来署名,但不得以任何方式表明许可人认可您或您的使用。
  • 相同方式共享 – 如果您再混合、转换或者基于本作品进行创作,您必须以与原先许可协议相同或相兼容的许可协议分发您贡献的作品。
GNU head 已授权您依据自由软件基金会发行的无固定段落及封面封底文字(Invariant Sections, Front-Cover Texts, and Back-Cover Texts)的GNU自由文件许可协议1.2版或任意后续版本的条款,复制、传播和/或修改本文件。该协议的副本请见“GNU Free Documentation License”。
您可以选择您需要的许可协议。

说明

添加一行文字以描述该文件所表现的内容

此文件中描述的项目

描繪內容

4b0596035fd06b6a070c0c0b5e8a4a2fd0d47617

112,847 字节

875 像素

1,250 像素

文件历史

点击某个日期/时间查看对应时刻的文件。

日期/时间缩⁠略⁠图大小用户备注
当前2005年10月8日 (六) 20:012005年10月8日 (六) 20:01版本的缩略图1,250 × 875(110 KB)Omegatronlast revision?
2005年10月8日 (六) 19:412005年10月8日 (六) 19:41版本的缩略图1,250 × 875(113 KB)Omegatronbetter
2005年10月8日 (六) 19:302005年10月8日 (六) 19:30版本的缩略图1,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

以下页面使用本文件:

全域文件用途

以下其他wiki使用此文件: