DiscreteTransferFunction Block
Implements a discrete-time transfer function H(z) = B(z)/A(z) using Direct Form II transposed
Open DiscreteTransferFunction in BlockWerk →# DiscreteTransferFunction Block
Description
Implements a discrete-time transfer function H(z) = B(z)/A(z) using the Direct Form II Transposed structure. Coefficients are specified as space-separated values in descending powers of z.
Mathematical Model
H(z) = B(z) / A(z)
B(z) = b₀ + b₁·z⁻¹ + b₂·z⁻² + ... + bₘ·z⁻ᵐ
A(z) = 1 + a₁·z⁻¹ + a₂·z⁻² + ... + aₙ·z⁻ⁿ
Coefficients are given in descending powers of z. Example: numerator 1 0.5 means z + 0.5.
Parameters
numerator
Space-separated numerator coefficients in descending powers of z. Example: 1 0.5 represents z + 0.5.
denominator
Space-separated denominator coefficients in descending powers of z. Example: 1 -0.5 represents z - 0.5.
sampleTime
Discrete sample time (seconds).
Examples
| Transfer Function | Numerator | Denominator | | ----------------------------- | --------- | ----------- | | First-order LP: 0.5/(z - 0.5) | 0 0.5 | 1 -0.5 | | Moving average: (1 + z⁻¹)/2 | 0.5 0.5 | 1 | | Unit delay: z⁻¹ | 0 1 | 1 0 |
Remarks
- Causality: Numerator order should not exceed denominator order for proper real-time implementation
- Initial transients: Filter states start at zero; first few output samples reflect start-up transient behaviour
- Sample time: Must match or be a multiple of the simulation's base sample time
- Coefficient format: Coefficients are space-separated in descending powers of z; trailing zeros in the numerator are significant
- Direct Form II Transposed: Numerically robust implementation with fewer delay states than Direct Form I
See Also
- TransferFunction: Continuous-time transfer function G(s)
- UnitDelay: Simple one-sample delay (z⁻¹)