Simulink to see Fourier
5 views (last 30 days)
Show older comments
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.
0 Comments
Answers (1)
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
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
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.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!