Simulink tapped delay block with vector inputs

All,
I have often needed a "shift-register" function in Simulink that can accept vector inputs. The tapped delay only supports scalar inputs. I typically build this function using the "Matlab Function" block.
How do other people solve this problem? Is there a built-in solution I am not aware of?
Maybe someone from MathWorks is reading these questions? It is a pretty big gap that there is no built-in way to build a shift register with vectors.
Thanks.

 采纳的回答

Hi Sean,
To build a shift register block with vector input in Simulink, the Delay Line block from the DSP System Toolbox is a good option. This block supports vector inputs and can implement a shift register by delaying the input signal by a set number of samples. You can refer to the following document for more details:
Hope this helps!

1 个评论

I was unaware that the Delay Line block might work. I am not in a position to test it, but I appreciate the information. Thanks!

请先登录,再进行评论。

更多回答(1 个)

Hi @Sean,
The "Tapped Delay" block natively accepts only scalar inputs. A workaround to pass vector inputs is to use a "Buffer" block, setting the "Overlap" property to one less than the buffer size. Here is a useful discussion thread on a similar use case:
For more information on the "Buffer" block, refer to the following link:

1 个评论

Thanks for the response.
There are two problems with using the buffer block:
  1. The sample rate changes. This isn't always what you want.
  2. This block is not compatible with some of the codegen tools (the HDL coder, for example).

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Simulink 的更多信息

产品

版本

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by