Thank you for your input towards my question. When I tried running your snippet the expected output was completely reversed
function waveform = squareWave(length_of_wave,num_cycle, duty_cycle)
duty_cycle = duty_cycle * length_of_wave/num_cycle; %introduces duty cycle for positive edge
inv_duty = length_of_wave/num_cycle - duty_cycle; %introduces duty cycle for negative edge
oneCycle = [ones(1,duty_cycle),zeros(1,inv_duty)]; % one square wave form
waveform = repmat(oneCycle, [1,num_cycle]); %repeating "oneCycle" "num_cycle" times
end
%the expected output for the data squareWave(10,2,0.2) is
% 1 1 0 0 0 1 1 0 0 0
but when I ran your snippet it inculcated the decimal value and took it as an integer but it completely reversed the output
function waveform = squareWave(length_of_wave, num_cycle, duty_cycle)
oneCycleLength = length_of_wave/num_cycle;
t=1:oneCycleLength;
oneCycle(t)=0;
oneCycle(oneCycleLength*duty_cycle+1:end) = 1;
waveform = repmat(oneCycle, [1,num_cycle]);
plot(waveform)
end
% the actual output given by this code for the same data squareWave(10,2,0.2) is
% 0 0 1 1 1 0 0 1 1 1
Thanks again for your Inputs