Generate a square wave of period 2π with limits +1 and -1.
square(t, duty =50)
Arguments
t: Time array, specified as a vector.
duty: Duty cycle, specified as a real scalar from 0 to 100. Default: 50.
Returns
Square wave, returned as a vector.
Details
y <- square(t) generates a square wave with period 2π for the elements of the time array t. square is similar to the sine function but creates a square wave with values of –1 and 1.
y <- square(t, duty) generates a square wave with specified duty cycle duty. The duty cycle is the percent of the signal period in which the square wave is positive.
Examples
## Create a vector of 100 equally spaced numbers from 0 to 3pi.## Generate a square wave with a period of 2pi.t <- seq(0,3*pi, length.out =100)y <- square(t)plot(t/pi, y, type="l", xlab = expression(t/pi), ylab ="")lines (t/pi, sin(t), col ="red")## Generate a 30 Hz square wave sampled at 1 kHz for 70 ms.## Specify a duty cycle of 37%.## Add white Gaussian noise with a variance of 1/100.t <- seq(0,0.07,1/1e3)y <- square(2* pi *30* t,37)+ rnorm(length(t))/10plot(t, y, type="l", xlab ="", ylab ="")