Identification of the delay induced by a FIR interpolator block in simulink

1 view (last 30 days)
Guerin Nicolas
Guerin Nicolas on 6 Jul 2020
Edited: Elady on 1 Jul 2021
I am currently trying to upsample some signals in Simulink using the FIR interpolation block.
To test such functionnalities, I used the `ex_polyphaseinterp` example provided in the documentation.
According to the same documentation, with the settings used in the example, the interpolated signal should have a 3 sample delay (as the upsample factor is of 3).
However, when checking the scope for the signals, a much higher delay is observed as can be seen below
Can anyone clarify the information in the documentation and / or point errors in my reasoning ?
Mathieu NOE
Mathieu NOE on 13 Oct 2020
I wonder if the term "latency" in the doc covers everything you see on your graph
beside this " latency " effect (to be clarified) , any FIR filter will show a group delay equals half of the FIR order
do you know your filter order ?

Sign in to comment.

Answers (1)

Elady on 1 Jul 2021
Edited: Elady on 1 Jul 2021
Hello Guerin,
The delay that you see in the FIR interpolator output is a result of the FIR group delay, like Mathieu mentioned.
That delay should not be confused with the latency discussed in the documentation. That latency has a different meaning, pertaining multirate execution and frame-based processing, which is not the case here (you verify that the FIR Interpolator block runs in "sample based" mode).
In the case of the ex_polyphaseinterp example, the FIR is obtained by h=fir1(35,0.3). It is a symmetric type-II linear phase FIR, which has a group delay of samples. Accounting for the sample time in the simulation, the expected output delay is , exactly as it shows on the scope.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by