What Simulink tool should I use to break a continuous signal into its frequency components?

20 views (last 30 days)
Surojit Sen
Surojit Sen on 16 Mar 2017
Commented: Surojit Sen on 27 Apr 2017
I have a continuous signal which is composed of multiple frequency components, not necessarily harmonics. How do I separate this signal into its frequency components? FFT tool is there but due to some reason, it is not giving the components, rather producing the same signal with a more "discretized" graph. FFT is mathematically for discrete signals, but aren't continuous signals also really discrete in MATLAB? If no, then what can I use for a continuous signal? Otherwise, how can I discretize my continuous signal to give a discrete proxy, capable to be used with the FFT block. Thanks, attaching some pictures and the model.

Accepted Answer

Ed Marquez
Ed Marquez on 23 Mar 2017
Hi,
I recommend checking a really simple demo for using the FFT block in Simulink. You can open the demo by typing 'ex_fft_tut' at the MATLAB command window (I am assuming you are using R2016b on a Windows PC, and have all the necessary licenses).
In the example you will see that the FFT block takes frames of data (128 values at once), but in your model you are feeding a single scalar value to the block. Additionally, your signal is continuous so you will need to discretize it to be able to take the FFT with the block. One way to discretize your signal can be to use a Zero-Order hold and specify an adequate sample time. You can also use a Buffer block to create the frame of data that your FFT needs.
Please check the image below and see how I modified the example 'ex_fft_tut'. You can do something similar with your model. The image shows the dialog parameters for the Sine Wave, Zero-Order Hold, and Buffer blocks - everything else has the example defaults.
I hope this helps!

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by