# set terminal svg enhanced size 875 1250 fname "Times" fsize 25
set terminal postscript enhanced portrait dashed lw 1 "Helvetica" 14
set output "bode.ps"
# ugly part of something
G(w,n) = 0 * w * n + 100000 # 1 / (sqrt(1 + w**(2*n)))
dB(x) = 0 + x + 100000
# 20 * log10(abs(x))
P(w) = w * 0 + 200 # -atan(w)*180/pi
# Gridlines
set grid
# Set x axis to logarithmic scale
set logscale x 10
set logscale y 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 [0.001:100]
#set yrange [-50:150]
# Create x-axis tic marks once per decade (every multiple of 10)
set xtics 10
set ytics 10
# Use 10 x-axis minor divisions per major division
set mxtics 10
set mytics 10
# Axis labels
set ylabel "Gain"
plot dB(G(x,1)) ls 1 title "1st-order response"
#Phase response
# =============================================
set size 0.967,0.45
set origin 0.033,0.05
unset logscale y
# Set range of x and y axes
set yrange [-285:105]
# Create y-axis tic marks every 15 degrees
set ytics 45
set mytics 3
# Axis labels
set ylabel "Phase"
set xlabel "Frequency"
plot P(x) ls 1 title "Phase response"
unset multiplot