MATLAB: How to poprely implement a matlab function in simulink

MATLABmatlab functionsimulink

Hello,
In sumulink, I am trying to create FFT output in two ways: with built-in simulink blocks, and with a Matlab function block (Simulink model attached). While biult-in blocks give a fine output, the function block is creating something I don't understand(also attached), what should I do for the function block to work fine(I need a function block for a much more complicated function later)?
The function code is as follows: function f = fun1(x) f = abs(fft(x)); end

Best Answer

There is no 'unbuffer' functions in your MATLAB function. So the data on your plot contain fft results calculated at each sample times. You could plot any column corresponding to the simulation time between 150sec and 250sec, which will give you a meaningful spectrum. Or simply add 'unbuffer' block as you did on the other path.
If you still see the unmatching results after you include 'unbuffer' block, please contact the MathWorks technical support.