A train of rectangular pulses (or a square wave). This should be n=−∞..+∞, but I can't get Maxima to evaluate it, so I just chose n values that would give a close enough approximation for the visible area:
train(t) := sum(rect(t-2*n),n,-10,20);
The Hilbert transform of a rectangular pulse:
hrect(t) := log(abs((t+1/2)/(t-1/2)))/%PI;
A "train" of hrects. Again with the approximation, though this time it actually matters (rectangular function is 0 everywhere; this is not.):
htrain(t) := sum(hrect(t-2*n),n,-100,100);
The plot command:
plot2d([train(t)-0.5,htrain(t)],[t,0,6],[y,-1,1],[nticks,500], [gnuplot_preamble,"set grid; set ytics 1; set nokey"], [gnuplot_ps_term_command,"set term postscript enhanced landscape color solid lw 2 'Times-Roman' 20"], [gnuplot_term,ps], [gnuplot_out_file,"hilbert.ps"]);
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
Crop off extra whitespace (Shift+C if you can't find it in the toolbox)
Possibly need to rotate it: Click Image → Transform → Rotate 90 degrees clockwise
Filters → Blur → Gaussian 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.)
Image → Scale Image...
Width and Height at 25%
Cubic interpolation
You can view at normal size if you want by pressing 1, Ctrl+E
Save as Hilbert transform.png
Original version of this plot was made in GNU Octave with the command:
(In short, this means that you can copy and modify the image freely as long as you provide attribution; preferably in the form of a link back to this page.)