---
title: "HilbertTransform"
language: "en"
type: "Symbol"
summary: "HilbertTransform[f[t], t, s] gives the symbolic Hilbert transform of f[t] in the variable t and returns a transform F[s] in the variable s. HilbertTransform[f[t], t, OverscriptBox[s, ^]] gives the numeric Hilbert transform at the numerical value OverscriptBox[s, ^]."
keywords: 
- function transform
- integral operator
- integral transform
- Integrate
- principal value
- Cauchy principal value
- singular integral
- integral equation
- singular integral equation
- inverse Hilbert transform
- Hilbert transform
canonical_url: "https://reference.wolfram.com/language/ref/HilbertTransform.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Integral Transforms"
    link: "https://reference.wolfram.com/language/guide/IntegralTransforms.en.md"
related_functions: 
  - 
    title: "InverseHilbertTransform"
    link: "https://reference.wolfram.com/language/ref/InverseHilbertTransform.en.md"
  - 
    title: "DiscreteHilbertTransform"
    link: "https://reference.wolfram.com/language/ref/DiscreteHilbertTransform.en.md"
  - 
    title: "FourierTransform"
    link: "https://reference.wolfram.com/language/ref/FourierTransform.en.md"
  - 
    title: "LaplaceTransform"
    link: "https://reference.wolfram.com/language/ref/LaplaceTransform.en.md"
  - 
    title: "Integrate"
    link: "https://reference.wolfram.com/language/ref/Integrate.en.md"
  - 
    title: "NIntegrate"
    link: "https://reference.wolfram.com/language/ref/NIntegrate.en.md"
---
# HilbertTransform

HilbertTransform[f[t], t, s] gives the symbolic Hilbert transform of f[t] in the variable t and returns a transform F[s] in the variable s.

HilbertTransform[f[t], t, Overscript[s,  ^ ]] gives the numeric Hilbert transform at the numerical value Overscript[s,  ^ ].

## Details and Options

* Hilbert transforms are used to solve problems in signal processing, communications and other fields.

* The Hilbert transform of a function $f(t)$ is defined to be principal value integral $(1/π)Subsuperscript[∫, -∞, ∞](f(t)/s - t)\[DifferentialD]t$.

* ``HilbertTransform`` shifts every frequency component of a function by a phase of $-(π/2)$ radians.

* $f(t) = Underoverscript[∑, k = 0, ∞]Subscript[a, k] cos(k t) + Underoverscript[∑, k = 0, ∞]Subscript[b, k] sin(k t)→$$F(s) = Underoverscript[∑, k = 0, ∞]Subscript[a, k] cos(k s - π / 2) + Underoverscript[∑, k = 0, ∞]Subscript[b, k] sin(k s - π / 2)$

* The conjugate function $f(t) + I F(t)$ is the *analytic representation* of $f(t)$, and its magnitude is the *envelope* :

[image]

* ``HilbertTransform`` is a singular integral transform. Moreover, it is a bounded operator on $L^p(ℝ)$ for $1 < p < ∞$.

* The integral is computed using numerical methods if the third argument, $s$, is given a numerical value.

* The following options can be given:

|                     |               |                                                                   |
| ------------------- | ------------- | ----------------------------------------------------------------- |
| AccuracyGoal        | Automatic     | digits of absolute accuracy sought                                |
| Assumptions         | \$Assumptions | assumptions to make about parameters                              |
| GenerateConditions  | Automatic     | whether to generate answers that involve conditions on parameters |
| Method              | Automatic     | method to use                                                     |
| PrecisionGoal       | Automatic     | digits of precision sought                                        |
| WorkingPrecision    | Automatic     | the precision used in internal computations                       |

---

## Examples (53)

### Basic Examples (4)

Compute the Hilbert transform of a function:

```wl
In[1]:= HilbertTransform[Sin[t], t, s]

Out[1]= -Cos[s]
```

Plot the function and its Hilbert transform:

```wl
In[2]:= {Plot[Sin[t], {t, -2Pi, 2Pi}], Plot[%, {s, -2Pi, 2Pi}]}

Out[2]= {[image], [image]}
```

---

Hilbert transform of $δ(t)$ :

```wl
In[1]:= HilbertTransform[DiracDelta[t], t, s]

Out[1]= (1/π s)
```

---

Hilbert transform of a Cauchy pulse:

```wl
In[1]:= HilbertTransform[1 / (1 ^ 2 + t ^ 2), t, s]

Out[1]= (s/1 + s^2)
```

Plot both:

```wl
In[2]:= {Plot[1 / (1 ^ 2 + t ^ 2), {t, -5, 5}], Plot[%, {s, -5, 5}]}

Out[2]= {[image], [image]}
```

---

Compute the transform at a single point:

```wl
In[1]:= HilbertTransform[Cos[t] - Sin[t], t, 1.3]

Out[1]= 1.23106
```

### Scope (29)

#### Basic Uses (4)

Hilbert transform of a function for a symbolic parameter $s$ :

```wl
In[1]:= HilbertTransform[Exp[2 I t], t, s]

Out[1]= -I E^2 I s
```

---

Hilbert transforms of simple trigonometric functions:

```wl
In[1]:= HilbertTransform[Sin[α t], t, s, Assumptions -> α > 0]

Out[1]= -Cos[s α]

In[2]:= HilbertTransform[Cos[α t], t, s, Assumptions -> α < 0]

Out[2]= -Sin[s α]
```

---

Evaluate the Hilbert transform for a numerical value of the parameter $s$ :

```wl
In[1]:= HilbertTransform[UnitBox[t], t, 0.3]

Out[1]= 0.441271
```

---

``TraditionalForm`` formatting:

```wl
In[1]:= HilbertTransform[f[t], t, s]//TraditionalForm

Out[1]//TraditionalForm= HilbertTransform[f(t), t, s]
```

#### Elementary Functions (5)

Parabolic pulse:

```wl
In[1]:= HilbertTransform[Piecewise[{{1 - t ^ 2, Abs[t] <= 1}, {0, Abs[t] > 1}}], t, t]

Out[1]= (2 t + (-1 + t^2) Log[Abs[(-1 + t/1 + t)]]/π)
```

Plot both:

```wl
In[2]:= Plot[{Piecewise[{{1 - t ^ 2, Abs[t] <= 1}, {0, Abs[t] > 1}}], %}, ...]

Out[2]= [image]
```

---

Square pulse:

```wl
In[1]:= HilbertTransform[UnitBox[t], t, t]

Out[1]= (Log[Abs[(1 + 2 t/1 - 2 t)]]/π)
```

Plot both:

```wl
In[2]:= Plot[{UnitBox[t], %}, {t, -2, 2}, ...]

Out[2]= [image]
```

---

Bipolar pulse:

```wl
In[1]:= HilbertTransform[UnitBox[t]Sign[t], t, t]

Out[1]= (Log[(4 t^2/Abs[1 - 4 t^2])]/π)
```

Plot both:

```wl
In[2]:= Plot[{UnitBox[t]Sign[t], %}, {t, -2, 2}, ...]

Out[2]= [image]
```

---

Double triangle pulse:

```wl
In[1]:= HilbertTransform[t UnitBox[t]Sign[t], t, t]

Out[1]= (t Log[(4 t^2/Abs[1 - 4 t^2])]/π)
```

Plot both:

```wl
In[2]:= Plot[{t UnitBox[t]Sign[t], %}, {t, -2, 2}, ...]

Out[2]= [image]
```

---

One-sided rectangular pulse:

```wl
In[1]:= HilbertTransform[UnitBox[t - 1 / 2], t, t]

Out[1]= (Log[Abs[(t/-1 + t)]]/π)

In[2]:= Plot[{UnitBox[t - 1 / 2], %}, {t, -5, 5}, ...]

Out[2]= [image]
```

#### Trigonometric Functions (4)

Quotient of trigonometric and linear functions:

```wl
In[1]:= HilbertTransform[Sin[3 t] / t, t, t]

Out[1]= (2 Sin[(3 t/2)]^2/t)
```

Plot both:

```wl
In[2]:= Plot[{Sin[3 t] / t, %}, {t, -2, 2}]

Out[2]= [image]

In[3]:= HilbertTransform[Cos[-4 t] / t, t, t]

Out[3]= -π DiracDelta[t] + (Sin[4 t]/t)
```

Plot both:

```wl
In[4]:= Plot[{Cos[-4 t] / t, %}, {t, -2, 2}]

Out[4]= [image]
```

---

Quotient of trigonometric and monomial functions:

```wl
In[1]:= HilbertTransform[Sin[a t] / t ^ 2, t, s, Assumptions -> a > 0]

Out[1]= (1 - Cos[a s]/s^2) - a π DiracDelta[s]
```

---

Products of cosine functions:

```wl
In[1]:= HilbertTransform[Cos[a t] ^ 3, t, s, Assumptions -> a > 0]

Out[1]= (1/2) (2 + Cos[2 a s]) Sin[a s]

In[2]:= HilbertTransform[Cos[a t] ^ 5, t, s, Assumptions -> a > 0]

Out[2]= (1/8) (8 + 6 Cos[2 a s] + Cos[4 a s]) Sin[a s]

In[3]:= HilbertTransform[Cos[α t + ϕ] Cos[β t + Φ], t, s, Assumptions -> 0 < α < β]

Out[3]= Cos[s α + ϕ] Sin[s β + Φ]
```

---

Composition of elementary functions:

```wl
In[1]:= HilbertTransform[Sin[t ^ 2], t, t]

Out[1]= (1/2) E^-I t^2 (-E^2 I t^2 Erf[(-1)^1 / 4 t] + Erf[(-1)^3 / 4 t])
```

Plot both:

```wl
In[2]:= Plot[{Sin[t ^ 2], %}, {t, -5, 5}]

Out[2]= [image]
```

#### Powers and Algebraic Functions (5)

Rational functions with linear denominator:

```wl
In[1]:= HilbertTransform[1 / t, t, s]

Out[1]= -π DiracDelta[s]

In[2]:= HilbertTransform[(t - I) ^ (-1), t, s, Assumptions -> Im[a] < 0]

Out[2]= (I/-I + s)
```

---

Rational functions with quadratic denominators:

```wl
In[1]:= HilbertTransform[t / (t ^ 2 + a ^ 2), t, s, Assumptions -> Re[a] > 0]

Out[1]= -(a/a^2 + s^2)

In[2]:= HilbertTransform[(b t + c) / (t ^ 2 + a ^ 2), t, s, Assumptions -> Re[a] > 0]

Out[2]= -(a^2 b - c s/a^3 + a s^2)
```

---

Monomial expression with negative power:

```wl
In[1]:= HilbertTransform[1 / t ^ 3, t, s]

Out[1]= -(1/2) π Derivative[2][DiracDelta][s]
```

---

Rational functions with quartic denominators:

```wl
In[1]:= HilbertTransform[t / (t ^ 2 + a ^ 2) ^ 2, t, s, Assumptions -> a > 0]

Out[1]= (-a^2 + s^2/2 a (a^2 + s^2)^2)

In[2]:= HilbertTransform[1 / (t ^ 2 + a ^ 2) ^ 2, t, s, Assumptions -> a > 0]

Out[2]= (3 a^2 s + s^3/2 a^3 (a^2 + s^2)^2)

In[3]:= HilbertTransform[t ^ 3 / (t ^ 2 + a ^ 2) ^ 2, t, s, Assumptions -> a > 0]

Out[3]= -(a (a^2 + 3 s^2)/2 (a^2 + s^2)^2)
```

---

Other algebraic functions:

```wl
In[1]:= HilbertTransform[t / (t ^ 2 + a ^ 2) ^ 3, t, s, Assumptions -> a > 0]

Out[1]= (-3 a^4 + 6 a^2 s^2 + s^4/8 a^3 (a^2 + s^2)^3)

In[2]:= HilbertTransform[1 / Sqrt[t ^ 2 + a ^ 2], t, s, Assumptions -> a > 0]

Out[2]= (2 ArcSinh[(s/a)]/π Sqrt[a^2 + s^2])
```

#### Generalized Functions (3)

``DiracDelta`` of linear arguments.

```wl
In[1]:= HilbertTransform[DiracDelta[t], t, s]

Out[1]= (1/π s)

In[2]:= HilbertTransform[DiracDelta[t + a], t, s]

Out[2]= (1/a π + π s)

In[3]:= HilbertTransform[DiracDelta[a t + b], t, s]

Out[3]= (Sign[a]/b π + a π s)
```

---

Derivatives of ``DiracDelta`` :

```wl
In[1]:= HilbertTransform[DiracDelta'[t], t, s]

Out[1]= -(1/π s^2)

In[2]:= HilbertTransform[D[DiracDelta[t], {t, 3}], t, s]

Out[2]= -(6/π s^4)

In[3]:= HilbertTransform[D[DiracDelta[t], {t, 6}], t, s]

Out[3]= (720/π s^7)
```

---

``Sign`` function:

```wl
In[1]:= HilbertTransform[Sign[t], t, t]

Out[1]= (2 Log[Abs[t]]/π)
```

Plot both:

```wl
In[2]:= Plot[{Sign[t], %}, {t, -5, 5}]

Out[2]= [image]
```

#### Exponential and Logarithmic Functions (4)

Complex exponentials:

```wl
In[1]:= HilbertTransform[Exp[I a t] / t, t, s]

Out[1]= -π (DiracDelta[s] + (I (-1 + E^I a s) Sign[a]/π s))

In[2]:= HilbertTransform[Exp[I / t], t, s]

Out[2]= I (-1 + E^I / s)
```

---

Gaussian pulse:

```wl
In[1]:= HilbertTransform[Exp[-π t ^ 2], t, t]

Out[1]= (2 DawsonF[Sqrt[π] t]/Sqrt[π])
```

Plot both:

```wl
In[2]:= Plot[{Exp[-π t ^ 2], %}, {t, -2, 2}]

Out[2]= [image]
```

---

Symmetric exponential:

```wl
In[1]:= HilbertTransform[Exp[-a Abs[t]], t, t, Assumptions -> a > 0]

Out[1]= (t MeijerG[{{(1/2)}, {}}, {{(1/2), (1/2)}, {0}}, (a^2 t^2/4)]/Sqrt[π] Abs[t])
```

Plot both:

```wl
In[2]:= Plot[{Exp[-a Abs[t]] /. a -> 2, % /. a -> 2}, {t, -2, 2}]

Out[2]= [image]
```

---

Composition of a logarithmic function and a polynomial of order 2:

```wl
In[1]:= HilbertTransform[Log[9 + 4t ^ 2], t, s]

Out[1]= -2 ArcTan[(2 s/3)]
```

#### Special Functions (2)

Legendre polynomials:

```wl
In[1]:= HilbertTransform[LegendreP[3, Cos[t]], t, s]

Out[1]= (1/8) (3 Sin[s] + 5 Sin[3 s])

In[2]:= HilbertTransform[LegendreP[5, Sin[t]], t, s]//FullSimplify

Out[2]= -(1/64) Cos[s] (64 - 98 Cos[2 s] + 63 Cos[4 s])
```

---

Hermite polynomials:

```wl
In[1]:= HilbertTransform[HermiteH[0, t]Exp[-t ^ 2], t, s]

Out[1]= (2 DawsonF[s]/Sqrt[π])

In[2]:= HilbertTransform[HermiteH[5, t]Exp[-t ^ 2], t, s]//FullSimplify

Out[2]= (16 (-4 + 9 s^2 - 2 s^4 + s (15 + 4 s^2 (-5 + s^2)) DawsonF[s])/Sqrt[π])

In[3]:= HilbertTransform[HermiteH[8, t]Exp[-t ^ 2], t, s]//FullSimplify

Out[3]= (32 (279 s - 370 s^3 + 108 s^5 - 8 s^7 + (105 - 840 s^2 + 840 s^4 - 224 s^6 + 16 s^8) DawsonF[s])/Sqrt[π])
```

#### Formal Properties (1)

Hilbert transform threads itself over equations:

```wl
In[1]:= HilbertTransform[f'[t] == Log[Abs[(1 / 2 - t) / (-1 / 2 - t)]], t, s]

Out[1]= HilbertTransform[Derivative[1][f][t], t, s] == (Piecewise[{{Pi, -(1/2) < s < 1/2}}, 0])
```

#### Numerical Evaluation (1)

Calculate the Hilbert transform at a single point:

```wl
In[1]:= HilbertTransform[(t/t ^ 2 + 9), t, -.9]

Out[1]= -0.305810
```

Alternatively, calculate the Hilbert transform symbolically:

```wl
In[2]:= HilbertTransform[(t/t ^ 2 + 9), t, s]

Out[2]= -(3/9 + s^2)
```

Then evaluate it for the specific value of $s$ :

```wl
In[3]:= N[% /. s -> -.9]

Out[3]= -0.30581
```

### Options (5)

#### AccuracyGoal (1)

The option ``AccuracyGoal`` sets the number of digits of accuracy:

```wl
In[1]:= exact = HilbertTransform[t / (t ^ 2 + 1), t, -9 / 10]

Out[1]= -(100/181)

In[2]:= HilbertTransform[t / (t ^ 2 + 1), t, -.9, AccuracyGoal -> 5] - exact

Out[2]= 2.7588594622431`0.6984103213921214*^-6
```

With default settings:

```wl
In[3]:= HilbertTransform[t / (t ^ 2 + 1), t, -.9] - exact

Out[3]= 0``6.2576785748691846
```

#### Assumptions (1)

Specify the range of a variable using ``Assumptions`` :

```wl
In[1]:= HilbertTransform[Sin[a t] * Cos[b t], t, s, Assumptions -> 0 < a < b ]

Out[1]= Sin[a s] Sin[b s]

In[2]:= HilbertTransform[Sin[a t] * Cos[b t], t, s, Assumptions -> 0 < b < a ]

Out[2]= -Cos[a s] Cos[b s]

In[3]:= HilbertTransform[Sin[a t] * Cos[b t], t, s, Assumptions -> 0 < a == b ]

Out[3]= -(1/2) Cos[2 b s]
```

#### GenerateConditions (1)

Use ``GenerateConditions -> True`` to get parameter conditions for when a result is valid:

```wl
In[1]:= HilbertTransform[DiracDelta[a  t + b], t, s, GenerateConditions -> True]

Out[1]= ConditionalExpression[Sign[a]/(b*Pi + a*Pi*s), Element[a, Reals] && Element[b, Reals]]
```

#### PrecisionGoal (1)

The option ``PrecisionGoal`` sets the relative tolerance in the integration:

```wl
In[1]:= exact = HilbertTransform[8 / (t ^ 2 + 1), t, 1 / 2]

Out[1]= (16/5)

In[2]:= HilbertTransform[8 / (t ^ 2 + 1), t, .5, PrecisionGoal -> 1] - exact

Out[2]= -0.00024
```

With default settings:

```wl
In[3]:= HilbertTransform[8 / (t ^ 2 + 1), t, .5] - exact

Out[3]= 0``5.4948500216800955
```

#### WorkingPrecision (1)

If ``WorkingPrecision`` is specified, the computation is done at that working precision:

```wl
In[1]:= exact = HilbertTransform[8 / (t ^ 2 + 1), t, 1 / 2]

Out[1]= (16/5)

In[2]:= HilbertTransform[8 / (t ^ 2 + 1), t, .5, WorkingPrecision -> 40] - exact

Out[2]= 6.270840923056134379785561074426171956064279`18.121861755590526*^-16
```

With default settings:

```wl
In[3]:= HilbertTransform[8 / (t ^ 2 + 1), t, .5] - exact

Out[3]= 0``5.4948500216800955
```

### Applications (5)

#### Basic Applications (1)

Consider a sine wave:

```wl
In[1]:= f[t_] = 5 Sin[t];
```

``HilbertTransform`` applies a $-90$-degree phase shift:

```wl
In[2]:= F[t_] = HilbertTransform[f[t], t, t]

Out[2]= -5 Cos[t]
```

Plot both:

In[3]:= Plot[{f[t],F[t]},{t,-Pi,Pi},]

Out[3]=
f[t]
	F[t]

#### Signals and Systems (2)

The Hilbert filter is defined below. It preserves the magnitude of the signal and phase shifts by $-(π/2)$ for positive frequencies and $(π/2)$ for negative frequencies:

```wl
In[1]:=
H[ω_] := -I Sign[ω];
Plot[{Abs@H[ω], Arg@H[ω]}, {ω, -10, 10}, ...]

Out[1]= [image]
```

The impulse response is the inverse Fourier transform of $H(ω)$ :

```wl
In[2]:= InverseFourierTransform[H[ω], ω, t, FourierParameters -> {0, -2Pi}]

Out[2]= (1/π t)

In[3]:= Plot[%, {t, -4, 4}, PlotRange -> All]

Out[3]= [image]
```

Which is the same as:

```wl
In[4]:= HilbertTransform[DiracDelta[t], t, t]

Out[4]= (1/π t)
```

Its step response is:

```wl
In[5]:= InverseFourierTransform[H[ω] FourierTransform[UnitStep[t], t, ω, FourierParameters -> {0, -2 π}], ω, t, FourierParameters -> {0, -2 π}]

Out[5]= -(I (2 I EulerGamma + π + 2 I Log[2 π Abs[t]])/2 π)

In[6]:= Plot[{Abs@%, Arg@%}, {t, -10, 10}, PlotRange -> {-3, 2}, ...]

Out[6]= [image]
```

---

In signal processing, the Hilbert transform provides the imaginary component of the analytic representation of a real-valued signal $u(t)$ :

```wl
In[1]:=
u[t_] := Cos[2t + 3] + 2Cos[3t + 2];
Plot[u[t], {t, 0, 9}]

Out[1]= [image]
```

The Hilbert transform of $u(t)$ is:

```wl
In[2]:= U[t_] = HilbertTransform[u[t], t, t]

Out[2]= Sin[3 + 2 t] + 2 Sin[2 + 3 t]
```

The analytic representation is:

```wl
In[3]:= f[t_] = u[t] + I * U[t]

Out[3]= Cos[3 + 2 t] + 2 Cos[2 + 3 t] + I (Sin[3 + 2 t] + 2 Sin[2 + 3 t])
```

The envelope of an oscillating signal is a smooth curve outlining its extremes, and it is the magnitude of the analytic representation:

```wl
In[4]:= Plot[{u[t], U[t], Abs[f[t]]}, {t, 0, 9}, Rule[...]]

Out[4]= [image]
```

#### Bedrosian's Theorem (1)

Suppose $f(t)$ and $g(t)$ have Fourier transforms $F(ω)$ and $G(ω)$, respectively, where $F(ω) = 0$ for $ | ω |  >= a$ with $a > 0$ and $G(ω) = 0$ for $ | ω |  < a$. Then $H (f(t) g(t)) = f(t)H(g(t))$.

Consider $f(t)$ and $g(t)$ as follows:

```wl
In[1]:=
f[t_] := Cos[t / 2];
g[t_] := Cos[10t];
```

Verify the Fourier transform condition:

```wl
In[2]:= Refine[FourierTransform[f[t], t, ω], ω > 0]

Out[2]= Sqrt[2 π] DiracDelta[1 - 2 ω]

In[3]:= Refine[FourierTransform[g[t], t, ω], ω > 0]

Out[3]= Sqrt[(π/2)] DiracDelta[-10 + ω]
```

$F(ω)$ has a single spike at $(1/2)$, while $G(ω)$ has a single spike at $10$ :

```wl
In[4]:= ListPlot[{{{(1/2), Sqrt[2 π]}}, {{10, Sqrt[(π/2)]}}}, ...]

Out[4]= [image]
```

Any $a$ in between will suffice the hypothesis. Verify Bedrosian's theorem:

```wl
In[5]:= HilbertTransform[f[t] * g[t], t, t]

Out[5]= (1/2) (Sin[(19 t/2)] + Sin[(21 t/2)])
```

Only the highpass signal needs to be transformed:

```wl
In[6]:= f[t] * HilbertTransform[g[t], t, t]

Out[6]= Cos[(t/2)] Sin[10 t]

In[7]:= FullSimplify[% == %%]

Out[7]= True
```

#### Communications (1)

Consider a message signal:

```wl
In[1]:=
m[t_] = (Cos[2Pi 5 t] + 2Cos[2Pi 7 t] + 1 / 2Cos[2 Pi 9 t]);
Plot[m[t], {t, -Pi / 2, Pi / 2}, ...]

Out[1]= [image]
```

Its Fourier transform:

```wl
In[2]:= x[ω_] = FourierTransform[m[t], t, ω, FourierParameters -> {0, -2 * Pi}]

Out[2]= (1/4) DiracDelta[-9 + ω] + DiracDelta[-7 + ω] + (1/2) DiracDelta[-5 + ω] + (1/2) DiracDelta[5 + ω] + DiracDelta[7 + ω] + (1/4) DiracDelta[9 + ω]
```

This provides the power spectrum:

```wl
In[3]:= ListPlot[{{-9, (1/4)}, {-7, 1}, {-5, (1/2)}, {5, (1/2)}, {7, 1}, {9, (1/4)}}, ...]

Out[3]= [image]
```

Find the Hilbert transform of the message signal:

```wl
In[4]:= Hm[s_] = HilbertTransform[m[t], t, s]

Out[4]= Sin[10 π s] + 2 Sin[14 π s] + (1/2) Sin[18 π s]

In[5]:= Plot[Hm[t], {t, -Pi / 2, Pi / 2}, ...]

Out[5]= [image]
```

The power spectrum for the complex signal has only positive frequencies:

```wl
In[6]:= FourierTransform[m[t] + I Hm[t], t, ω, FourierParameters -> {0, -2 * Pi}]

Out[6]= (1/2) DiracDelta[-9 + ω] + 2 DiracDelta[-7 + ω] + DiracDelta[-5 + ω]

In[7]:= ListPlot[{{9, (1/2)}, {7, 2}, {5, 1}}, ...]

Out[7]= [image]
```

Using $c[t] = cos(2π 35t)$ as a message carrier, get the upper side band-suppressed carrier (USB-SC) and lower side band-suppressed carrier (LSB-SC):

In[8]:=
USB[s_] = m[s]Cos[2Pi 35 s] - Hm[s]Sin[2 Pi 35 s];
LSB[s_] = m[s]Cos[2 Pi 35 s] + Hm[s]Sin[2 Pi 35 s];

```wl
In[9]:= Plot[{USB[t], LSB[t]}, ...]

Out[9]= [image]
```

Their Fourier transforms:

```wl
In[10]:= FourierTransform[{USB[t], LSB[t]}, t, ω, FourierParameters -> {0, -2 * Pi}]

Out[10]= {(1/4) DiracDelta[-44 + ω] + DiracDelta[-42 + ω] + (1/2) DiracDelta[-40 + ω] + (1/2) DiracDelta[40 + ω] + DiracDelta[42 + ω] + (1/4) DiracDelta[44 + ω], (1/2) DiracDelta[-30 + ω] + DiracDelta[-28 + ω] + (1/4) DiracDelta[-26 + ω] + (1/4) DiracDelta[26 + ω] + DiracDelta[28 + ω] + (1/2) DiracDelta[30 + ω]}
```

They provide the power spectrum for both signals:

```wl
In[11]:= ListPlot[{...}, AxesLabel -> {"Frequency", "Power"}, ...]

Out[11]= [image]
```

### Properties & Relations (7)

For $f(t) = E^-t^2$, the definite integral for ``HilbertTransform`` becomes:

```wl
In[1]:= 1 / π * Integrate[Exp[-t ^ 2] / (s - t), {t, -∞, ∞}, PrincipalValue -> True]

Out[1]= ConditionalExpression[(2*DawsonF[s])/Sqrt[Pi], Re[s] > 0 && Im[s] == 0]
```

Compare with ``HilbertTransform`` :

```wl
In[2]:= HilbertTransform[Exp[-t ^ 2], t, s]

Out[2]= (2 DawsonF[s]/Sqrt[π])
```

---

Linearity:

```wl
In[1]:= HilbertTransform[a f[t] + b g[t], t, s]

Out[1]= a HilbertTransform[f[t], t, s] + b HilbertTransform[g[t], t, s]
```

---

Shifting:

```wl
In[1]:= HilbertTransform[f[t + a], t, s]

Out[1]= HilbertTransform[f[t], t, a + s]
```

---

Scaling:

```wl
In[1]:= HilbertTransform[f[a t], t, s]

Out[1]= HilbertTransform[f[t], t, a s] Sign[a]
```

---

Time reversal:

```wl
In[1]:= HilbertTransform[f[-t], t, s]

Out[1]= -HilbertTransform[f[t], t, -s]
```

---

Hilbert transform of a Hilbert transform:

```wl
In[1]:= HilbertTransform[HilbertTransform[f[t], t, s], s, t]

Out[1]= -f[t]
```

---

``HilbertTransform`` and ``InverseHilbertTransform`` are mutual inverses:

```wl
In[1]:= InverseHilbertTransform[HilbertTransform[f[t], t, s], s, t]

Out[1]= f[t]

In[2]:= HilbertTransform[InverseHilbertTransform[F[ t], t, s], s, t]

Out[2]= F[t]

In[3]:= HilbertTransform[1 / (t ^ 2 + 1), t, s]

Out[3]= (s/1 + s^2)

In[4]:= InverseHilbertTransform[%, s, t]

Out[4]= (1/1 + t^2)
```

### Possible Issues (1)

The result from an inverse Hilbert transform may not have the same form as the original:

```wl
In[1]:= HilbertTransform[UnitStep[1 + t]UnitStep[1 - t], t, s]

Out[1]= (Log[Abs[(1 + s/-1 + s)]]/π)

In[2]:= InverseHilbertTransform[%, s, t]

Out[2]= UnitBox[(t/2)]
```

### Interactive Examples (1)

In seismic data processing, important attributes can be obtained from the complex trace. For a seismic trace, compute its Hilbert transform:

```wl
In[1]:=
u[t_] = Sin[2t + 3] + 2Sin[3t + 2] + 3Cos[2t + 3];
U[s_] = HilbertTransform[u[t], t, s];
```

The analytic representation is the complex trace $f(t)$ :

```wl
In[2]:= Manipulate[Show[...], {t, .0001, 6Pi}, Rule[...]]

Out[2]= DynamicModule[«9»]
```

Its envelope:

```wl
In[3]:= Env[t_] = (u[t] ^ 2 + U[t] ^ 2) ^ (1 / 2)//FullSimplify

Out[3]= Sqrt[2] Sqrt[7 + 2 Cos[1 - t] - 6 Sin[1 - t]]
```

The envelope with its highest peaks marked:

```wl
In[4]:=
Module[{...}, 
	CompoundExpression[...];
	Plot[{u[t], U[t], Env[t], -Env[t]}, ...]]

Out[4]= [image]
```

The instantaneous angular frequency is:

```wl
In[5]:=
D[ArcTan[u[t], U[t]], t]//FullSimplify
Plot[%, {t, 0, 6π}]

Out[5]= (5/2) - (3/2 (7 + 2 Cos[1 - t] - 6 Sin[1 - t]))

Out[5]= [image]
```

### Neat Examples (1)

Create a table of Hilbert transforms:

```wl
In[1]:= flist = {E ^ (I a t), E ^ (I / t), Exp[-t ^ 2], Sin[a t], Sin[6 t] / t, Sinc[t], DiracDelta[t + a], Log[Abs[t]], UnitStep[t], UnitBox[t]};

In[2]:= Grid[Prepend[...], IconizedObject[«Grid options»]]//TraditionalForm

Out[2]//TraditionalForm=
|                   |                              |
| ----------------- | ---------------------------- |
| f(t)              | HilbertTransform[f(t), t, s] |
| E^I a t           | -I E^I a s                   |
| E^I / t           | I (-1 + E^I /  ...    | (1 - cos(s)/s)               |
| DiracDelta[a + t] | (1/π a + π s)                |
| log(\[LeftBracketingBar]t\[RightBracketingBar])          | -(π sgn(s)/2)                |
| UnitStep[t]       | (log(\[LeftBracketingBar]s\[RightBracketingBar])/π)                 |
| UnitBox[t]        | (log(\[LeftBracketingBar](2 s + 1/1 - 2 s)\[RightBracketingBar])/π) |
```

## See Also

* [`InverseHilbertTransform`](https://reference.wolfram.com/language/ref/InverseHilbertTransform.en.md)
* [`DiscreteHilbertTransform`](https://reference.wolfram.com/language/ref/DiscreteHilbertTransform.en.md)
* [`FourierTransform`](https://reference.wolfram.com/language/ref/FourierTransform.en.md)
* [`LaplaceTransform`](https://reference.wolfram.com/language/ref/LaplaceTransform.en.md)
* [`Integrate`](https://reference.wolfram.com/language/ref/Integrate.en.md)
* [`NIntegrate`](https://reference.wolfram.com/language/ref/NIntegrate.en.md)

## Related Guides

* [Integral Transforms](https://reference.wolfram.com/language/guide/IntegralTransforms.en.md)

## History

* [Introduced in 2025 (14.3)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn143.en.md)