How to break a waveform waveform into its constituent harmonics using FFT and see the harmonic waveforms at each frequency?

4 views (last 30 days)
I want to use Simulink to see the harmonics of a voltage waveform. So far I have used the fft simulink tool and only found the magnitude of the harmonic frequencies. What I would like to do is issolate and observe the waveform at the different frequencies as shown in the figure below.
  1 Comment
Mathieu NOE
Mathieu NOE on 13 May 2024
with the fft block you can get the fundamental frequency (or maybe you know it aleady before)
use that information to tune a bank of bandpass filters - each output correspond to one harmonic tone of the signal

Sign in to comment.

Answers (1)

MULI
MULI on 23 Sep 2024
Hi Rasula,
I understand that you need to isolate and observe the waveform at different harmonic frequencies of a voltage signal and you can follow the below steps to achieve this:
  • First, convert your voltage signal to the frequency domain using the FFT block.
  • Use a MATLAB Function block to zero out all frequency components except the one you want to observe.
  • This allows you to isolate specific harmonics, such as the fundamental frequency, 3rd harmonic, etc.
function y = isolate_harmonic(X, harmonic_index)
y = zeros(size(X));
y(harmonic_index) = X(harmonic_index); % Retain only the desired harmonic
end
  • Use the IFFT block to convert the frequency-domain data back to the time domain. This will give you the time-domain waveform of the isolated harmonic.
You can refer to these MathWorks documentation links for more information and examples related to “FFT” and “IFFT” block
This method avoids the complex designs of bandpass filters for each harmonic.

Community Treasure Hunt

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

Start Hunting!