В этом примере показано, как создать прямоугольный импульсный сигнал и измерить его рабочий цикл. Форму прямоугольного импульса можно рассматривать как последовательность состояний включения и выключения. Один период импульса - это общая продолжительность состояния включения и выключения. Длительность импульса - это длительность включенного состояния. Рабочий цикл представляет собой отношение длительности импульса к периоду импульса. Рабочий цикл для прямоугольного импульса описывает долю времени, в течение которой импульс включен за один период импульса.
Создайте прямоугольный импульс с частотой 1 гигагерц. Импульс включен или равен 1 в течение 1 микросекунды. Импульс, если он выключен или равен 0, в течение 3 микросекунд. Период импульса составляет 4 микросекунды. Постройте график формы сигнала.
Fs = 1e9; t = 0:1/Fs:(10*4e-6); pulsewidth = 1e-6; pulseperiods = [0:10]*4e-6; x = pulstran(t,pulseperiods,@rectpuls,pulsewidth); plot(t,x) axis([0 4e-5 -0.5 1.5])

Определите рабочий цикл сигнала с помощью dutycycle. Введите как форму импульса, так и частоту дискретизации для вывода рабочего цикла. dutycycle выводит значение рабочего цикла для каждого обнаруженного импульса.
D = dutycycle(x,Fs)
D = 1×9
0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
В этом примере рабочий цикл для каждого из обнаруженных импульсов идентичен и равен 0,25. Это ожидаемый рабочий цикл, потому что импульс включен в течение 1 микросекунды и выключен в течение 3 микросекунд в каждом 4 микросекундном периоде. Поэтому импульс включается в течение 1/4 каждого периода. Выраженное в процентах, это равно рабочему циклу 25%.
Запрос dutycycle без выходных аргументов создает график со всеми обнаруженными значениями ширины импульса.
dutycycle(x,Fs);

Используя одну и ту же частоту дискретизации и период импульса, варьируйте импульс во времени (длительность импульса) от 1 до 3 микросекунд в цикле и рассчитайте рабочий цикл. Постройте график формы импульсов и отобразите значение рабочего цикла в заголовке графика для каждого шага в цикле. Рабочий цикл увеличивается с 0,25 (1/4) до 0,75 (3/4) при увеличении длительности импульса.
nwid = 3; for nn = 1:nwid x = pulstran(t,pulseperiods,@rectpuls,nn*pulsewidth); subplot(nwid,1,nn) plot(t,x) axis([0 4e-5 -0.5 1.5]) D = dutycycle(x,Fs); title(['Duty cycle is ' num2str(mean(D))]) end
