Image:Hilbert transform.png

From Wikipedia, the free encyclopedia

Wikimedia Commons logo This is a file from the Wikimedia Commons. The description on its description page there is shown below.

A graph of the Hilbert transform (red) of a square wave (blue).

[edit] 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:

  1. 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
  2. Crop off extra whitespace (Shift+C if you can't find it in the toolbox)
  3. Possibly need to rotate it: Click ImageTransformRotate 90 degrees clockwise
  4. FiltersBlurGaussian 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.)
  5. ImageScale Image...
    • Width and Height at 25%
    • Cubic interpolation
  6. You can view at normal size if you want by pressing 1, Ctrl+E
  7. Save as Hilbert transform.png

Original version of this plot was made in GNU Octave with the command:

imag(hilbert(x))

Source: Created by User:Omegatron using gnuplot, possibly with post-processing in the GIMP (PNG) or Inkscape (SVG)


I, the author of this work, hereby publish it under the following licenses:
GNU head Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

العربية | Česky | Deutsch | English | Español | Français | Italiano | 日本語 | 한국어 | Nederlands | Polski | Português | Slovenčina | Svenska | עברית +/-

Some rights reserved
Creative Commons Attribution iconCreative Commons Share Alike icon
This file is licensed under the Creative Commons Attribution ShareAlike license versions 2.5, 2.0, and 1.0
You may select the license of your choice.

The following pages on the English Wikipedia link to this file (pages on other projects are not listed):