This is machine translation

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

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

dsp.VariableIntegerDelay System object

Package: dsp

Delay input by time-varying integer number of sample periods


The VariableIntegerDelay object delays input by time-varying integer number of sample periods.

To delay the input by a time-varying integer number of sample periods:

  1. Define and set up your variable integer delay object. See Construction.

  2. Call step to delay the input according to the properties of dsp.VariableIntegerDelay. The behavior of step is specific to each object in the toolbox.

    Note:   Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.


vid = dsp.VariableIntegerDelay returns a variable integer delay System object, vid, that delays discrete-time input by a time-varying integer number of sample periods.

vid = dsp.VariableIntegerDelay('PropertyName',PropertyValue,...) returns a variable integer delay System object, vid, with each property set to the specified value.



Maximum delay

Specify the maximum delay the object can produce for any sample. The maximum delay must be a positive scalar integer value. The object clips input delay values greater than the MaximumDelay to the MaximumDelay. The default is 100.


Initial values in memory

Specify the values with which the object's memory is initialized. The dimensions of this property can vary depending on whether you want fixed or time-varying initial conditions. The default is 0.

For an M-by-N frame-based input matrix U, you can set the InitialConditions property as follows:

  • To specify fixed initial conditions, set the InitialConditions property to a scalar value. The object initializes every sample of every channel in memory using the value you specify.

  • To specify different time-varying initial conditions for each channel, set the InitialConditions property to an array of size 1-by-N-by-D, where D is the value of the MaximumDelay property.


Allow direct feedthrough

When you set this property to true, the object allows direct feedthrough. When you set this property to false, the object increases the minimum possible delay by one. The default is true.


resetReset internal states of variable integer delay object
stepDelay input by time-varying integer number of sample periods
Common to All System Objects

Create System object with same property values


Expected number of inputs to a System object


Expected number of outputs of a System object


Check locked states of a System object (logical)


Allow System object property value changes


expand all

Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent step syntax. For example, myObject(x) becomes step(myObject,x).

Delay a signal by a varying number of integer sample periods.

vid = dsp.VariableIntegerDelay;
x = 1:100;
ii = 0;
k = 0;
yout = [];

while(ii+10 <= 100)
     y = vid(x(ii+1:ii+10)',k*ones(10,1));
     yout = [yout;y];
     ii = ii+10;
     k = k+1;

hold on; stem(yout,'r');
legend('Original Signal', 'Variable Integer Delayed Signal')


This object implements the algorithm, inputs, and outputs described on the Variable Integer Delay block reference page. The object properties correspond to the block properties, except:

When you set the DirectFeedthrough property of the System object to true, the object allows direct feedthrough. This behavior is different from the way the block behaves when you select the corresponding Disable direct feedthrough by increasing minimum possible delay by one check box on the block dialog. When you enable this block parameter, the block does not allow direct feedthrough.

Extended Capabilities

Introduced in R2012a

Was this topic helpful?