Main Content

등간격 시간 벡터와 비등간격 시간 벡터 생성하기

시계열과 관련된 계산에 사용할 등간격 시간 벡터와 비등간격 시간 벡터를 생성할 수 있습니다.

등간격 시간 벡터

샘플링 주파수를 아는 경우 콜론 연산자를 사용하십시오. 시스템에서 1초 동안 15Hz 속도로 시간을 샘플링한다면 16개 측정값을 얻게 됩니다(0에서 이루어지는 측정 하나 포함).

Fs = 15;
Ts = 1/Fs;
ts = 0:Ts:1;

시간 간격의 시작과 끝을 알고 샘플 개수를 아는 경우에는 linspace를 사용하십시오. 스톱워치를 시작하여 1초 후에 멈춘다고 가정하겠습니다. 기기에서 15번 측정되었다면 다음과 같이 시간 벡터를 생성할 수 있습니다.

tl = linspace(0,1,15);

샘플에서 바로 샘플 레이트를 계산하고 그 샘플 레이트를 사용하여 시간 벡터를 재구성할 수 있습니다.

sf = 1/(tl(2)-tl(1));

TL = (0:length(tl)-1)/sf;

ErrorTL = max(abs(tl-TL))
ErrorTL = 0

linspace를 사용하여 ts를 재구성할 수도 있습니다.

lts = length(ts);
TS = linspace(ts(1),ts(lts),lts);

ErrorTS = max(abs(ts-TS))
ErrorTS = 1.1102e-16

linspace와 콜론 연산자는 기본적으로 행 벡터를 생성합니다. 열 벡터를 구하려면 이 두 벡터를 전치하십시오.

tcol = tl';
ttrans = ts';

NoteTo import an evenly spaced time vector into Simulink(R), use an expression of the formtimeVector=timeStep*(startTime/timeStep:endTime/timeStep)rather thantimeVector=(startTime:timeStep:endTime).For more information, see "Load Data to Root-Level Input Ports" in the Simulink documentation.

비등간격 시간 벡터

linspace와 콜론 연산자를 함께 사용하여 임의 특성을 가진 비등간격 시간 벡터를 생성할 수 있습니다.

가우스 변조된 정현파 펄스를 샘플링해야 한다고 가정하겠습니다. 펄스는 1초 구간에서는 급격히 변하지만 그 전의 시간(초)과 그 후의 시간(초)에서는 천천히 변합니다.

관심 영역을 100Hz로 샘플링하고 전과 후의 샘플을 5개만 취합니다. 대괄호를 사용하여 벡터를 결합합니다.

gpl = @(x) 2.1*gauspuls(x-1.5,5,0.4);

Ffast = 100;
Tf = 1/Ffast;
Nslow = 5;
tdisc = [linspace(0,1,Nslow) 1+Tf:Tf:2-Tf linspace(2,3,Nslow)];

20001개의 함수 샘플을 생성하여 연속시간 펄스를 시뮬레이션합니다. tsf에 의해 정의된 샘플들의 플롯을 겹칩니다.

Tcont = linspace(0,3,20001)';

plot(Tcont,gpl(Tcont),tdisc,gpl(tdisc),'o','markersize',5)

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

참고 항목