unwrap
위상각 변위
설명
Q = unwrap(
는 벡터 P
)P
에 있는 라디안 위상각을 펼칩니다. 연속되는 각도 값 간의 비약이 π 라디안보다 크거나 같으면 unwrap
은 비약이 π 미만이 될 때까지 ±2π의 배수를 더해 각도를 변위합니다. P
가 행렬이면 unwrap
은 열을 기준으로 동작합니다. P
가 다차원 배열인 경우 unwrap
은 크기가 1보다 큰 첫 번째 차원에 대해 계산을 수행합니다.
예제
나선의 위상각 수정하기
0~의 위상각을 가진 나선의 , 좌표를 정의합니다. 나선을 플로팅합니다.
t = linspace(0,6*pi,201); x = t/pi.*cos(t); y = t/pi.*sin(t); plot(x,y)
atan2
함수를 사용하여 , 좌표에서 나선의 위상각을 구합니다. atan2
함수는 닫힌 구간 ~ 내에 있는 각도 값을 반환합니다.
P = atan2(y,x); plot(t,P)
이 플롯에는 불연속점이 있습니다. unwrap
을 사용하여 불연속점을 제거합니다. unwrap
은 P
의 연속되는 요소 사이의 위상차가 비약 임계값 라디안보다 크거나 같을 때 의 배수를 추가합니다. 변위된 위상각 Q
는 0~ 구간에 있습니다.
Q = unwrap(P); plot(t,Q)
다양한 임계값으로 위상각 변위하기
주파수 응답의 위상각을 변위해 보겠습니다. 이 위상 곡선에는 2개의 비약이 있습니다. 첫 번째는 W = 3
과 W = 3.4
사이에서 3.4250
라디안만큼 비약하고 두 번째는 W = 5
와 W = 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-')
unwrap
을 사용하여 디폴트 비약 임계값 라디안으로 위상각을 변위합니다. 변위된 위상 곡선을 플로팅합니다. 두 비약 모두 비약 임계값 라디안보다 크므로 변위됩니다.
plot(W,unwrap(P),'ro-')
이제 비약 임계값을 5
라디안으로 하여 위상각을 변위합니다. 변위된 위상 곡선을 플로팅합니다. 첫 번째 비약은 비약 임계값 5
라디안보다 작으므로 변위되지 않습니다.
plot(W,unwrap(P,5),'ro-')
행렬에 위상 변위 적용하기
위상각을 포함하는 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.07
과 P(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
입력 인수
P
— 입력 배열
벡터 | 행렬 | 다차원 배열
입력 배열로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다.
데이터형: single
| double
tol
— 위상 변위를 적용하기 위한 비약 임계값
pi
(디폴트 값) | 스칼라
위상 변위를 적용하기 위한 비약 임계값으로, 스칼라로 지정됩니다. π보다 작은 비약 임계값은 디폴트 임계값 π와 같은 효과를 가집니다.
데이터형: single
| double
dim
— 연산을 수행할 차원
양의 정수 스칼라
연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.
unwrap(P,[],1)
은P
의 열에 대해 연산을 수행하고 각 열의 변위된 위상각을 반환합니다.unwrap(P,[],2)
는P
의 행에 대해 연산을 수행하고 각 행의 변위된 위상각을 반환합니다.
dim
이 ndims(P)
보다 큰 경우 unwrap(P,[],dim)
은 P
를 반환합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
출력 인수
Q
— 변위된 위상각
벡터 | 행렬 | 다차원 배열
변위된 위상각으로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. 출력값 Q
의 크기는 항상 입력값 P
의 크기와 동일합니다.
데이터형: single
| double
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
행 벡터 입력은 처음 2개 입력값이 벡터와 비 스칼라인 경우에만 지원됩니다.
출력 클래스에서 연산을 수행합니다. 따라서, 반올림 오차의 차이로 인해 결과가 MATLAB®과 일치하지 않을 수 있습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
unwrap
함수는 GPU 배열을 완전히 지원합니다. GPU에서 이 함수를 실행하려면 입력 데이터를 gpuArray
(Parallel Computing Toolbox)로 지정하십시오. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)