You are here : matlab → Signal Processing → square
# square() - Signal Processing

### Syntax

### Example

### Output / Return Value

### Limitations

### Alternatives / See Also

### Reference

x = square(t) generates a square wave with period 2π for the elements of time vector t. square(t) is similar to sin(t), but creates a square wave with peaks of ±1 instead of a sine wave.x = square(t,duty) generates a square wave with specified duty cycle, duty, which is a number between 0 and 100. The duty cycle is the percent of the period in which the signal is positive.

x = square(t)x = square(t,duty)

Generate Square WavesOpen This Example Create a vector of 100 equally spaced numbers from to . Generate a square wave with a period of . t = linspace(0,3*pi)'; x = square(t); Plot the square wave and overlay a sine. Normalize the x-axis by . The generated square wave has a value of at even multiples of and a value of at odd multiples of . It is never .plot(t/pi,x,'.-',t/pi,sin(t)) xlabel('t / \pi') grid on Repeat the calculation, but now evaluate square(2*t) at 121 equally spaced numbers between and . Change the amplitude to . Plot the wave and overlay a sine with the same parameters. This new wave is negative at and positive at the endpoints.t = linspace(-pi,2*pi,121); x = 1.15*square(2*t); plot(t/pi,x,'.-',t/pi,1.15*sin(2*t)) xlabel('t / \pi') grid on Duty Cycle of Square WaveOpen This Example 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 = 0:1/1e3:0.07; y = square(2*pi*30*t,37)+randn(size(t))/10; Compute the duty cycle of the wave. Plot the waveform and annotate the duty cycle.dutycycle(y,t) ans = 0.3639