MATLAB: Square wave

amplitudefilterpulsesamplingsquare wavewidth

Hello I'm having a problem creating a square wave where i can change the pulse width and amplitude as need. Can anyone help point me in the right direction?

Best Answer

RESOLUTION = 1000; %whatever is appropriate
DUTYCYCLE = 0.73; %e.g. 73% on, 27% off
NUMBEROFCYCLES = 18; %as appropriate
basepulse = ones(1,RESOLUTION);
squarepulse = basepulse;
squarepulse(floor(DUTYCYCLE * RESOLUTION) + 1 : end) = 0;
wavetrain = repmat(squarepulse, 1, NUMBEROFCYCLES);