Main Content

ihtrans

Inverse Hilbert transform

Description

f = ihtrans(H) returns the inverse Hilbert transform of symbolic function H. By default, the independent variable is x and the transformation variable is t.

example

f = ihtrans(H,transVar) uses the transformation variable transVar instead of t.

example

f = ihtrans(H,var,transVar) uses the independent variable var and the transformation variable transVar instead of x and t, respectively.

  • If all input arguments are arrays of the same size, then ihtrans acts element-wise.

  • If one input is a scalar and the others are arrays of the same size, then ihtrans expands the scalar into an array of the same size.

  • If f is an array of symbolic expressions with different independent variables, then var must be a symbolic array with elements corresponding to the independent variables.

example

Examples

collapse all

Compute the inverse Hilbert transform of cos(x). By default, the inverse transform returns a function of t.

syms x;
f = cos(x);
H = ihtrans(f)
H = -sin(t)

Compute the inverse Hilbert transform of the sinc(t) function, which is equal to sin(pi*t)/(pi*t). Express the result as a function of s.

syms H(t) f(s);
H(t) = sinc(t);
f(s) = ihtrans(H,s)
f(s) = 

cos(πs)s-1sπ

Plot the sinc function and its inverse Hilbert transform.

fplot(H(t),[0 6],'b')
hold on
fplot(f(s),[0 6],'r')
legend('sinc(t)','f(s)')

Figure contains an axes object. The axes object contains 2 objects of type functionline. These objects represent sinc(t), f(s).

Create a sine wave with a positive frequency in real space.

syms A x t u;
assume([x t],'real')
H = A*sin(2*pi*10*t + 5*x)
H = Asin(5x+20πt)

Apply a 90-degree phase shift to the positive frequency component using the inverse Hilbert transform. Specify the independent variable as x and the transformation variable as u, respectively.

f = ihtrans(H,x,u)
f = Acos(5u+20πt)

Now create a complex signal with negative frequency. Apply a –90-degree phase shift to the negative frequency component using the inverse Hilbert transform.

Z = A*exp(-1i*10*t)
Z = Ae-10ti
f = ihtrans(Z)
f = -Ae-10uii

Create a real-valued signal f(s) with two frequency components, 60 Hz and 90 Hz.

syms s f(x) F(t)
f(s) = sin(2*pi*60*s) + sin(2*pi*90*s)
f(s) = sin(120πs)+sin(180πs)

Calculate the corresponding analytic signal F(t) using the inverse Hilbert transform.

F(t) = ihtrans(f(s),t) + 1i*f(t)
F(t) = cos(120πt)+cos(180πt)+sin(120πt)i+sin(180πt)i

Calculate the instantaneous frequency of F(t) using

finstant(t)=12πdϕ(t)dt,

where ϕ(t)=arg[F(t)] is the instantaneous phase of the analytic signal.

InstantFreq(t) = diff(angle(F(t)),t)/(2*pi);
assume(t,'real')
simplify(InstantFreq(t))
ans = 75

Input Arguments

collapse all

Input, specified as a symbolic expression, symbolic function, symbolic vector, or symbolic matrix.

Independent variable, specified as a symbolic variable, symbolic vector, or symbolic matrix. This variable is usually in the time domain. If you do not specify the variable, then ihtrans uses x by default. If H does not contain x, then ihtrans uses the function symvar to determine the independent variable.

Transformation variable, specified as a symbolic variable, symbolic vector, or symbolic matrix. This variable is in the same domain as var. If you do not specify the variable, then ihtrans uses t by default. If t is the independent variable of H, then ihtrans uses the transformation variable u.

Output Arguments

collapse all

Inverse Hilbert transform of the input function H. The output f is a function of the variable specified by transVar.

When ihtrans cannot transform the input function, it returns an unevaluated call. To return the original expression, apply the Hilbert transform to the output by using htrans.

More About

collapse all

Inverse Hilbert Transform

The inverse Hilbert transform f = f(t) of the expression H = H(x) with respect to the variable x at point t is

f(t)=1πp.v.H(x)xtdx.

Here, p.v. represents the Cauchy principal value of the integral. The function H(x) can be complex, but x and t must be real.

Tips

  • To compute the Hilbert transform, use htrans. The inverse Hilbert transform of a function is equal to the negative of its Hilbert transform.

  • For a signal in the time domain, the inverse Hilbert transform applies a 90-degree phase shift to negative frequencies of the corresponding Fourier components. It also applies a –90-degree phase shift to positive frequencies.

  • A real-valued signal b is the harmonic conjugate of its inverse Hilbert transform a = ihtrans(b). The inverse Hilbert transform a = real(z) and the signal b = imag(z) form the analytic signal z = a + 1i*b.

Version History

Introduced in R2019a