This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Generate fractional delay filter based on Thiran approximation


sys = thiran(tau, Ts)


sys = thiran(tau, Ts) discretizes the continuous-time delay tau using a Thiran filter to approximate the fractional part of the delay. Ts specifies the sample time.

Input Arguments


Time delay to discretize.


Sample time.

Output Arguments


Discrete-time tf object.


Approximate and discretize a time delay that is a noninteger multiple of the target sample time.

sys1 = thiran(2.4, 1)
Transfer function:
0.004159 z^3 - 0.04813 z^2 + 0.5294 z + 1
 z^3 + 0.5294 z^2 - 0.04813 z + 0.004159
Sample time: 1

The time delay is 2.4 s, and the sample time is 1 s. Therefore, sys1 is a discrete-time transfer function of order 3.

Discretize a time delay that is an integer multiple of the target sample time.

sys2 = thiran(10, 1)
Transfer function:
Sample time: 1


  • If tau is an integer multiple of Ts, then sys represents the pure discrete delay zN, with N = tau/Ts. Otherwise, sys is a discrete-time, all-pass, infinite impulse response (IIR) filter of order ceil(tau/Ts).

  • thiran approximates and discretizes a pure time delay. To approximate a pure continuous-time time delay without discretizing, use pade. To discretize continuous-time models having time delays, use c2d.


The Thiran fractional delay filter has the following form:


The coefficients a0, ..., aN are given by:


where D = τ/Ts and N = ceil(D) is the filter order. See [1].


[1] T. Laakso, V. Valimaki, “Splitting the Unit Delay”, IEEE Signal Processing Magazine, Vol. 13, No. 1, p.30-60, 1996.

See Also

| |

Introduced in R2010a