b2KIT

Z-Transform Calculator

Compute Z-transforms and inverses for discrete-time sequences. Plot pole-zero diagrams and regions of convergence.

Tested tool guide Tested browser tools Checked August 16, 2026

What Z-Transform Calculator does, with a checked example

The Z-transform is to discrete-time signals what the Laplace transform is to continuous ones: it converts a sequence x[n] into a function X(z) of a complex variable, turning difference equations into algebra and convolution into multiplication. This tool computes X(z) for a pasted sequence, computes x[n] back from a rational X(z), and plots the pole-zero diagram with its region of convergence in the z-plane. The thing most users get wrong: the transform is not complete without the ROC, and two different sequences can produce the exact same rational X(z).

Worked example

A concrete input and expected output from the current implementation.

Input

x[n] = (0.5)^n u[n]

Expected output

X(z) = z/(z - 0.5) = 1/(1 - 0.5 z^(-1)), valid for |z| > 0.5. Pole at z = 0.5, zero at z = 0. Pole-zero plot: ROC is the exterior of the circle of radius 0.5 in the z-plane.

Each sample contributes the term (0.5 z^(-1))^n, so the sum from n = 0 is a geometric series closing to 1/(1 - 0.5 z^(-1)) = z/(z - 0.5), which converges exactly when |0.5 z^(-1)| < 1, that is |z| > 0.5. The single pole sits at the ratio 0.5, inside the unit circle, matching a stable causal sequence.

How the result is produced

1

What the sum becomes

The tool evaluates X(z) = sum over all n of x[n] z^(-n). Finite sequences expand term by term into a polynomial in z^(-1): a length-4 pulse 1, 1, 1, 1 becomes 1 + z^(-1) + z^(-2) + z^(-3). Exponential terms like a^n u[n] form a geometric series closing to z/(z - a), valid only where the series converges, and that boundary becomes the ROC circle on the plot.

2

Poles, zeros, and the ROC decide the inverse

For the inverse, the tool takes a rational X(z), factors numerator and denominator into zeros and poles, and expands X(z)/z into partial fractions whose terms map back to standard pairs such as a^n u[n] or n a^n u[n]. The ROC picks which side of each pole the sequence occupies: |z| > |a| gives a right-sided causal term, |z| < |a| an anti-causal one.

Good uses

  • Stability checks: paste the transfer function of a digital filter or a difference equation, take its Z-transform, and confirm every pole lies strictly inside the unit circle, which is necessary and sufficient for a bounded, stable impulse response.
  • Verifying hand work: check a Z-transform you derived, its partial-fraction coefficients, or an inverse transform, including the ROC, before relying on it.
  • Relating a recursion to its frequency behavior: transform both sides of y[n] = x[n] + b y[n-1] to get H(z) = z/(z - b), then use the pole-zero plot to reason about filtering without solving the recursion.

Limits and checks

  • The same X(z), several sequences. Without an ROC, z/(z - 0.5) has no unique inverse: |z| > 0.5 gives (0.5)^n u[n], |z| < 0.5 gives -(0.5)^n u[-n-1]. If the tool assumes causality when you enter no ROC, compare its choice with the region your problem specifies; two-sided and anti-causal cases differ in sign and support.
  • Poles on the unit circle. A pole exactly at |z| = 1 (u[n] has one at z = 1) still gives a valid transform with ROC |z| > 1, but the sequence is not absolutely summable, so the usual bounded-input stability verdict does not apply. Do not read every unit-circle pole as pass or fail.
  • Closed forms only for recognizable sequences. Exponential and polynomial terms close to z/(z - a); a raw table of numeric samples yields only the finite polynomial in z^(-1), and a non-rational X(z) may be rejected or returned as a series. Enter a symbolic form and an explicit ROC for the intended closed form.

Common questions

Why does the inverse come out different from what I expected?

Almost always an ROC mismatch. The rational function alone is ambiguous: z/(z - 0.5) inverts to (0.5)^n u[n] for |z| > 0.5 and to -(0.5)^n u[-n-1] for |z| < 0.5, with rings between poles giving two-sided sequences. The tool can return only one, so it follows the ROC you give, or a causal default if you give none. State the ROC and the result will match.

How is this different from the FFT?

The FFT samples a signal at N frequencies on the unit circle; the Z-transform is a function of the whole complex variable z. Evaluated on the unit circle it becomes the discrete-time Fourier transform, and the DFT is that function sampled at N equally spaced angles. The pole-zero diagram adds what frequency samples hide: where the transform blows up, which side the sequence extends on, and where the sum converges.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools