HP Forums
Z-Transforms and Difference Equations? - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: HP Prime (/forum-5.html)
+--- Thread: Z-Transforms and Difference Equations? (/thread-14983.html)



Z-Transforms and Difference Equations? - anyfoo - 05-13-2020 03:40 AM

Z-Transforms are a great tool for dealing with difference equations, for example:

y(n) = 2*x(n) + 3*x(n-1) + 4*y(n) + 2*y(n-1)

However, I don't know how to type such a difference equation into the CAS. If I just try to define it as a function, the CAS warns me that I have a recursive definition, and goes into an infinite loop if I try to actually evaluate the z-transform.

Somewhat relatedly, I noticed that simply taking the Z Transform of the Dirac function does not lead to a simple "1", but instead to

sum(z^-n * Dirac(n),n,0,inf)

Which is just the direct application of the Z Transform, without any simplification.


RE: Z-Transforms and Difference Equations? - victorvbc - 05-13-2020 02:40 PM

Yeah, I was never able to do that either. I think the ztrans() command can't handle difference equations, only expressions like e^(-kT), Heaviside(k-1), etc.

The inverse Z transform of 1 "invztrans(1,z,k)" returns the Kronecker delta, not Dirac, but "Kronecker(k)" doesn't seem to have any definition in the calculator. Maybe that's the reason it can't do the transform of impulse function?


RE: Z-Transforms and Difference Equations? - anyfoo - 05-13-2020 07:06 PM

Playing around with it more, it seems what's missing here is the ability to declare, but not define, sequences. I.e. x and y in my example above are not functions (which would make x's definition above indeed recursive), but sequences.

If you could just tell the CAS that x and y are sequences, then

ztrans(2*x(n) + 3*x(n-1) + 4*y(n) + 2*y(n-1),n,z)

(omitting the "y(n) =" at the front) would, through the shift theorem, resolve to something like:

ztrans(2*x(n)) + z^(-1)*ztrans(3*x(n)) + ztrans(4*y(n)) + z^(-1)*ztrans(2*y(n))

And that would be very nice already.

Now, if you could also tell the CAS that, say, X is the z-transform of x, and Y is the z-transform of y, the expression could be further simplified to remove the "ztrans()"s.

I don't suppose that possible? This kind of thing, i.e. declaring relations between functions/sequences/other objects without defining those objects, so that they stay symbolic, is something that I've wondered about before. In another thread, I asked about how to tell the CAS that F(x) is the indefinite integral/antiderivative of f(x) without defining f(x) to a specific function.


RE: Z-Transforms and Difference Equations? - victorvbc - 05-22-2020 02:09 AM

So this is when the Kronecker delta was added to Xcas as the inverse Z transform of 1. The function itself still isn't defined in the Prime's cas though.

Any chance it could be added in the next update?