How can i generate regular sampling PWM output using Matlab (Model)?
Show older comments
How can i generate regular sampling PWM output using Matlab (Model)?
Answers (1)
Sabin
on 12 Aug 2025
A simple example in MATLAB that is generating a pulse for given duty cycle and frequency:
% Parameters
Fs = 10000; % Sampling frequency (Hz)
T = 1; % Duration (seconds)
f_pwm = 50; % PWM frequency (Hz)
duty_cycle = 30; % Duty cycle (%)
% Time vector
t = 0:1/Fs:T;
% Generate PWM signal
pwm_signal = square(2*pi*f_pwm*t, duty_cycle); % square()'s second argument is duty cycle
% Convert from [-1,1] to [0,1]
pwm_signal = (pwm_signal + 1)/2;
% Plot
figure;
plot(t, pwm_signal);
xlabel('Time (s)');
ylabel('Amplitude');
title(['PWM Signal: ', num2str(f_pwm), ' Hz, ', num2str(duty_cycle), '% Duty Cycle']);
axis([0 0.1 -0.2 1.2]); % Zoom on first 0.1 seconds
Simulink also contains a PWM block:
Communities
More Answers in the Power Electronics Control
Categories
Find more on Switches and Breakers in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!