Z-Transforms and Difference Equations?
05-13-2020, 03:40 AM
Post: #1
 anyfoo Junior Member Posts: 15 Joined: May 2020
Z-Transforms and Difference Equations?
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.
05-13-2020, 02:40 PM
Post: #2
 victorvbc Junior Member Posts: 46 Joined: Jun 2019
RE: Z-Transforms and Difference Equations?
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?
05-13-2020, 07:06 PM
Post: #3
 anyfoo Junior Member Posts: 15 Joined: May 2020
RE: Z-Transforms and Difference Equations?
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.
05-22-2020, 02:09 AM
Post: #4
 victorvbc Junior Member Posts: 46 Joined: Jun 2019
RE: Z-Transforms and Difference Equations?
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?
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)