atan2
고정소수점 값의 4사분면 역탄젠트
설명
예제
atan2 함수를 사용하여 부호 없는 고정소수점 입력값과 부호 있는 고정소수점 입력값의 역탄젠트를 계산합니다.
부호 없는 입력값
이 예제에서는 부호 없는 16비트 워드 길이 값을 사용합니다.
y = fi(0.125,0,16); x = fi(0.5,0,16); z = atan2(y,x)
z =
0.2450
DataTypeMode: Fixed-point: binary point scaling
Signedness: Unsigned
WordLength: 16
FractionLength: 15
부호 있는 입력값
이 예제에서는 부호 있는 16비트 워드 길이 값을 사용합니다.
y = fi(-0.1,1,16); x = fi(-0.9,1,16); z = atan2(y,x)
z =
-3.0309
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 13
입력 인수
y 좌표로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다.
y와 x는 고정소수점 각도 값(단위: 라디안)을 포함하는, 부호 있는 또는 부호 없는 실수 값의 스칼라, 벡터, 행렬 또는 N차원 배열일 수 있습니다. 입력값 y와 x의 크기는 같아야 합니다. 크기가 같지 않은 경우 적어도 하나의 입력값은 스칼라 값이어야 합니다. y와 x의 유효한 데이터형은 다음과 같습니다.
fisingle형fidouble형이진 소수점 스케일링을 사용하는
fi고정소수점이진 소수점 스케일링을 사용하는
fi스케일링된 double형
데이터형: fi
x 좌표로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다.
y와 x는 고정소수점 각도 값(단위: 라디안)을 포함하는, 부호 있는 또는 부호 없는 실수 값의 스칼라, 벡터, 행렬 또는 N차원 배열일 수 있습니다. 입력값 y와 x의 크기는 같아야 합니다. 크기가 같지 않은 경우 적어도 하나의 입력값은 스칼라 값이어야 합니다. y와 x의 유효한 데이터형은 다음과 같습니다.
fisingle형fidouble형이진 소수점 스케일링을 사용하는
fi고정소수점이진 소수점 스케일링을 사용하는
fi스케일링된 double형
데이터형: fi
출력 인수
4사분면 역탄젠트로, 스칼라, 벡터, 행렬 또는 다차원 배열로 반환됩니다.
z는 y와 x의 4사분면 역탄젠트입니다. z의 numerictype은 y와 x의 부호의 유무에 따라 달라집니다.
y나x중 하나가 부호가 있는 경우z는 범위 [-pi,pi]의 부호 있는 고정소수점 숫자입니다. 16비트 워드 길이와 13비트 소수부 길이를 갖습니다(numerictype(1,16,13)).y와x모두 부호가 없는 경우z는 범위 [0,pi/2]의 부호 없는 고정소수점 숫자입니다. 16비트 워드 길이와 15비트 소수부 길이를 갖습니다(numerictype(0,16,15)).
출력값 z는 항상 디폴트 fimath와 연결됩니다.
세부 정보
4사분면 역탄젠트는 atan 함수와 관련하여 다음과 같이 정의됩니다.
알고리즘
atan2 함수는 8비트 룩업 테이블을 사용하여 고정소수점 입력의 4사분면 역탄젠트를 계산합니다. 방법은 다음과 같습니다.
입력된 절댓값에 대해 나눗셈을 수행하여 0과 1 사이의 부호 없는 소수형 고정소수점 16비트 비율을 구합니다. y와 x의 절댓값에 따라 제수 값이 결정됩니다.
y와x입력값의 부호에 따라 이들 비율이 놓일 사분면이 결정됩니다. 절댓값이 더 큰 입력값이 분모로 사용되기 때문에 0과 1 사이의 값이 생성됩니다.
16비트의 저장된 부호 없는 정수 값을 토대로 테이블 인덱스를 계산합니다.
8개의 최상위 비트를 사용하여 테이블에서 첫 번째 값을 얻습니다.
다음으로 큰 테이블 값을 두 번째 값으로 사용합니다.
8개의 최하위 비트를 사용하여 첫 번째 값과 두 번째 값 사이를 최근접이웃 선형 보간을 사용하여 보간합니다. 이 보간은 범위 [0, pi/4)의 값을 생성합니다.
원래
y와x입력값을 기반으로 결과 각도에 대해 8분원 보정을 수행합니다.
이 역탄젠트 계산은 입력값의 최상위 비트 16개 내에서만 정확합니다.
atan2 함수는 입력값에 연결된 모든 fimath를 무시하고 폐기합니다. 출력값 z는 항상 디폴트 fimath와 연결됩니다.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
버전 내역
R2012a에 개발됨
참고 항목
atan2 | sin | angle | cos | cordicatan2
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)