A graph of the Hilbert transform (red) of a square wave (blue).
Instructions
See Wikipedia graph-making tips.
Plotted in Maxima with the following commands:
Heaviside step function:
u(t) := 1/2*(1+signum(t));
Rectangular function:
rect(t) := u(t + 1/2) - u(t - 1/2);
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"]);
This causes gnuplot to create a .ps file.
To convert the PostScript file to PNG:
- 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
- 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:
imag(hilbert(x))
Created by User:Omegatron using gnuplot, possibly with post-processing in the GIMP (PNG) or Inkscape (SVG)
我,本作品著作权人,特此采用以下许可协议发表本作品:
- 您可以自由地:
- 共享 – 复制、发行并传播本作品
- 修改 – 改编作品
- 惟须遵守下列条件:
- 署名 – 您必须对作品进行署名,提供授权条款的链接,并说明是否对原始内容进行了更改。您可以用任何合理的方式来署名,但不得以任何方式表明许可人认可您或您的使用。
- 相同方式共享 – 如果您再混合、转换或者基于本作品进行创作,您必须以与原先许可协议相同或相兼容的许可协议分发您贡献的作品。
https://creativecommons.org/licenses/by-sa/3.0CC BY-SA 3.0 Creative Commons Attribution-Share Alike 3.0 truetrue
|
已授权您依据自由软件基金会发行的无固定段落及封面封底文字(Invariant Sections, Front-Cover Texts, and Back-Cover Texts)的GNU自由文件许可协议1.2版或任意后续版本的条款,复制、传播和/或修改本文件。该协议的副本请见“GNU Free Documentation License”。http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue
|
(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.)