Main Content

unwrap

설명

예제

Q = unwrap(P)는 벡터 P에 있는 라디안 위상각을 펼칩니다. 연속되는 각도 값 간의 비약이 π 라디안보다 크거나 같으면 unwrap은 비약이 π 미만이 될 때까지 ±2π의 배수를 더해 각도를 변위합니다. P가 행렬이면 unwrap은 열을 기준으로 동작합니다. P가 다차원 배열인 경우 unwrap은 크기가 1보다 큰 첫 번째 차원에 대해 계산을 수행합니다.

예제

Q = unwrap(P,tol)P의 요소 간 비약을 디폴트 값 π 라디안 대신 비약 임계값 tol과 비교합니다. π 미만의 비약 임계값을 지정하면 unwrap은 디폴트 비약 임계값 π를 사용합니다.

예제

Q = unwrap(P,[],dim)은 차원 dim을 따라서 펼칩니다.

Q = unwrap(P,tol,dim)은 비약 임계값 tol을 사용하여 차원 dim을 따라서 펼칩니다.

예제

모두 축소

0~6π의 위상각을 가진 나선의 x, y 좌표를 정의합니다. 나선을 플로팅합니다.

t = linspace(0,6*pi,201);
x = t/pi.*cos(t);
y = t/pi.*sin(t);
plot(x,y)

Figure contains an axes object. The axes object contains an object of type line.

atan2 함수를 사용하여 x, y 좌표에서 나선의 위상각을 구합니다. atan2 함수는 닫힌 구간 -π~π 내에 있는 각도 값을 반환합니다.

P = atan2(y,x);
plot(t,P)

Figure contains an axes object. The axes object contains an object of type line.

이 플롯에는 불연속점이 있습니다. unwrap을 사용하여 불연속점을 제거합니다. unwrapP의 연속되는 요소 사이의 위상차가 비약 임계값 π 라디안보다 크거나 같을 때 ±2π의 배수를 추가합니다. 변위된 위상각 Q는 0~6π 구간에 있습니다.

Q = unwrap(P);
plot(t,Q)

Figure contains an axes object. The axes object contains an object of type line.

주파수 응답의 위상각을 변위해 보겠습니다. 이 위상 곡선에는 2개의 비약이 있습니다. 첫 번째는 W = 3W = 3.4 사이에서 3.4250 라디안만큼 비약하고 두 번째는 W = 5W = 5.4 사이에서 6.3420 라디안만큼 비약합니다. 위상 곡선을 플로팅합니다.

clear; close all;
W = [0:0.4:3, 3.4:0.4:5, 5.4:0.4:7];
P = [-1.5723
     -1.5747
     -1.5790
     -1.5852
     -1.5922
     -1.6044
     -1.6269
     -1.6998
      1.7252
      1.5989
      1.5916
      1.5708
      1.5582
     -4.7838
     -4.8143
     -4.8456
     -4.8764
     -4.9002];
plot(W,P,'bo-')

Figure contains an axes object. The axes object contains an object of type line.

unwrap을 사용하여 디폴트 비약 임계값 π 라디안으로 위상각을 변위합니다. 변위된 위상 곡선을 플로팅합니다. 두 비약 모두 비약 임계값 π 라디안보다 크므로 변위됩니다.

plot(W,unwrap(P),'ro-')

Figure contains an axes object. The axes object contains an object of type line.

이제 비약 임계값을 5 라디안으로 하여 위상각을 변위합니다. 변위된 위상 곡선을 플로팅합니다. 첫 번째 비약은 비약 임계값 5 라디안보다 작으므로 변위되지 않습니다.

plot(W,unwrap(P,5),'ro-')

Figure contains an axes object. The axes object contains an object of type line.

위상각을 포함하는 2열 행렬 P를 정의합니다.

P = [0 7.07; 0.19 0.98; 6.67 1.18; 0.59 1.37; 0.78 1.56]
P = 5×2

         0    7.0700
    0.1900    0.9800
    6.6700    1.1800
    0.5900    1.3700
    0.7800    1.5600

위상각 P(1,2) = 7.07P(3,1) = 6.67은 나머지 데이터에 비해 π보다 큰 위상차가 있습니다.

먼저 요소들을 열을 기준으로 비교하여 위상각을 펼칩니다. dim 인수를 1로 지정합니다. 두 번째 인수를 []로 지정하여 디폴트 비약 임계값 π를 사용합니다.

dim = 1;
P1 = unwrap(P,[],dim)
P1 = 5×2

         0    7.0700
    0.1900    7.2632
    0.3868    7.4632
    0.5900    7.6532
    0.7800    7.8432

위상각을 열 대신 행을 기준으로 변위하려면 dim을 1 대신 2로 지정하십시오.

dim = 2;
P2 = unwrap(P1,[],dim)
P2 = 5×2

         0    0.7868
    0.1900    0.9800
    0.3868    1.1800
    0.5900    1.3700
    0.7800    1.5600

입력 인수

모두 축소

입력 배열로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다.

데이터형: single | double

위상 변위를 적용하기 위한 비약 임계값으로, 스칼라로 지정됩니다. π보다 작은 비약 임계값은 디폴트 임계값 π와 같은 효과를 가집니다.

데이터형: single | double

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.

  • unwrap(P,[],1)P의 열에 대해 연산을 수행하고 각 열의 변위된 위상각을 반환합니다.

    unwrap(P,[],1) column-wise operation

  • unwrap(P,[],2)P의 행에 대해 연산을 수행하고 각 행의 변위된 위상각을 반환합니다.

    unwrap(P,[],2) row-wise operation

dimndims(P)보다 큰 경우 unwrap(P,[],dim)P를 반환합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

변위된 위상각으로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. 출력값 Q의 크기는 항상 입력값 P의 크기와 동일합니다.

데이터형: single | double

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

| | |