このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
cordicatan2
CORDIC ベースの 4 象限逆正接
説明
例
CORDIC 逆正接の計算
浮動小数点の直交座標を定義します。
y = 0.5; x = -0.5;
cordicatan2
を使用して浮動小数点 CORDIC 逆正接を計算します。この結果を、atan2
を使用して計算した逆正接と比較します。
theta_cdat2_float = cordicatan2(y,x)
theta_cdat2_float = 2.3562
theta_atan2_float = atan2(y,x)
theta_atan2_float = 2.3562
固定小数点の直交座標を定義します。
y = fi(0.5,1,16,15); x = fi(-0.5,1,16,15);
cordicatan2
を使用して固定小数点 CORDIC 逆正接を計算します。この結果を、atan2
を使用して計算した逆正接と比較します。
theta_cdat2_fixpt = cordicatan2(y,x)
theta_cdat2_fixpt = 2.3562 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
theta_atan2_fixpt = atan2(y,x)
theta_atan2_fixpt = 2.3562 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
入力引数
y
— 直交の y 座標
スカラー | ベクトル | 行列 | 多次元配列
直交の y 座標。スカラー、ベクトル、行列、または多次元配列として指定します。
y
と x
は同じサイズでなければなりません。サイズが同じでない場合は、少なくとも一方の値がスカラー値でなければなりません。y
と x
は同じデータ型でなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
複素数のサポート: あり
x
— 直交の x 座標
スカラー | ベクトル | 行列 | 多次元配列
直交の x 座標。スカラー、ベクトル、行列、または多次元配列として指定します。
y
と x
は同じサイズでなければなりません。サイズが同じでない場合は、少なくとも一方の値がスカラー値でなければなりません。y
と x
は同じデータ型でなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
複素数のサポート: あり
niters
— CORDIC アルゴリズムの反復回数
正の整数値のスカラー
CORDIC アルゴリズムの反復回数。正の整数値のスカラーとして指定します。
反復数を増やすと、結果の精度が高まりますが、計算量も増加しレイテンシも増えます。
niters
を指定しない場合や指定した値が大きすぎた場合は、アルゴリズムでは最大値が使用されます。固定小数点の演算では、反復の最大回数は y
または x
の語長よりも 1 回少なくなります。浮動小数点の演算では、最大値は double で 52、single で 23 です。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
出力引数
アルゴリズム
CORDIC
CORDIC は、COordinate Rotation DIgital Computer の略語です。ギブンス回転に基づく CORDIC アルゴリズムは、Shift-Add 反復演算のみを必要とするため、ハードウェア効率が最も優れたアルゴリズムの 1 つです (参考文献を参照)。CORDIC アルゴリズムは、明示的な乗数を必要としません。CORDIC を使用すると、正弦関数、余弦関数、逆正弦関数、逆余弦関数、逆正接関数、ベクトル振幅関数などのさまざまな関数を計算できます。また、このアルゴリズムは除算、平方根、双曲線、対数などの関数にも使用できます。
CORDIC の反復数を増やすと、結果の精度が高まりますが、それにより計算量が増加しレイテンシが増えます。
信号の流れ図
CORDIC ベクトル モード カーネル
CORDIC カーネルの精度は X、Y および Z の初期値の選択に依存します。このアルゴリズムは以下の初期値を使用します。
X0 は入力値 X に初期化されます。
Y0 は入力値 Y に初期化されます。
Z0 は
0
に初期化されます。
fimath
の伝播ルール
CORDIC 関数は、入力に追加されたすべてのローカル fimath
を破棄します。
CORDIC 関数は、計算の実行時に独自の内部 fimath
を使用します。
OverflowAction
—Wrap
RoundingMethod
—Floor
出力には fimath
が追加されていません。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用に関するメモと制限:
可変サイズ信号はサポートされていません。
CORDIC アルゴリズムによって実行される反復の回数
niters
は、定数でなければなりません。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
関数 cordicatan2
は、MATLAB® からの SystemC™ コード生成もサポートしています。
バージョン履歴
R2011b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは 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)