Generate fractional delay filter based on Thiran approximation
sys
= thiran(tau
,Ts
)
discretizes the continuous-time delaysys
= thiran(tau
,Ts
)tau
using a Thiran filter to approximate the fractional part of the delay.Ts
specifies the sample time.
|
Time delay to discretize. |
|
Sample time. |
|
Discrete-time |
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
是一个订单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
Iftau
is an integer multiple ofTs
, thensys
represents the pure discrete delayz–N, withN=tau/Ts
. Otherwise,sys
is a discrete-time, all-pass, infinite impulse response (IIR) filter of orderceil(tau/Ts)
.
thiran
approximates and discretizes a pure time delay. To approximate a pure continuous-time time delay without discretizing, usepade
. To discretize continuous-time models having time delays, usec2d
.
The Thiran fractional delay filter has the following form:
The coefficientsa0, ...,aNare given by:
whereD=τ/TsandN= 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.