주요 콘텐츠

square

설명

x = square(t)는 시간 배열 t의 요소에 대해 주기가 2π인 구형파를 생성합니다. square는 사인 함수와 비슷하지만, 값이 –1과 1인 구형파를 만듭니다.

예제

x = square(t,duty)는 지정된 듀티 사이클 duty를 갖는 구형파를 생성합니다. 듀티 사이클은 구형파가 양수가 되는 신호 주기의 비율입니다.

예제

예제

모두 축소

0에서 3π까지 균일한 간격으로 배치된 100개 숫자로 구성된 벡터를 생성합니다. 주기가 2π인 구형파를 생성합니다.

x(t)={(-1)t/π,t=kπkZsign(sin(t)),tkπkZ

t = linspace(0,3*pi)';
x = square(t);

구형파를 플로팅하고 사인을 겹쳐 놓습니다. 생성되는 구형파는 구간 [1)에서 nπ,(n+1)π이 짝수이면 값이 n이고, 구간 [-1)에서 nπ,(n+1)π이 홀수이면 n입니다. 구형파 값이 0인 경우는 없습니다.

scatter(t,x,".")
hold on
scatter(t,sin(t),".")
hold off
xlabel("t")
xticks((0:3)*pi)
xticklabels(["0" "\pi" "2\pi" "3\pi"])
grid on

Figure contains an axes object. The axes object with xlabel t contains 2 objects of type scatter.

계산을 반복하되, 이번에는 -π2π 사이에서 균일한 간격으로 배치된 121개 숫자에서 square(2*t)를 계산합니다. 진폭을 1.15로 변경합니다. 이 구형파를 플로팅하고 같은 파라미터를 갖는 사인을 겹쳐 놓습니다. 이 새로운 구형파는 t=0에서 음수이며 끝점 -π2π에서 양수입니다. 이제 시간 값이 이전에 비해 두 배 빠르게 증가하므로, 주기가 이전보다 절반으로 줄어들어 주기는 π가 됩니다.

t = linspace(-pi,2*pi,121);
x = 1.15*square(2*t);

scatter(t,x,".")
hold on
scatter(t,1.15*sin(2*t),".")
hold off
xlabel("t")
xticks((-1:2)*pi)
xticklabels(["-\pi" "0" "\pi" "2\pi"])
grid on

Figure contains an axes object. The axes object with xlabel t contains 2 objects of type scatter.

R2026a 이후

이 예제에서는 진동 주기 또는 주파수를 사용하여 구형파를 만드는 방법을 보여줍니다.

디폴트 주기가 10초 중 2π초인 구형파를 생성합니다.

x(t)={(-1)t/π,t=kπkZsign(sin(t)),tkπkZ

Fs = 1000;
tEnd = 10-1/Fs;
t = 1/Fs:1/Fs:tEnd;

x1 = square(t);

2.5초의 주기 T로 진동하는 구형파를 생성합니다.

xT(t)=x(2πTt)

T = 2.5;
x2 = square(2*pi/T*t);

2Hz의 주파수 F에서 진동하는 구형파를 생성합니다.

xF(t)=x(2πFt)

F = 2;
x3 = square(2*pi*F*t);

구형파를 비교합니다. 파형은 지정된 주기 사양 또는 주파수 사양에 따라 진동합니다. x1, x2 및 x3은 각각 6.28초, 2.5초 및 0.5초마다 진동합니다.

strips([x1 x2 x3],tEnd,Fs)
xlabel("Time (seconds)")
yticklabels(["x3" "x2" "x1"])

Figure contains an axes object. The axes object with xlabel Time (seconds) contains an object of type line.

70ms 동안 1kHz로 샘플링된 30Hz 구형파를 생성합니다. 37%의 듀티 사이클을 지정합니다. 분산이 1/100인 백색 가우스 잡음을 추가합니다.

t = 0:1/1e3:0.07;
y = square(2*pi*30*t,37) + randn(size(t))/10;

이 구형파의 듀티 사이클을 계산합니다. 파형을 플로팅하고 듀티 사이클에 대한 주석을 표시합니다.

dutycycle(y,t)

Figure Duty Cycle Plot contains an axes object. The axes object with xlabel Time (seconds), ylabel Level (Volts) contains 9 objects of type line. One or more of the lines displays its values using only markers These objects represent signal, mid cross, upper boundary, upper state, lower boundary, mid reference, lower state.

ans = 
0.3639

입력 인수

모두 축소

시간 배열로, 벡터, 행렬 또는 N차원 배열로 지정됩니다. square는 크기가 1보다 큰 t의 첫 번째 배열 차원을 따라 동작합니다.

데이터형: single | double

듀티 사이클로, 0에서 100까지의 실수형 스칼라로 지정됩니다.

데이터형: single | double

출력 인수

모두 축소

구형파로, 벡터, 행렬 또는 N차원 배열로 반환됩니다.

확장 기능

모두 확장

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | | | | | | |