Рабочий цикл формы волны меандра

Этот пример показывает, как создать форму волны меандра и измерить ее рабочий цикл. Можно думать о форме волны меандра как о последовательности на и от состояний. Один импульсный период является общей длительностью на и от состояния. Ширина импульса является длительностью на состоянии. Рабочий цикл является отношением ширины импульса к импульсному периоду. Рабочий цикл для меандра описывает часть времени, когда импульс включен в один импульсный период.

Создайте меандр, выбранный на уровне 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