Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

thiran

Generate fractional delay filter based on Thiran approximation

Syntax

sys = thiran(tau, Ts)

Description

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

tau

Time delay to discretize.

Ts

Sample time.

Output Arguments

sys

Discrete-time tf object.

Examples

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:
 1
----
z^10
 
Sample time: 1

More About

collapse all

Tips

  • 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.

Algorithms

The Thiran fractional delay filter has the following form:

H(z)=aNzN+aN1zN1++a1a0zN+a1zN1++aN.

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

ak=(1)k(Nk)i=0NDN+iDN+k+i,k:1,2,,Na0=1

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

References

[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

Was this topic helpful?