Simulink to see Fourier

7 views (last 30 days)
Robert Scott
Robert Scott on 20 Apr 2024
Edited: Pat Gipper on 22 Apr 2024
I have a very simple task but am not being successful.
I have a PWM generator in simulike runing at a certain frequency and certain duty cycle.
I want to take the fourier analysis of it and plot it in a scope.
What i expect to see is the DC component of the perioid signal... (i think?)
So if i have a period signal PWM signal with a magnitude of say 5 and duty cycle of .5 i expect to see a DC of 2.5 out on my scope.
How can i acomplish this? I have tried a few different blocks in simulink but im not getting what im expecting.
Perhaps my expecatations are wrong.

Answers (1)

Pat Gipper
Pat Gipper on 22 Apr 2024
I put it in a Matlab Fcn block and it seems to work. See the attached file for details.
  3 Comments
Pat Gipper
Pat Gipper on 22 Apr 2024
Edited: Pat Gipper on 22 Apr 2024
The memory block on the bottom, "io" retains a pointer into the top memory block, "buffer", where the latest sample of the input "u" is stored. "buffer" is a circular memory for storing the block of data for calculating the FFT. I tried to store this information within the Matlab function, but it was extremely unhappy with this attempt. I also wanted to make the FFT length a variable, and this was also problematical. I gave up on this for now and am just using a 32 (or was it 64, I forget?) point fixed length FFT.
You can find memory in the discrete selection of Simulink.
Pat Gipper
Pat Gipper on 22 Apr 2024
Edited: Pat Gipper on 22 Apr 2024
Were you able to open the attached file "fft_fcn.slx"? It was written using Matlab/Simulink 2024a build.

Sign in to comment.

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!