Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I take the $Z$-Transform of the Floor function:

ZTransform[ Floor[x], x, z]

I get

z/(-1 + z)^2

But when I do:

InverseZTransform[ z/(-1 + z)^2, z, x]

... rather than Floor[x]...

Is this an error in Mathematica or is my understanding wrong?

Is there a way to take the discrete-time $Z$-transform on a list, say: { 1, 2, 3, 4, 5, 6, 7, 8, 9}... and then the inverse $Z$-transform?

share|improve this question
Hi and welcome to Mathematica.SE! You might want to have a look at the formatting help so you can format your code. – Verbeia Apr 13 '14 at 13:00
From the definition of the z transform it seems to follow that x is an integer. So Floor[x] or x should be the same. – Sjoerd C. de Vries Apr 13 '14 at 13:40

From definition

Mathematica graphics

so f[z] is evaluated first, if known, and then the ztransform is computed. So what you get back is the value of of the function, not the function itself. In this case, Mathematica simplified Floor[x] to x, which I think due to the discrete assumption in the definition. I tested this in Maple, and Maple did the same assumption.

f = {Floor[x], Ceiling[x], Round[x]};
ZTransform[f, x, z]

Mathematica graphics

All the functions f produced the same ztransform. Since all the functions evaluated to same value, which is x

InverseZTransform[%, z, x]
(* {x, x, x} *)

If the function whose ztranform you are trying to find can't be evaluated, Mathematica does not give a ztransform for

 ZTransform[foo[x], x, z]

Mathematica graphics

Is there a way to take the discrete-time Z-transform on a list, say: { 1, 2, 3, 4, 5, 6, 7, 8, 9}... and then the inverse Z-transform?

list = {1, 2, 3, 4, 5, 6, 7, 8, 9};
ZTransform[list, x, z]

Mathematica graphics

InverseZTransform[%, z, x]

Mathematica graphics

share|improve this answer
I tried to use the partial fraction expansion: Apart[z/(-1 + z)^2] = 1/(-1 + z)^2 + 1/(-1 + z) and InverseZTransform[1/(-1 + z)^2, z, x] + InverseZTransform[1/(-1 + z), z, x] = UnitStep[-1 + x] + (-1 + x) UnitStep[-1 + x]... The function seems to give the correct step function in the interval [0,1]: Plot[UnitStep[-1 + x] + (-1 + x) UnitStep[-1 + x], {x, 0, 10}] – user13675 Apr 13 '14 at 14:47
And Table[UnitStep[-1 + x] + (-1 + x) UnitStep[-1 + x], {x, 1, 10}] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} – user13675 Apr 13 '14 at 15:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.