Hilbert transform

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description In mathematics and signal processing, the Hilbert transform is a specific singular integral that takes a function, u(t)Script error: No such module "Check for unknown parameters". of a real variable and produces another function of a real variable H(u)(t)Script error: No such module "Check for unknown parameters".. The Hilbert transform is given by the Cauchy principal value of the convolution with the function 1/(πt) (see Template:Slink). The Hilbert transform has a particularly simple representation in the frequency domain: It imparts a phase shift of ±90° (Template:Pi/2 radians) to every frequency component of a function, the sign of the shift depending on the sign of the frequency (see Template:Slink). The Hilbert transform is important in signal processing, where it is a component of the analytic representation of a real-valued signal u(t)Script error: No such module "Check for unknown parameters".. The Hilbert transform was first introduced by David Hilbert in this setting, to solve a special case of the Riemann–Hilbert problem for analytic functions.

Definition

The Hilbert transform of Template:Mvar can be thought of as the convolution of u(t)Script error: No such module "Check for unknown parameters". with the function h(t) = Template:SfracScript error: No such module "Check for unknown parameters"., known as the Cauchy kernel. Because 1/Template:Mvar is not integrable across t = 0Script error: No such module "Check for unknown parameters"., the integral defining the convolution does not always converge. Instead, the Hilbert transform is defined using the Cauchy principal value (denoted here by p.v.Script error: No such module "Check for unknown parameters".). Explicitly, the Hilbert transform of a function (or signal) u(t)Script error: No such module "Check for unknown parameters". is given by

H(u)(t)=1πp.v.+u(τ)tτdτ,

provided this integral exists as a principal value. This is precisely the convolution of Template:Mvar with the tempered distribution p.v. Template:SfracScript error: No such module "Check for unknown parameters"..[1] Alternatively, by changing variables, the principal-value integral can be written explicitly[2] as

H(u)(t)=2πlimε0εu(tτ)u(t+τ)2τdτ.

When the Hilbert transform is applied twice in succession to a function Template:Mvar, the result is

H(H(u))(t)=u(t),

provided the integrals defining both iterations converge in a suitable sense. In particular, the inverse transform is H. This fact can most easily be seen by considering the effect of the Hilbert transform on the Fourier transform of u(t)Script error: No such module "Check for unknown parameters". (see Template:Slink below).

For an analytic function in the upper half-plane, the Hilbert transform describes the relationship between the real part and the imaginary part of the boundary values. That is, if f(z)Script error: No such module "Check for unknown parameters". is analytic in the upper half complex plane {z : Im{z} > 0}Script error: No such module "Check for unknown parameters"., and u(t) = Re{f (t + 0·i)}Script error: No such module "Check for unknown parameters"., then Im{f(t + 0·i)} = H(u)(t)Script error: No such module "Check for unknown parameters". up to an additive constant, provided this Hilbert transform exists.

Notation

In signal processing the Hilbert transform of u(t)Script error: No such module "Check for unknown parameters". is commonly denoted by u^(t).[3] However, in mathematics, this notation is already extensively used to denote the Fourier transform of u(t)Script error: No such module "Check for unknown parameters"..[4] Occasionally, the Hilbert transform may be denoted by u~(t). Furthermore, many sources define the Hilbert transform as the negative of the one defined here.[5]

History

The Hilbert transform arose in Hilbert's 1905 work on a problem Riemann posed concerning analytic functions,Template:SfnTemplate:Sfn which has come to be known as the Riemann–Hilbert problem. Hilbert's work was mainly concerned with the Hilbert transform for functions defined on the circle.Template:SfnTemplate:Sfn Some of his earlier work related to the Discrete Hilbert Transform dates back to lectures he gave in Göttingen. The results were later published by Hermann Weyl in his dissertation.Template:Sfn Schur improved Hilbert's results about the discrete Hilbert transform and extended them to the integral case.Template:Sfn These results were restricted to the spaces L2Script error: No such module "Check for unknown parameters". and 2Script error: No such module "Check for unknown parameters".. In 1928, Marcel Riesz proved that the Hilbert transform can be defined for u in Lp() (Lp space) for 1 < p < ∞Script error: No such module "Check for unknown parameters"., that the Hilbert transform is a bounded operator on Lp() for 1 < p < ∞Script error: No such module "Check for unknown parameters"., and that similar results hold for the Hilbert transform on the circle as well as the discrete Hilbert transform.Template:Sfn The Hilbert transform was a motivating example for Antoni Zygmund and Alberto Calderón during their study of singular integrals.Template:Sfn Their investigations have played a fundamental role in modern harmonic analysis. Various generalizations of the Hilbert transform, such as the bilinear and trilinear Hilbert transforms are still active areas of research today.

Relationship with the Fourier transform

The Hilbert transform is a multiplier operator.Template:Sfn The multiplier of HScript error: No such module "Check for unknown parameters". is σH(ω) = −i sgn(ω)Script error: No such module "Check for unknown parameters"., where sgnScript error: No such module "Check for unknown parameters". is the signum function. Therefore:

(H(u))(ω)=isgn(ω)(u)(ω),

where denotes the Fourier transform. Since sgn(x) = sgn(2Template:Pix)Script error: No such module "Check for unknown parameters"., it follows that this result applies to the three common definitions of .

By Euler's formula, σH(ω)={i=e+iπ/2if ω<00if ω=0i=eiπ/2if ω>0

Therefore, H(u)(t)Script error: No such module "Check for unknown parameters". has the effect of shifting the phase of the negative frequency components of u(t)Script error: No such module "Check for unknown parameters". by +90° (<templatestyles src="Fraction/styles.css" />Template:Pi2 radians) and the phase of the positive frequency components by −90°, and i·H(u)(t)Script error: No such module "Check for unknown parameters". has the effect of restoring the positive frequency components while shifting the negative frequency ones an additional +90°, resulting in their negation (i.e., a multiplication by −1).

When the Hilbert transform is applied twice, the phase of the negative and positive frequency components of u(t)Script error: No such module "Check for unknown parameters". are respectively shifted by +180° and −180°, which are equivalent amounts. The signal is negated; i.e., H(H(u)) = −uScript error: No such module "Check for unknown parameters"., because

(σH(ω))2=e±iπ=1for ω0.

Table of selected Hilbert transforms

In the following table, the frequency parameter ω is real.

Signal
u(t)
Hilbert transform[fn 1]
H(u)(t)
sin(ωt+φ) [fn 2]

sin(ωt+φπ2)=cos(ωt+φ),ω>0sin(ωt+φ+π2)=cos(ωt+φ),ω<0

cos(ωt+φ) [fn 2]

cos(ωt+φπ2)=sin(ωt+φ),ω>0cos(ωt+φ+π2)=sin(ωt+φ),ω<0

eiωt

ei(ωtπ2),ω>0ei(ωt+π2),ω<0

eiωt

ei(ωtπ2),ω>0ei(ωt+π2),ω<0

1t2+1 tt2+1
et2 2πF(t)
(see Dawson function)
Sinc function
sin(t)t
1cos(t)t
Dirac delta function
δ(t)
1πt
Characteristic function
χ[a,b](t)
1πln|tatb|

Notes

  1. Some authors (e.g., Bracewell) use our −HScript error: No such module "Check for unknown parameters". as their definition of the forward transform. A consequence is that the right column of this table would be negated.
  2. a b The Hilbert transform of the sin and cos functions can be defined by taking the principal value of the integral at infinity. This definition agrees with the result of defining the Hilbert transform distributionally.

An extensive table of Hilbert transforms is available.Template:Sfn Note that the Hilbert transform of a constant is zero.

Domain of definition

It is by no means obvious that the Hilbert transform is well-defined at all, as the improper integral defining it must converge in a suitable sense. However, the Hilbert transform is well-defined for a broad class of functions, namely those in Lp() for 1 < p < ∞Script error: No such module "Check for unknown parameters"..

More precisely, if Template:Mvar is in Lp() for 1 < p < ∞Script error: No such module "Check for unknown parameters"., then the limit defining the improper integral

H(u)(t)=2πlimε0εu(tτ)u(t+τ)2τdτ

exists for almost every Template:Mvar. The limit function is also in Lp() and is in fact the limit in the mean of the improper integral as well. That is,

2πεu(tτ)u(t+τ)2τdτH(u)(t)

as ε → 0Script error: No such module "Check for unknown parameters". in the Template:Mvar norm, as well as pointwise almost everywhere, by the Titchmarsh theorem.Template:Sfn

In the case p = 1Script error: No such module "Check for unknown parameters"., the Hilbert transform still converges pointwise almost everywhere, but may itself fail to be integrable, even locally.Template:Sfn In particular, convergence in the mean does not in general happen in this case. The Hilbert transform of an L1Script error: No such module "Check for unknown parameters". function does converge, however, in L1Script error: No such module "Check for unknown parameters".-weak, and the Hilbert transform is a bounded operator from L1Script error: No such module "Check for unknown parameters". to L1,wScript error: No such module "Check for unknown parameters"..Template:Sfn (In particular, since the Hilbert transform is also a multiplier operator on L2Script error: No such module "Check for unknown parameters"., Marcinkiewicz interpolation and a duality argument furnishes an alternative proof that Template:Mvar is bounded on LpScript error: No such module "Check for unknown parameters"..)

Properties

Boundedness

If 1 < p < ∞Script error: No such module "Check for unknown parameters"., then the Hilbert transform on Lp() is a bounded linear operator, meaning that there exists a constant Template:Mvar such that

HupCpup

for all uLp().[6]

The best constant Cp is given by[7] Cp={tanπ2pif1<p2cotπ2pif2<p<

An easy way to find the best Cp for p being a power of 2 is through the so-called Cotlar's identity that (Hf)2=f2+2H(fHf) for all real valued Template:Mvar. The same best constants hold for the periodic Hilbert transform.

The boundedness of the Hilbert transform implies the Lp() convergence of the symmetric partial sum operator SRf=RRf^(ξ)e2πixξdξ

to Template:Mvar in Lp().[8]

Anti-self adjointness

The Hilbert transform is an anti-self adjoint operator relative to the duality pairing between Lp() and the dual space Lq(), where Template:Mvar and Template:Mvar are Hölder conjugates and 1 < p, q < ∞Script error: No such module "Check for unknown parameters".. Symbolically,

Hu,v=u,Hv

for uLp() and vLq().Template:Sfn

Inverse transform

The Hilbert transform is an anti-involution,Template:Sfn meaning that

H(H(u))=u

provided each transform is well-defined. Since HScript error: No such module "Check for unknown parameters". preserves the space Lp(), this implies in particular that the Hilbert transform is invertible on Lp(), and that

H1=H

Complex structure

Because H2 = −IScript error: No such module "Check for unknown parameters". ("IScript error: No such module "Check for unknown parameters"." is the identity operator) on the real Banach space of real-valued functions in Lp(), the Hilbert transform defines a linear complex structure on this Banach space. In particular, when p = 2Script error: No such module "Check for unknown parameters"., the Hilbert transform gives the Hilbert space of real-valued functions in L2() the structure of a complex Hilbert space.

The (complex) eigenstates of the Hilbert transform admit representations as holomorphic functions in the upper and lower half-planes in the Hardy space H2Script error: No such module "Check for unknown parameters". by the Paley–Wiener theorem.

Differentiation

Formally, the derivative of the Hilbert transform is the Hilbert transform of the derivative, i.e. these two linear operators commute:

H(dudt)=ddtH(u)

Iterating this identity,

H(dkudtk)=dkdtkH(u)

This is rigorously true as stated provided Template:Mvar and its first Template:Mvar derivatives belong to Lp().Template:Sfn One can check this easily in the frequency domain, where differentiation becomes multiplication by Template:Mvar.

Convolutions

The Hilbert transform can formally be realized as a convolution with the tempered distributionTemplate:Sfn

h(t)=p.v.1πt

Thus formally,

H(u)=h*u

However, a priori this may only be defined for Template:Mvar a distribution of compact support. It is possible to work somewhat rigorously with this since compactly supported functions (which are distributions a fortiori) are dense in LpScript error: No such module "Check for unknown parameters".. Alternatively, one may use the fact that h(t) is the distributional derivative of the function log|t|/πScript error: No such module "Check for unknown parameters".; to wit

H(u)(t)=ddt(1π(u*log||)(t))

For most operational purposes the Hilbert transform can be treated as a convolution. For example, in a formal sense, the Hilbert transform of a convolution is the convolution of the Hilbert transform applied on only one of either of the factors:

H(u*v)=H(u)*v=u*H(v)

This is rigorously true if Template:Mvar and Template:Mvar are compactly supported distributions since, in that case,

h*(u*v)=(h*u)*v=u*(h*v)

By passing to an appropriate limit, it is thus also true if uLpScript error: No such module "Check for unknown parameters". and vLqScript error: No such module "Check for unknown parameters". provided that

1<1p+1q

from a theorem due to Titchmarsh.Template:Sfn

Invariance

The Hilbert transform has the following invariance properties on L2().

  • It commutes with translations. That is, it commutes with the operators Ta f(x) = f(x + a)Script error: No such module "Check for unknown parameters". for all Template:Mvar in .
  • It commutes with positive dilations. That is it commutes with the operators Mλ f (x) = f (λ x)Script error: No such module "Check for unknown parameters". for all λ > 0Script error: No such module "Check for unknown parameters"..
  • It anticommutes with the reflection R f (x) = f (−x)Script error: No such module "Check for unknown parameters"..

Up to a multiplicative constant, the Hilbert transform is the only bounded operator on Template:Mvar2 with these properties.Template:Sfn

In fact there is a wider set of operators that commute with the Hilbert transform. The group SL(2,) acts by unitary operators UgScript error: No such module "Check for unknown parameters". on the space L2() by the formula

Ug1f(x)=1cx+df(ax+bcx+d),g=[abcd], for adbc=±1.

This unitary representation is an example of a principal series representation of SL(2,). In this case it is reducible, splitting as the orthogonal sum of two invariant subspaces, Hardy space H2() and its conjugate. These are the spaces of L2Script error: No such module "Check for unknown parameters". boundary values of holomorphic functions on the upper and lower halfplanes. H2() and its conjugate consist of exactly those L2Script error: No such module "Check for unknown parameters". functions with Fourier transforms vanishing on the negative and positive parts of the real axis respectively. Since the Hilbert transform is equal to H = −i (2P − I)Script error: No such module "Check for unknown parameters"., with Template:Mvar being the orthogonal projection from L2() onto H2(), and IScript error: No such module "Check for unknown parameters". the identity operator, it follows that H2() and its orthogonal complement are eigenspaces of HScript error: No such module "Check for unknown parameters". for the eigenvalues ±iScript error: No such module "Check for unknown parameters".. In other words, HScript error: No such module "Check for unknown parameters". commutes with the operators Template:Mvar. The restrictions of the operators Template:Mvar to H2() and its conjugate give irreducible representations of SL(2,) – the so-called limit of discrete series representations.[9]

Extending the domain of definition

Hilbert transform of distributions

It is further possible to extend the Hilbert transform to certain spaces of distributions Script error: No such module "Footnotes".. Since the Hilbert transform commutes with differentiation, and is a bounded operator on Template:Mvar, Template:Mvar restricts to give a continuous transform on the inverse limit of Sobolev spaces:

𝒟Lp=limnWn,p()

The Hilbert transform can then be defined on the dual space of 𝒟Lp, denoted 𝒟Lp, consisting of Template:Mvar distributions. This is accomplished by the duality pairing:
For u𝒟'Lp, define:

H(u)𝒟'Lp=Hu,v  u,Hv, for all v𝒟Lp.

It is possible to define the Hilbert transform on the space of tempered distributions as well by an approach due to Gel'fand and Shilov,Template:Sfn but considerably more care is needed because of the singularity in the integral.

Hilbert transform of bounded functions

The Hilbert transform can be defined for functions in L() as well, but it requires some modifications and caveats. Properly understood, the Hilbert transform maps L() to the Banach space of bounded mean oscillation (BMO) classes.

Interpreted naïvely, the Hilbert transform of a bounded function is clearly ill-defined. For instance, with u = sgn(x)Script error: No such module "Check for unknown parameters"., the integral defining H(u)Script error: No such module "Check for unknown parameters". diverges almost everywhere to ±∞Script error: No such module "Check for unknown parameters".. To alleviate such difficulties, the Hilbert transform of an LScript error: No such module "Check for unknown parameters". function is therefore defined by the following regularized form of the integral

H(u)(t)=p.v.u(τ){h(tτ)h0(τ)}dτ

where as above h(x) = Template:SfracScript error: No such module "Check for unknown parameters". and

h0(x)={0if|x|<11πxif|x|1

The modified transform HScript error: No such module "Check for unknown parameters". agrees with the original transform up to an additive constant on functions of compact support from a general result by Calderón and Zygmund.[10] Furthermore, the resulting integral converges pointwise almost everywhere, and with respect to the BMO norm, to a function of bounded mean oscillation.

A deep result of Fefferman's work[11] is that a function is of bounded mean oscillation if and only if it has the form f + H(g)Script error: No such module "Check for unknown parameters". for some f,gL().

Conjugate functions

The Hilbert transform can be understood in terms of a pair of functions f(x)Script error: No such module "Check for unknown parameters". and g(x)Script error: No such module "Check for unknown parameters". such that the function F(x)=f(x)+ig(x) is the boundary value of a holomorphic function F(z)Script error: No such module "Check for unknown parameters". in the upper half-plane.Template:Sfn Under these circumstances, if Template:Mvar and Template:Mvar are sufficiently integrable, then one is the Hilbert transform of the other.

Suppose that fLp(). Then, by the theory of the Poisson integral, Template:Mvar admits a unique harmonic extension into the upper half-plane, and this extension is given by

u(x+iy)=u(x,y)=1πf(s)y(xs)2+y2ds

which is the convolution of Template:Mvar with the Poisson kernel

P(x,y)=yπ(x2+y2)

Furthermore, there is a unique harmonic function Template:Mvar defined in the upper half-plane such that F(z) = u(z) + i v(z)Script error: No such module "Check for unknown parameters". is holomorphic and limyv(x+iy)=0

This harmonic function is obtained from Template:Mvar by taking a convolution with the conjugate Poisson kernel

Q(x,y)=xπ(x2+y2).

Thus v(x,y)=1πf(s)xs(xs)2+y2ds.

Indeed, the real and imaginary parts of the Cauchy kernel are iπz=P(x,y)+iQ(x,y)

so that F = u + i vScript error: No such module "Check for unknown parameters". is holomorphic by Cauchy's integral formula.

The function Template:Mvar obtained from Template:Mvar in this way is called the harmonic conjugate of Template:Mvar. The (non-tangential) boundary limit of v(x,y)Script error: No such module "Check for unknown parameters". as y → 0Script error: No such module "Check for unknown parameters". is the Hilbert transform of Template:Mvar. Thus, succinctly, H(f)=limy0Q(,y)f

Titchmarsh's theorem

Titchmarsh's theorem (named for E. C. Titchmarsh who included it in his 1937 work) makes precise the relationship between the boundary values of holomorphic functions in the upper half-plane and the Hilbert transform.Template:Sfn It gives necessary and sufficient conditions for a complex-valued square-integrable function F(x)Script error: No such module "Check for unknown parameters". on the real line to be the boundary value of a function in the Hardy space H2(U)Script error: No such module "Check for unknown parameters". of holomorphic functions in the upper half-plane Template:Mvar.

The theorem states that the following conditions for a complex-valued square-integrable function F: are equivalent:

  • F(x)Script error: No such module "Check for unknown parameters". is the limit as zxScript error: No such module "Check for unknown parameters". of a holomorphic function F(z)Script error: No such module "Check for unknown parameters". in the upper half-plane such that |F(x+iy)|2dx<K
  • The real and imaginary parts of F(x)Script error: No such module "Check for unknown parameters". are Hilbert transforms of each other.
  • The Fourier transform (F)(x) vanishes for x < 0Script error: No such module "Check for unknown parameters"..

A weaker result is true for functions of class Template:Mvar for p > 1Script error: No such module "Check for unknown parameters"..Template:Sfn Specifically, if F(z)Script error: No such module "Check for unknown parameters". is a holomorphic function such that

|F(x+iy)|pdx<K

for all Template:Mvar, then there is a complex-valued function F(x)Script error: No such module "Check for unknown parameters". in Lp() such that F(x + i y) → F(x)Script error: No such module "Check for unknown parameters". in the Template:Mvar norm as y → 0Script error: No such module "Check for unknown parameters". (as well as holding pointwise almost everywhere). Furthermore,

F(x)=f(x)+ig(x)

where Template:Mvar is a real-valued function in Lp() and Template:Mvar is the Hilbert transform (of class Template:Mvar) of Template:Mvar.

This is not true in the case p = 1Script error: No such module "Check for unknown parameters".. In fact, the Hilbert transform of an L1Script error: No such module "Check for unknown parameters". function Template:Mvar need not converge in the mean to another L1Script error: No such module "Check for unknown parameters". function. Nevertheless,Template:Sfn the Hilbert transform of Template:Mvar does converge almost everywhere to a finite function Template:Mvar such that

|g(x)|p1+x2dx<

This result is directly analogous to one by Andrey Kolmogorov for Hardy functions in the disc.Template:Sfn Although usually called Titchmarsh's theorem, the result aggregates much work of others, including Hardy, Paley and Wiener (see Paley–Wiener theorem), as well as work by Riesz, Hille, and Tamarkin[12]

Riemann–Hilbert problem

One form of the Riemann–Hilbert problem seeks to identify pairs of functions F+Script error: No such module "Check for unknown parameters". and FScript error: No such module "Check for unknown parameters". such that F+Script error: No such module "Check for unknown parameters". is holomorphic on the upper half-plane and FScript error: No such module "Check for unknown parameters". is holomorphic on the lower half-plane, such that for Template:Mvar along the real axis, F+(x)F(x)=f(x)

where f(x)Script error: No such module "Check for unknown parameters". is some given real-valued function of x. The left-hand side of this equation may be understood either as the difference of the limits of F±Script error: No such module "Check for unknown parameters". from the appropriate half-planes, or as a hyperfunction distribution. Two functions of this form are a solution of the Riemann–Hilbert problem.

Formally, if F±Script error: No such module "Check for unknown parameters". solve the Riemann–Hilbert problem f(x)=F+(x)F(x)

then the Hilbert transform of f(x)Script error: No such module "Check for unknown parameters". is given byTemplate:Sfn H(f)(x)=i(F+(x)+F(x)).

Hilbert transform on the circle

Script error: No such module "Labelled list hatnote". For a periodic function Template:Mvar the circular Hilbert transform is defined:

f~(x)12πp.v.02πf(t)cot(xt2)dt

The circular Hilbert transform is used in giving a characterization of Hardy space and in the study of the conjugate function in Fourier series. The kernel, cot(xt2) is known as the Hilbert kernel since it was in this form the Hilbert transform was originally studied.Template:Sfn

The Hilbert kernel (for the circular Hilbert transform) can be obtained by making the Cauchy kernel <templatestyles src="Fraction/styles.css" />1Template:Mvar periodic. More precisely, for x ≠ 0Script error: No such module "Check for unknown parameters".

12cot(x2)=1x+n=1(1x+2nπ+1x2nπ)

Many results about the circular Hilbert transform may be derived from the corresponding results for the Hilbert transform from this correspondence.

Another more direct connection is provided by the Cayley transform C(x) = (xi) / (x + i)Script error: No such module "Check for unknown parameters"., which carries the real line onto the circle and the upper half plane onto the unit disk. It induces a unitary map

Uf(x)=1(x+i)πf(C(x))

of L2(T)Script error: No such module "Check for unknown parameters". onto L2(). The operator Template:Mvar carries the Hardy space H2(T)Script error: No such module "Check for unknown parameters". onto the Hardy space H2().Template:Sfn

Hilbert transform in signal processing

Bedrosian's theorem

Bedrosian's theorem states that the Hilbert transform of the product of a low-pass and a high-pass signal with non-overlapping spectra is given by the product of the low-pass signal and the Hilbert transform of the high-pass signal, or

H(fLP(t)fHP(t))=fLP(t)H(fHP(t)),

where fLPScript error: No such module "Check for unknown parameters". and fHPScript error: No such module "Check for unknown parameters". are the low- and high-pass signals respectively.Template:Sfn A category of communication signals to which this applies is called the narrowband signal model. A member of that category is amplitude modulation of a high-frequency sinusoidal "carrier":

u(t)=um(t)cos(ωt+φ),

where um(t)Script error: No such module "Check for unknown parameters". is the narrow bandwidth "message" waveform, such as voice or music. Then by Bedrosian's theorem:Template:Sfn

H(u)(t)={+um(t)sin(ωt+φ)if ω>0um(t)sin(ωt+φ)if ω<0

Analytic representation

Template:Main article A specific type of conjugate function is:

ua(t)u(t)+iH(u)(t),

known as the analytic representation of u(t). The name reflects its mathematical tractability, due largely to Euler's formula. Applying Bedrosian's theorem to the narrowband model, the analytic representation is:[13]

Template:Equation box 1

A Fourier transform property indicates that this complex heterodyne operation can shift all the negative frequency components of um(t)Script error: No such module "Check for unknown parameters". above 0 Hz. In that case, the imaginary part of the result is a Hilbert transform of the real part. This is an indirect way to produce Hilbert transforms.

Script error: No such module "anchor". Angle (phase/frequency) modulation

The form:[14]

u(t)=Acos(ωt+φm(t))

is called angle modulation, which includes both phase modulation and frequency modulation. The instantaneous frequency is  ω+φm(t).  For sufficiently large Template:Mvar, compared to φm:

H(u)(t)Asin(ωt+φm(t)) and: ua(t)Aei(ωt+φm(t)).

Single sideband modulation (SSB)

Template:Main article When um(t)Script error: No such module "Check for unknown parameters". in Eq.1 is also an analytic representation (of a message waveform), that is:

um(t)=m(t)+im^(t)

the result is single-sideband modulation:

ua(t)=(m(t)+im^(t))ei(ωt+φ)

whose transmitted component is:[15][16]

u(t)=Re{ua(t)}=m(t)cos(ωt+φ)m^(t)sin(ωt+φ)

Causality

The function h(t)=1/(πt) presents two causality-based challenges to practical implementation in a convolution (in addition to its undefined value at 0):

  • Its duration is infinite (technically infinite support). Finite-length windowing reduces the effective frequency range of the transform; shorter windows result in greater losses at low and high frequencies. See also quadrature filter.
  • It is a non-causal filter. So a delayed version, h(tτ), is required. The corresponding output is subsequently delayed by τ. When creating the imaginary part of an analytic signal, the source (real part) must also be delayed by τ.

Discrete Hilbert transform

File:Bandpass discrete Hilbert transform filter.tif
Figure 1: Filter whose frequency response is bandlimited to about 95% of the Nyquist frequency
File:Highpass discrete Hilbert transform filter.tif
Figure 2: Hilbert transform filter with a highpass frequency response
File:DFT approximation to Hilbert filter.png
Figure 3.
File:Effect of circular convolution on discrete Hilbert transform.png
Figure 4. The Hilbert transform of cos(ωt)Script error: No such module "Check for unknown parameters". is sin(ωt)Script error: No such module "Check for unknown parameters".. This figure shows sin(ωt)Script error: No such module "Check for unknown parameters". and two approximate Hilbert transforms computed by the MATLAB library function, Template:Mono
File:Discrete Hilbert transforms of a cosine function, using piecewise convolution.svg
Figure 5. Discrete Hilbert transforms of a cosine function, using piecewise convolution

For a discrete function, u[n], with discrete-time Fourier transform (DTFT), U(ω), and discrete Hilbert transform u^[n], the DTFT of u^[n] in the region π < ω < πScript error: No such module "Check for unknown parameters". is given by:

DTFT(u^)=U(ω)(isgn(ω)).

The inverse DTFT, using the convolution theorem, is:[17][18]

u^[n]=DTFT1(U(ω)) * DTFT1(isgn(ω))=u[n] * 12πππ(isgn(ω))eiωndω=u[n] * 12π[π0ieiωndω0πieiωndω]h[n],

where

h[n]  {0,if n even2πnif n odd

which is an infinite impulse response (IIR).

Practical considerations[19]

Method 1: Direct convolution of streaming u[n] data with an FIR approximation of h[n], which we will designate by h~[n]. Examples of truncated h[n] are shown in figures 1 and 2. Fig 1 has an odd number of anti-symmetric coefficients and is called Type III.[20] This type inherently exhibits responses of zero magnitude at frequencies 0 and Nyquist, resulting in a bandpass filter shape.[21][22] A Type IV design (even number of anti-symmetric coefficients) is shown in Fig 2.[23][24] It has a highpass frequency response.[25] Type III is the usual choice.[26][27] for these reasons:

  • A typical (i.e. properly filtered and sampled) u[n] sequence has no useful components at the Nyquist frequency.
  • The Type IV impulse response requires a 12 sample shift in the h[n] sequence. That causes the zero-valued coefficients to become non-zero, as seen in Figure 2. So a Type III design is potentially twice as efficient as Type IV.
  • The group delay of a Type III design is an integer number of samples, which facilitates aligning u^[n] with u[n] to create an analytic signal. The group delay of Type IV is halfway between two samples.

The abrupt truncation of h[n] creates a rippling (Gibbs effect) of the flat frequency response. That can be mitigated by use of a window function to taper h~[n] to zero.[28]

Method 2: Piecewise convolution. It is well known that direct convolution is computationally much more intensive than methods like overlap-save that give access to the efficiencies of the Fast Fourier transform via the convolution theorem.[29] Specifically, the discrete Fourier transform (DFT) of a segment of u[n] is multiplied pointwise with a DFT of the h~[n] sequence. An inverse DFT is done on the product, and the transient artifacts at the leading and trailing edges of the segment are discarded. Over-lapping input segments prevent gaps in the output stream. An equivalent time domain description is that segments of length N (an arbitrary parameter) are convolved with the periodic function:

h~N[n] m=h~[nmN].

When the duration of non-zero values of h~[n] is M<N, the output sequence includes NM+1 samples of u^.  M1 outputs are discarded from each block of N, and the input blocks are overlapped by that amount to prevent gaps.

Method 3: Same as method 2, except the DFT of h~[n] is replaced by samples of the isgn(ω) distribution (whose real and imaginary components are all just 0 or ±1.) That convolves u[n] with a periodic summation:Template:Efn-ua

hN[n] m=h[nmN],Script error: No such module "String".Template:Efn-uaTemplate:Efn-ua

for some arbitrary parameter, N. h[n] is not an FIR, so the edge effects extend throughout the entire transform. Deciding what to delete and the corresponding amount of overlap is an application-dependent design issue.

Fig 3 depicts the difference between methods 2 and 3. Only half of the antisymmetric impulse response is shown, and only the non-zero coefficients. The blue graph corresponds to method 2 where h[n] is truncated by a rectangular window function, rather than tapered. It is generated by a Matlab function, hilb(65). Its transient effects are exactly known and readily discarded. The frequency response, which is determined by the function argument, is the only application-dependent design issue.

The red graph is h512[n], corresponding to method 3. It is the inverse DFT of the isgn(ω) distribution. Specifically, it is the function that is convolved with a segment of u[n] by the MATLAB function, hilbert(u,512).[30] The real part of the output sequence is the original input sequence, so that the complex output is an analytic representation of u[n].

When the input is a segment of a pure cosine, the resulting convolution for two different values of N is depicted in Fig 4 (red and blue plots). Edge effects prevent the result from being a pure sine function (green plot). Since hN[n] is not an FIR sequence, the theoretical extent of the effects is the entire output sequence. But the differences from a sine function diminish with distance from the edges. Parameter N is the output sequence length. If it exceeds the length of the input sequence, the input is modified by appending zero-valued elements. In most cases, that reduces the magnitude of the edge distortions. But their duration is dominated by the inherent rise and fall times of the h[n] impulse response.

Fig 5 is an example of piecewise convolution, using both methods 2 (in blue) and 3 (red dots). A sine function is created by computing the Discrete Hilbert transform of a cosine function, which was processed in four overlapping segments, and pieced back together. As the FIR result (blue) shows, the distortions apparent in the IIR result (red) are not caused by the difference between h[n] and hN[n] (green and red in Fig 3). The fact that hN[n] is tapered (windowed) is actually helpful in this context. The real problem is that it's not windowed enough. Effectively, M=N, whereas the overlap-save method needs M<N.

Number-theoretic Hilbert transform

The number theoretic Hilbert transform is an extensionTemplate:Sfn of the discrete Hilbert transform to integers modulo an appropriate prime number. In this it follows the generalization of discrete Fourier transform to number theoretic transforms. The number theoretic Hilbert transform can be used to generate sets of orthogonal discrete sequences.Template:Sfn

See also

Notes

Template:Notelist-ua

Page citations

<templatestyles src="Reflist/styles.css" />

  1. Due to Script error: No such module "Footnotes".; see Script error: No such module "Footnotes"..
  2. Script error: No such module "Footnotes"..
  3. E.g., Script error: No such module "Footnotes"..
  4. E.g., Script error: No such module "Footnotes"..
  5. E.g., Script error: No such module "Footnotes"..
  6. This theorem is due to Script error: No such module "Footnotes".; see also Script error: No such module "Footnotes"..
  7. This result is due to Script error: No such module "Footnotes".; see also Script error: No such module "Footnotes"..
  8. See for example Script error: No such module "Footnotes"..
  9. See Script error: No such module "Footnotes"., Script error: No such module "Footnotes"., and Script error: No such module "Footnotes"..
  10. Script error: No such module "Footnotes".; see Script error: No such module "Footnotes"..
  11. Script error: No such module "Footnotes".; Script error: No such module "Footnotes".
  12. see Script error: No such module "Footnotes"..
  13. Script error: No such module "Footnotes".
  14. Script error: No such module "Footnotes".
  15. Script error: No such module "Footnotes".
  16. Script error: No such module "Footnotes".
  17. Script error: No such module "Footnotes".
  18. Script error: No such module "Footnotes".
  19. Script error: No such module "Footnotes".
  20. Script error: No such module "Footnotes".
  21. Script error: No such module "Footnotes".
  22. Script error: No such module "Footnotes".
  23. Script error: No such module "Footnotes".
  24. Script error: No such module "Footnotes".
  25. Script error: No such module "Footnotes".
  26. Script error: No such module "Footnotes".
  27. Script error: No such module "Footnotes".
  28. Script error: No such module "Footnotes".
  29. Script error: No such module "Footnotes".
  30. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

References

Template:Sfn whitelist

<templatestyles src="Refbegin/styles.css" />

  • Script error: No such module "Citation/CS1".
  • Template:Cite report
  • Template:Springer
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".; also http://www.fuchs-braun.com/media/d9140c7b3d5004fbffff8007fffffff0.pdf Template:Webarchive
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Template:Springer
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".; also https://www.dsprelated.com/freebooks/mdft/Analytic_Signals_Hilbert_Transform.html
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".


Further reading

<templatestyles src="Refbegin/styles.css" />

  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "Citation/CS1".

External links

Template:Sister project