21.4.6 Hilbert transform
Hilbert transform of a function f of a single real variable x is defined by:
with the integral being taken as a Cauchy principal value. (Note that this implies
H{const}=0.) The operator H is anti-involution,
i.e. the inverse transform can be obtained by using the identity
Other basic properties include, letting g=H{f}:
-
linearity: H{α1f1(x)+α2f2(x)}=
α1H{f1}(x)+α2H{f2}(x),
- time shifting: H{f(x−a)}=g(x−a),
- scaling: H{f(ax)}=sgn(a)g(ax),
- derivative: H{df/dx}=dg/dx,
- orthogonality: ∫−∞+∞ f(x)g(x)dx=0.
The hilbert command finds Hilbert transforms.
See Section 14.2.2 and Section 21.4.7
for other uses of hilbert.
-
to compute (1), hilbert takes one mandatory
argument and one optional argument:
-
expr, an expression defining the function f.
- Optionally, x, a (real) variable (by default, x=x).
- hilbert(expr ⟨,x ⟩) returns the Hilbert transform
H{expr} of expr with respect to the variable x.
If hilbert unable to find the transform,
the inert variant Hilbert will appear in the result.
If the transform does not exist, then undef is returned.
Examples
There is no dedicated Xcas command for the inverse Hilbert transform, so one has to use
the identity (2). Indeed:
For example:
Other examples of Hilbert transform pairs follow.
Proper rational functions without poles can be transformed (since they
have zero limit at infinity) as long as their denominator factorizations
are simple enough. For example:
assume(a>0):;
hilbert(a/(t^2+a^2),t) |
rf:=sqrt(2)*(x-x^3+1)/(1+x^4) |
To demonstrate the orthogonality property, enter:
To demonstrate the derivative invariance, enter:
ratnormal(hilbert(diff(rf))-diff(hrf)) |
Examples with transcedental functions:
purge(a):;
hilbert(exp(-i*a*x),x) |
Output (after expansion):
Characteristic function transform:
|
| −ln | ⎪
⎪ | −x+1 | ⎪
⎪ | +ln | ⎪
⎪ | −x−2 | ⎪
⎪ |
|
|
π |
|
| | | | | | | | | | |
|
All of the above transforms can be transformed back by applying
hilbert again and changing the sign.