Skip to main content

Module z_transform

Module z_transform 

Source
Expand description

Z-transform for discrete-time signal analysis. Z-transform and inverse z-transform for discrete-time signal analysis.

Table-based implementation covering common discrete-time sequences. The z-transform of a sequence x[n] is X(z) = Σ x[n] z⁻ⁿ.

§Supported transforms (forward)

Time domainZ domain
c (constant)c·z/(z−1)
aⁿz/(z−a)
n·aⁿa·z/(z−a)²
sin(ωn)z·sin(ω) / (z²−2z·cos(ω)+1)
cos(ωn)z·(z−cos(ω)) / (z²−2z·cos(ω)+1)
aⁿ·sin(ωn)a·z·sin(ω) / (z²−2a·z·cos(ω)+a²)
aⁿ·cos(ωn)z·(z−a·cos(ω)) / (z²−2a·z·cos(ω)+a²)
nᵏ·x[n](−z d/dz)ᵏ X(z) (so n²aⁿ, n³, …)
δ[n−k]z⁻ᵏ
H(n−k)z⁻ᵏ·z/(z−1)
C(n, k)z/(z−1)^(k+1)
1/n!e^(1/z)
aⁿ·x[n]X(z/a)
x[n−k]·H(n−k)z⁻ᵏ·X(z)

Plus linearity (sum of terms) and constant factor extraction.

The inverse handles rational X(z) through partial fractions (terms z/(z−a)ᵐ → C(n, m−1) a^(n−m+1), 1/(z−a)ᵐ via the delay rule), constants (δ\[n\]), z⁻ᵏ (δ\[n−k\]), z⁻ᵏ X(z) (delay) and the trigonometric forms.

Unit samples in inverse results are KroneckerDelta(n, k); on input both KroneckerDelta(n, k) and DiracDelta(n − k) are accepted. Discrete unit steps in inverse results are written H(n − k + 1/2): for integer n this is exactly u[n − k] (1 for n ≥ k, else 0) under every convention for H(0). Both H(n − k) and H(n − k + 1/2) are accepted on input, with H(0) read as 1.