input sigflow;
beginfig(1);
numeric u, xp, xm, yp, ym, d, tick, fix;
path xaxis, yaxis;
color fxn_color, axis_color;
u := 30;
fix := -1.5;
d := .5u;
tick := .1u;
xp := 2u;
xm := -xp;
yp := u;
ym := -yp;
xaxis := (xm-d,0)--(xp+d,0);
yaxis := (0,ym-d)--(0,yp+d);
fxn_color := .5blue;
axis_color := .5white;
drawoptions(withcolor axis_color);
drawdblarrow xaxis;
drawdblarrow yaxis;
draw (xm,-tick)--(xm,tick);
draw (xp,-tick)--(xp,tick);
drawoptions(withcolor fxn_color);
draw (xm,yp)--(0 ,yp);
dotlabel("", origin);
draw (0 ,ym)--(xp,ym);
dotlabel("", (xp,0));
drawoptions();
label.lft(TEX("\(-j\)"), (0,ym));
label.rt (TEX("\(j\)"), (0,yp));
label.bot(TEX("\(-\pi\)"), (xm,0));
label.bot(TEX("\(\pi\)"), (xp,fix));
label.top(TEX("\(H(\omega)\)"), (0,yp+d));
label.rt (TEX("\(\omega\) [radians]"), (xp+d,0));
addcaption("DTFT of the ideal discrete Hilbert transform");
addcaption("filter for \(-\pi < \omega \leq \pi\)");
draw bbox(currentpicture) withcolor white;
endfig;
end;