Can the filtfilt function be used in the simulink block matlab function?
8 views (last 30 days)
Show older comments
Goodafternoon,
I wanted to use a non-causal filter on a array of datapoints in my Simulink model. Therefore I implemented the filtfilt function in a matlab function block. However, I get the following error:
Simulink does not have enough information to determine output sizes for this block. If you think the errors below are inaccurate, try specifying types for the block inputs and/or sizes for the block outputs.
Component:MATLAB Function | Category:Coder error
Index exceeds array bounds.
Function 'MATLAB Function' (#737.23.38), line 3, column 3:
"filtfilt(1,2,u)"
Launch diagnostic report.
Component:MATLAB Function | Category:Coder error
What could be the problem here? If I use 'filter' it seems to work fine. I included a simple model in the attachment.
Kind regards,
Brecht
2 Comments
Ryan Takatsuka
on 23 Jul 2018
It looks like a and b cannot have the same length in the Simulink filtfilt() call for some reason. If you design a filter where a and b are different lengths, it seems to run:
filtfilt([1,1], 2, u)
Answers (0)
See Also
Categories
Find more on Measurements and Statistics 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!