Why do I receive unexpected results when using the Buffering-Unbuffering blocks in the Signal Processing Blockset?

1 view (last 30 days)
I am using the buffer block and then unbuffering my signal. I observe that my model works correctly with the variable step solver but not with the fixed step solver. I am unable to understand why this happens. As an example, view the attached model edge_detection_elaborate1.mdl and simulate this model using variable-step solver and then the fixed-step solver. You will notice that the difference between the original and reconstructed images is much higher when using the fixed-step solver.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This is expected behavior.
When using a fixed step solver, it is possible to select the tasking mode. If the tasking mode is selected to be "MultiTasking", the Unbuffer block's buffer is initialized with the value specified by the Initial condition parameter, and the block begins unbuffering this frame at the start of the simulation. Inputs to the block are therefore delayed by one buffer length. This causes the difference between the original and reconstructed signals to be higher. If the "SingleTasking" mode is selected for unbuffering, there is no delay introduced and the error between the two images is lower.

More Answers (0)

Categories

Find more on Conditionally Executed Subsystems and Models in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!