---
title: "InverseBilateralZTransform"
language: "en"
type: "Symbol"
summary: "InverseBilateralZTransform[expr, z, n] gives the inverse bilateral Z transform of expr. InverseBilateralZTransform[expr, {z1, ..., zk}, {n1, ..., nk}] gives the multidimensional inverse bilateral Z transform of expr."
keywords: 
- generating function
- impulse response
- inverse bilateral Z-transform
- inverse bilateral z transform
- ramp response
- series coefficient
- step response
- transfer function
- bilateral z transform
canonical_url: "https://reference.wolfram.com/language/ref/InverseBilateralZTransform.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Summation Transforms"
    link: "https://reference.wolfram.com/language/guide/SummationTransforms.en.md"
related_functions: 
  - 
    title: "BilateralZTransform"
    link: "https://reference.wolfram.com/language/ref/BilateralZTransform.en.md"
  - 
    title: "ZTransform"
    link: "https://reference.wolfram.com/language/ref/ZTransform.en.md"
  - 
    title: "InverseZTransform"
    link: "https://reference.wolfram.com/language/ref/InverseZTransform.en.md"
  - 
    title: "InverseBilateralLaplaceTransform"
    link: "https://reference.wolfram.com/language/ref/InverseBilateralLaplaceTransform.en.md"
  - 
    title: "GeneratingFunction"
    link: "https://reference.wolfram.com/language/ref/GeneratingFunction.en.md"
  - 
    title: "SeriesCoefficient"
    link: "https://reference.wolfram.com/language/ref/SeriesCoefficient.en.md"
  - 
    title: "InverseFourierSequenceTransform"
    link: "https://reference.wolfram.com/language/ref/InverseFourierSequenceTransform.en.md"
---
# InverseBilateralZTransform

InverseBilateralZTransform[expr, z, n] gives the inverse bilateral Z transform of expr.

InverseBilateralZTransform[expr, {z1, …, zk}, {n1, …, nk}] gives the multidimensional inverse bilateral Z transform of expr.

## Details and Options

* The inverse bilateral Z transform provides the map from Fourier space back to state space, and allows one to recover the original sequence in applications of the bilateral Z transform.

* The inverse bilateral Z transform of a function $F(z)$ is given by the contour integral $\frac{1}{2\pi i}\oint  _CF(z)z^{n-1}dz$, where the integration is along a counterclockwise contour $\gamma$,  lying in an annulus $\alpha <| z| <\beta$ in which the function $F(z)$ is holomorphic. In some cases, the annulus of analyticity may extend to the interior or the exterior of a disk.

[image]

* The multidimensional inverse transform is given by $\frac{1}{(2 \pi  i)^m}\oint  _CF\left(z_1,\ldots ,z_k\right)z_1{}^{n_1-1}\ldots  z_k{}^{n_k-1}dz_1\ldots dz_k$, where $m=n_1+\ldots +n_k$.

* The following options can be given:

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

---

## Examples (22)

### Basic Examples (5)

Inverse bilateral Z transform of a rational function defined in an annulus:

```wl
In[1]:= F = ConditionalExpression[(z/(z - 1)(z - 3)), 1 < Abs[z] < 3]

Out[1]= ConditionalExpression[z/((-3 + z)*(-1 + z)), 1 < Abs[z] < 3]

In[2]:= ComplexRegionPlot[1 < Abs[z] < 3, ...]

Out[2]= [image]

In[3]:= InverseBilateralZTransform[F, z, n]

Out[3]= Piecewise[{{-(1/2), n > 0}}, -(3^n/2)]

In[4]:= DiscretePlot[%, {n, -5, 5}, PlotRange -> All]

Out[4]= [image]
```

Compute the inverse transform at a single point:

```wl
In[5]:= InverseBilateralZTransform[F, z, -5, WorkingPrecision -> MachinePrecision]

Out[5]= -0.00205761
```

---

Function defined in the exterior of a disk:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[(1/z - 1), Abs[z] > 1], z, n]

Out[1]= Piecewise[{{1, n > 0}}, 0]

In[2]:= DiscretePlot[%, {n, -5, 5}, PlotRange -> All]

Out[2]= [image]
```

---

Function defined in the interior of a disk:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[(1/z - 1), Abs[z] < 1], z, n]

Out[1]= Piecewise[{{-1, n <= 0}}, 0]

In[2]:= DiscretePlot[%, {n, -5, 5}, PlotRange -> All]

Out[2]= [image]
```

---

Function with an essential singularity at zero:

```wl
In[1]:= F = Exp[1 / z]

Out[1]= E^(1/z)

In[2]:= ComplexPlot[F, {z, -1 - I, +1 + 1I}, Rule[...]]

Out[2]= [image]

In[3]:= InverseBilateralZTransform[F, z, n]

Out[3]= (UnitStep[n]/n!)

In[4]:= DiscretePlot[%, {n, -5, 5}, PlotRange -> All]

Out[4]= [image]
```

---

Multivariate inverse bilateral transform:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[(z w/(z + 1)^2(w  + 1)^2), Abs[z] > 1 && Abs[w] > 1], {z, w}, {n, m}]

Out[1]= Piecewise[{{(-1)^(m + n)*m*n, m >= 0 && n >= 0}}, 0]
```

### Scope (7)

Shifted impulse sequences:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[z^5, Abs[z] < Infinity], z, n]

Out[1]= Piecewise[{{1, n == -5}}, 0]

In[2]:= InverseBilateralZTransform[ConditionalExpression[z^-5, 0 < Abs[z]], z, n]

Out[2]= Piecewise[{{1, n == 5}}, 0]
```

---

Rational functions yield exponential and trigonometric sequences:

```wl
In[1]:= F = ConditionalExpression[(z^4/(z ^ 2 + 1)), Abs[z] < 1]

Out[1]= ConditionalExpression[z^4/(1 + z^2), Abs[z] < 1]

In[2]:= ComplexPlot[F[[1]], {z, -2 - 2I, +2 + 2I}, Rule[...]]

Out[2]= [image]

In[3]:= x[n_] = InverseBilateralZTransform[F, z, n]//FullSimplify

Out[3]= Piecewise[{{Cos[(n*Pi)/2], n == -1 || n < -2}}, 0]

In[4]:= DiscretePlot[x[n], {n, -20, 5}]

Out[4]= [image]
```

---

Functions involving parameters:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[(1/(z - a)(z - b)), a < Abs[z] < b], z, n]

Out[1]= Piecewise[{{a^(-1 + n)/(a - b), n > 0}}, b^(-1 + n)/(a - b)]
```

---

The following function defined in the interior of a circle leads to a trigonometric sequence:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[(1 - Cos[ω]z^-1/(1 - 2Cos[ω]z^-1 + z^-2)), Abs[z] < 1], z, n]

Out[1]= Piecewise[{{(1/2)*(ChebyshevU[-2 - n, Cos[ω]] - ChebyshevU[-n, Cos[ω]]), n <= -2 || n == -1}}, 0]

In[2]:= FullSimplify[%, n∈Integers]

Out[2]= Piecewise[{{-Cos[n*ω], n < 0}}, 0]
```

---

If the ROC is not provided, then it is assumed to be the region containing all the function poles:

```wl
In[1]:= InverseBilateralZTransform[(z/(z - 1)(z ^ 2 + 1)), z, n]//FullSimplify

Out[1]= -(1/2) (-1 + Cos[(n π/2)] + Sin[(n π/2)]) UnitStep[n]
```

Obtain the same result using ``InverseZTransform`` :

```wl
In[2]:= InverseZTransform[(z/(z - 1)(z ^ 2 + 1)), z, n]//FullSimplify

Out[2]= (1/2) (1 - Cos[(n π/2)] - Sin[(n π/2)])
```

---

Calculate the inverse bilateral Z transform at a single point using a numerical method:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[(z/(z^2 + 4)(z^2 + 25)), 2 < Abs[z] < 5], z, 11, WorkingPrecision -> MachinePrecision]

Out[1]= -48.7619
```

Alternatively, calculate inverse symbolically:

```wl
In[2]:= InverseBilateralZTransform[ConditionalExpression[(z/(z^2 + 4)(z^2 + 25)), 2 < Abs[z] < 5], z, n]

Out[2]= Piecewise[{{(1/84)*I*((-2*I)^n - (2*I)^n), n > 0}}, (1/210)*I*((-5*I)^n - (5*I)^n)]
```

Then evaluate it for a specific value of $n$ :

```wl
In[3]:= N[% /. n -> 11]

Out[3]= -48.7619
```

---

For some functions, the inverse bilateral Z transform can be evaluated only numerically:

```wl
In[1]:= f[n_ ? NumericQ] := InverseBilateralZTransform[ConditionalExpression[(10 2^Sin[z^2]/((z ^ 2 + 1)(z - 3))), 1 < Abs[z] < 3], z, n, WorkingPrecision -> MachinePrecision]

In[2]:= f[5]

Out[2]= -0.558074 - 7.942780652783198`*^-10 I
```

Plot the inverse bilateral Z transform using numerical values only:

```wl
In[3]:= DiscretePlot[Re[f[n]], {n, -10, 10}]

Out[3]= [image]
```

### Options (2)

#### Assumptions (1)

Use ``Assumptions`` to restrict the parameter domain:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[(z ^ 2 + 1/(z - 1)(z - a)), 1 < Abs[z] < 3], z, n, Assumptions -> a ≥ 3]

Out[1]= -(2/-1 + a) + (Piecewise[{{1/a, n == 0}, {-((-2*a + a^n + a^(2 + n))/((-1 + a)*a)), n < 0}}, 0])
```

#### WorkingPrecision (1)

Use ``WorkingPrecision`` to obtain a result with arbitrary precision:

```wl
In[1]:= F = ConditionalExpression[Exp[z ^ 2 / (z - 1)] * Sin[z], Abs[z] < 1];

In[2]:= InverseBilateralZTransform[F, z, -7, WorkingPrecision -> MachinePrecision]

Out[2]= 0.408135

In[3]:= InverseBilateralZTransform[F, z, -7, WorkingPrecision -> 10]

Out[3]= 0.4081349206

In[4]:= InverseBilateralZTransform[F, z, -7, WorkingPrecision -> 20]

Out[4]= 0.40813492063492063492
```

### Applications (2)

Define finite duration and exponentially decaying signals:

```wl
In[1]:=
x1[n_] := 3 / 4(DiscreteDelta[n + 1] + DiscreteDelta[n] + DiscreteDelta[n - 1])
x2[n_] := 2^-Abs[n]
```

Plot signals in the time domain:

```wl
In[2]:= DiscretePlot[{x1[n], x2[n]}, {n, -5, 5}, PlotRange -> All]

Out[2]= [image]
```

To find the convolution, first calculate product of the transforms:

```wl
In[3]:= BilateralZTransform[x1[n], n, z]BilateralZTransform[x2[n], n, z]

Out[3]= ConditionalExpression[-((9*z*(1 + 1/z + z))/(4*(2 - 5*z + 2*z^2))), 1/2 < Abs[z] < 2]
```

Then, perform inversion back to the time domain:

```wl
In[4]:= InverseBilateralZTransform[%, z, n]//FullSimplify

Out[4]= Piecewise[{{21*2^(-3 - n), n > 0}, {21*2^(-3 + n), n < 0}}, 3/2]
```

Plot the convolution in the time domain:

```wl
In[5]:= DiscretePlot[%, {n, -5, 5}]

Out[5]= [image]
```

Alternatively, find the convolution using ``DiscreteConvolve`` :

```wl
In[6]:= DiscreteConvolve[x1[k], x2[k], k, n]//FullSimplify

Out[6]= (3/4) (2^-Abs[-1 + n] + 2^-Abs[n] + 2^-Abs[1 + n])
```

---

Define a pair of infinite duration signals:

```wl
In[1]:=
x1[n_] := n UnitStep[n]
x2[n_] := 2^nUnitStep[n - 1]
```

Plot the signals in the time domain:

```wl
In[2]:= DiscretePlot[{x1[n], x2[n]}, {n, 0, 7}]

Out[2]= [image]
```

To find the convolution, first calculate the product of the transforms:

```wl
In[3]:= BilateralZTransform[x1[n], n, z]BilateralZTransform[x2[n], n, z]

Out[3]= ConditionalExpression[(2*z)/((-2 + z)*(-1 + z)^2), Abs[z] > 2]
```

Perform inversion back to the time domain:

```wl
In[4]:= InverseBilateralZTransform[%, z, n]

Out[4]= Piecewise[{{2*(-1 + 2^n - n), n >= 0}}, 0]
```

Plot the convolution in the time domain:

```wl
In[5]:= DiscretePlot[%, {n, 0, 6}]

Out[5]= [image]
```

Alternatively, find the convolution using ``DiscreteConvolve`` :

```wl
In[6]:= DiscreteConvolve[x1[k], x2[k], k, n]

Out[6]= Piecewise[{{2*(-1 + 2^n - n), n > 1}}, 0]
```

### Properties & Relations (4)

Relation to ``BilateralZTransform`` :

```wl
In[1]:= InverseBilateralZTransform[BilateralZTransform[x[n], n, z], z, n]

Out[1]= x[n]
```

---

``InverseBilateralZTransform`` is closely related to ``InverseFourierSequenceTransform`` :

```wl
In[1]:= {InverseBilateralZTransform[ConditionalExpression[(z^2/1 / 3 + z), Abs[z] > 1 / 3], z, n], InverseFourierSequenceTransform[(z^2/1 / 3 + z) /. z -> Exp[I ω], ω, n]//Simplify}

Out[1]= {Piecewise[{{(-(1/3))^(1 + n), n == -1 || n >= 0}}, 0], Piecewise[{{(-(1/3))^(1 + n), n == -1 || n >= 0}}, 0]}

In[2]:= {InverseBilateralZTransform[z^-10, z, n], InverseFourierSequenceTransform[z^-10 /. z -> Exp[I ω], ω, n]}

Out[2]= {Piecewise[{{1, n == 10}}, 0], DiscreteDelta[-10 + n]}
```

---

Linearity:

```wl
In[1]:= InverseBilateralZTransform[a F[z] + b G[z], z, n]

Out[1]= a InverseBilateralZTransform[F[z], z, n] + b InverseBilateralZTransform[G[z], z, n]
```

---

Scaling:

```wl
In[1]:= InverseBilateralZTransform[ F[a * z], z, n]

Out[1]= a^-n InverseBilateralZTransform[F[z], z, n]
```

### Possible Issues (1)

No poles are allowed in the region of convergence:

```wl
In[1]:= InverseBilateralZTransform[ConditionalExpression[(z/(z - 1)(z - 3)), 1 < Abs[z] < 4], z, n]

Out[1]= InverseBilateralZTransform[ConditionalExpression[z/(3 - 4*z + z^2), 1 < Abs[z] < 4], z, n]
```

### Neat Examples (1)

Create a table of basic inverse bilateral Z transforms:

```wl
In[1]:= CompoundExpression[...]

In[2]:= Grid[Prepend[{#, FullSimplify[InverseBilateralZTransform[#1, z, n]]}& /@ Flist, {F[z], InverseBilateralZTransform[F[z], z, n]}], IconizedObject[«Grid options»]]//TraditionalForm

Out[2]//TraditionalForm=
$$\begin{array}{cc}
 F(z) & \text{InverseBilateralZTransform}[F(z),z,n] \\
 \fbox{$\frac{1}{z}\text{ if }| z| >0$} & 
\begin{array}{ll}
 \{ & 
\begin{array}{ll}
 1 & n=1 \\
 0 & \text{True} \\
\end{array}
 \\
\end{array}
 \\
 \fbox{$z\text{ if }| z ... 4\right)}\text{ if }\frac{1}{2}<| z| <2$} & 
\begin{array}{ll}
 \{ & 
\begin{array}{ll}
 2^{2-n} \cos \left(\frac{\pi  n}{2}\right) & n>0 \\
 2^{n-2} \cos \left(\frac{\pi  n}{2}\right) & \text{True} \\
\end{array}
 \\
\end{array}
 \\
\end{array}$$
```

## See Also

* [`BilateralZTransform`](https://reference.wolfram.com/language/ref/BilateralZTransform.en.md)
* [`ZTransform`](https://reference.wolfram.com/language/ref/ZTransform.en.md)
* [`InverseZTransform`](https://reference.wolfram.com/language/ref/InverseZTransform.en.md)
* [`InverseBilateralLaplaceTransform`](https://reference.wolfram.com/language/ref/InverseBilateralLaplaceTransform.en.md)
* [`GeneratingFunction`](https://reference.wolfram.com/language/ref/GeneratingFunction.en.md)
* [`SeriesCoefficient`](https://reference.wolfram.com/language/ref/SeriesCoefficient.en.md)
* [`InverseFourierSequenceTransform`](https://reference.wolfram.com/language/ref/InverseFourierSequenceTransform.en.md)

## Related Guides

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

## History

* [Introduced in 2021 (13.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn130.en.md)