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
|
已授權您依據自由軟體基金會發行的無固定段落、封面文字和封底文字GNU自由文件授權條款1.2版或任意後續版本,對本檔進行複製、傳播和/或修改。該協議的副本列在GNU自由文件授權條款中。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.)