version 1.6 (55.6 KB) by Thomas Guillod
MATLAB Code for Fourier Series Handling (with FFT)


Updated 4 Nov 2021

From GitHub

View License on GitHub

MATLAB Code for Fourier Series Handling (with FFT)

license - BSD language - MATLAB category - science status - maintained

The MATLAB FFT/IFFT functions are good but not so easy to use for real periodic signal:

  • the ordering of the frequency vector is confusing due to the negative frequencies (spectrums are symmetric)
  • the coefficients are not scaled as in a Fourier series due to the definition of the DFT

The provided MATLAB functions offer different functionalities around Fourier series:

  • get time and frequency vector
  • wrappers around the MATLAB FFT/IFFT functions that scale periodic signals as Fourier series coefficients
  • many signals can be processed at the same time (matrices)

The following functions are offered for signal generation:

  • generate spectrum of arbitrary PWM periodic signals directly in the frequency domain
  • generate PWM signals with a finite/infinite slew rate
  • generate DC and AC sinusoidal signals

Additionally, several transformations can be applied to frequency domain signals:

  • apply low-pass filters (e.g., first-order, second-order)
  • apply simple transformations (eg., delay, phase shift, AC coupling)



  • Tested with MATLAB R2018b and R2021b.
  • No toolboxes are required.
  • Compatibility with GNU Octave not tested but probably easy to achieve.


Thomas Guillod - GitHub Profile


This project is licensed under the BSD License, see

Cite As

Thomas Guillod (2022). fourier_series_pwm_matlab (, GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2020a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.