ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Trigonometric Function

入力に対する指定された三角関数

  • ライブラリ:
  • Simulink / Math Operations

    HDL Coder / Math Operations

説明

Trigonometric Function ブロックは、一般的な三角関数を実行し、結果をラジアン単位で出力します。

サポートされる関数

[関数] パラメーター リストからこれらのいずれかの関数を選択できます。

関数説明数式 MATLAB® 等価
sin

入力の正弦

sin(u)

sin
cos

入力の余弦

cos(u)

cos
tan

入力の正接

tan(u)

tan
asin

入力の逆正弦

asin(u)

asin
acos

入力の逆余弦

acos(u)

acos
atan

入力の逆正接

atan(u)

atan
atan2

入力の 4 象限逆正接

atan2(u)

atan2
sinh

入力の双曲線正弦

sinh(u)

sinh
cosh

入力の双曲線余弦

cosh(u)

cosh
tanh

入力の双曲線正接

tanh(u)

tanh
asinh

入力の逆双曲線正弦

asinh(u)

asinh
acosh

入力の逆双曲線余弦

acosh(u)

acosh
atanh

入力の逆双曲線正接

atanh(u)

atanh
sincos

入力の正弦、入力の余弦

cos + jsin

複素指数の入力

CORDIC 近似法

CORDIC 近似法 (詳細を参照) を使用する場合、ブロック入力に対してさらに制約事項があります。

[関数]sincossincos、または cos + jsin に設定し、[近似法][CORDIC] に設定した場合、ブロックには以下の制限があります。

  • 符号付き固定小数点型の場合、入力角度は範囲 [–2π, 2π) rad の範囲内に収まらなければなりません。

  • 符号なし固定小数点型の場合、入力角度は範囲 [0, 2π) rad の範囲内に収まらなければなりません。

[関数]atan2 に設定し、[近似法][CORDIC] に設定した場合、ブロックには以下の制限があります。

  • 入力は同じサイズでなければなりません。または、少なくとも 1 つの値がスカラー値でなければなりません。

  • いずれの入力も同じデータ型でなければなりません。

  • 符号付き固定小数点型の場合、語長は 126 以下でなければなりません。

  • 符号なし固定小数点型の場合、語長は 125 以下でなければなりません。

このテーブルでは、無効な入力に対して何が起こるかについての概要が示されます。

ブロックの使用法無効な入力による影響
シミュレーションエラーが表示されます。
生成コード未定義の動作が発生します。生成コードまたはアクセラレータ モードで未定義の動作に依存するのを防ぎます。
アクセラレータ モード

端子

入力

すべて展開する

入力。スカラー、ベクトル、または行列として指定します。このブロックは、以下のデータ型の入力信号を受け入れます。

関数入力データ型
  • sin

  • cos

  • sincos

  • cos + jsin

  • atan2

  • 浮動小数点

  • 固定小数点 (近似法CORDIC の場合のみ)

  • tan

  • asin

  • acos

  • atan

  • sinh

  • cosh

  • tanh

  • asinh

  • acosh

  • atanh

  • 浮動小数点

依存関係

  • [関数]atan2 に設定すると、ブロックは 2 つの入力端子を表示します。最初の入力 (Port_1) は、y 軸、または、関数引数の虚数部です。2 番目の入力 (Port_2) は、x 軸、または、関数引数の実数部です。

  • [近似法][なし] または [CORDIC] に設定すると、浮動小数点の入力信号を使用することができます。ただし、ブロックの出力データ型は、どちらの近似法を選択したかにより異なります。

    入力データ型近似法出力データ型

    浮動小数点

    なし

    [出力信号タイプ] の選択内容によって異なります。auto (入力のデータ型と同じ)、realcomplex のいずれかを選択することができます。

    浮動小数点

    CORDIC

    入力と同じ。CORDIC 近似法を使用してブロック出力を計算する場合、[出力信号タイプ] は使用できません。

CORDIC 近似用:

  • 関数 sin、関数 cos、関数 sincos、関数 cos + jsin および関数 atan2 の場合、入力は実数でなければなりません。

  • 関数 sin、関数 cos、関数 sincos および関数 atan2 の場合、出力は実数になります。

  • 関数 cos + jsin の場合、出力は複素数になります。

制限

複素入力信号は、このブロックの atan2 以外のすべての関数でサポートされます。

[近似法][CORDIC] に設定したときのみ、固定小数点の入力信号を使用することができます。CORDIC 近似は、sincossincoscos + jsin および atan2 の関数で使用できます。関数 atan2 の場合、入力データ型と出力データ型の関係は、浮動小数点の入力が符号付きか符号なしかによっても異なります。

入力データ型関数出力データ型

固定小数点 (符号付きおよび符号なし)

sincossincos、および cos + jsin

fixdt(1, WL, WL - 2) ここで、WL は入力の語長です。

この固定小数点型を指定すると、CORDIC アルゴリズムで最高の精度を実現できます。

固定小数点 (符号付き)

atan2

fixdt(1, WL, WL – 3)

固定小数点 (符号なし)

atan2

fixdt(1, WL, WL – 2)

[関数]sincossincos、または cos + jsin に設定し、[近似法][CORDIC] に設定した場合、ブロックには以下の制限があります。

  • 符号付き固定小数点型の場合、入力角度は範囲 [–2π, 2π) rad の範囲内に収まらなければなりません。

  • 符号なし固定小数点型の場合、入力角度は範囲 [0, 2π) rad の範囲内に収まらなければなりません。

[関数]atan2 に設定し、[近似法][CORDIC] に設定した場合、ブロックには以下の制限があります。

  • 入力は同じサイズでなければなりません。または、少なくとも 1 つの値がスカラー値でなければなりません。

  • いずれの入力も同じデータ型でなければなりません。

  • 符号付き固定小数点型の場合、語長は 126 以下でなければなりません。

  • 符号なし固定小数点型の場合、語長は 125 以下でなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

atan2 の x 軸、または、関数引数の実数部を入力します。[関数]atan2 に設定すると、ブロックは 2 つの入力端子を表示します。最初の入力 (Port_1) は、y 軸、または、関数引数の虚数部です。2 番目の入力 (Port_2) は、x 軸、または、関数引数の実数部です。(ブロックの向きに関する端子の順番の詳細は、回転または反転後の端子の位置を参照してください)。

依存関係

この端子を有効にするには、[関数]atan2 に設定します。

制限

  • 固定小数点入力信号は、[近似法][CORDIC] に設定されているときのみサポートされます。

  • [関数]atan2 に設定し、[近似法][CORDIC] に設定した場合、以下になります。

    • 入力は同じサイズでなければなりません。または、少なくとも 1 つの値がスカラー値でなければなりません。

    • いずれの入力も同じデータ型でなければなりません。

    • 符号付き固定小数点型の場合、語長は 126 以下でなければなりません。

    • 符号なし固定小数点型の場合、語長は 125 以下でなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

出力

すべて展開する

指定された三角関数を 1 つ以上の入力に適用した結果 (ラジアン単位) です。各関数は以下をサポートします。

  • スカラー演算

  • 要素単位のベクトル演算と行列演算

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

入力信号の正弦 (ラジアン単位)。

依存関係

この端子を有効にするには、[関数]sincos に設定します。

制限

固定小数点入力信号は、[近似法][CORDIC] に設定されているときのみサポートされます。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

入力信号の余弦 (ラジアン単位)。

依存関係

この端子を有効にするには、[関数]sincos に設定します。

制限

固定小数点入力信号は、[近似法][CORDIC] に設定されているときのみサポートされます。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

パラメーター

すべて展開する

三角関数を指定します。ブロック アイコン上の関数名が、ここで選択した関数名に切り替わります。

制限

[関数]sincossincos、または cos + jsin に設定し、[近似法][CORDIC] に設定した場合、ブロックには以下の制限があります。

  • 符号付き固定小数点型の場合、入力角度は範囲 [–2π, 2π) rad の範囲内に収まらなければなりません。

  • 符号なし固定小数点型の場合、入力角度は範囲 [0, 2π) rad の範囲内に収まらなければなりません。

[関数]atan2 に設定し、[近似法][CORDIC] に設定した場合、ブロックには以下の制限があります。

  • 入力は同じサイズでなければなりません。または、少なくとも 1 つの値がスカラー値でなければなりません。

  • いずれの入力も同じデータ型でなければなりません。

  • 符号付き固定小数点型の場合、語長は 126 以下でなければなりません。

  • 符号なし固定小数点型の場合、語長は 125 以下でなければなりません。

プログラムでの使用

ブロック パラメーター: Operator
型: 文字ベクトル
値: 'sin' | 'cos' | 'tan' | 'asin' | 'acos' | 'atan' | 'atan2' | 'sinh' | 'cosh' | 'tanh' | 'asinh' | 'acosh' | 'atanh' | 'sincos' | 'cos + jsin'
既定の設定: 'sin'

出力を計算するための近似のタイプを指定します。

近似法サポートされるデータ型このメソッドを使用できる場合
なし (既定の設定)

浮動小数点

既定のテイラー級数アルゴリズムを使用する必要がある場合。

CORDIC

浮動小数点と固定小数点

高速の近似計算が必要な場合。

CORDIC を選択し、ブロックのサイズを既定のサイズより大きくすると、ブロックのアイコンが変化します。

関数ブロック アイコン
sin

cos

sincos

cos + jsin

atan2

依存関係

このパラメーターを有効にするには、[関数][sin][cos][sincos][cos + jsin] または atan2 を選択します。

固定小数点の入力信号を使用するには、[近似法][CORDIC] に設定しなければなりません。

制限

[関数]sincossincos、または cos + jsin に設定し、[近似法][CORDIC] に設定した場合、ブロックには以下の制限があります。

  • 符号付き固定小数点型の場合、入力角度は範囲 [–2π, 2π) rad の範囲内に収まらなければなりません。

  • 符号なし固定小数点型の場合、入力角度は範囲 [0, 2π) rad の範囲内に収まらなければなりません。

[関数]atan2 に設定し、[近似法][CORDIC] に設定した場合、ブロックには以下の制限があります。

  • 入力は同じサイズでなければなりません。または、少なくとも 1 つの値がスカラー値でなければなりません。

  • いずれの入力も同じデータ型でなければなりません。

  • 符号付き固定小数点型の場合、語長は 126 以下でなければなりません。

  • 符号なし固定小数点型の場合、語長は 125 以下でなければなりません。

プログラムでの使用

ブロック パラメーター: ApproximationMethod
型: 文字ベクトル
値: 'None' | 'CORDIC'
既定の設定: 'None'

CORDIC アルゴリズムを実行するには、反復回数を指定します。既定値は 11 です。

  • ブロック入力のデータ型が浮動小数点の場合、反復回数には正の整数を指定できます。

  • ブロック入力のデータ型が固定小数点の場合、反復回数を語長の値より大きくすることはできません。

    たとえば、ブロック入力が fixdt(1,16,15) の場合、語長は 16 です。この場合、反復回数に 16 より大きい値を指定することはできません。

依存関係

このパラメーターを有効にするには、[関数] パラメーターと [近似法] パラメーターを以下のように設定しなければなりません。

  • [関数][sin][cos][sincos][cos + jsin] または atan2 に設定します。

  • [近似法][CORDIC] に設定します。

プログラムでの使用

ブロック パラメーター: NumberOfIterations
型: 文字ベクトル
値: 固定小数点入力の語長以下の正の整数
既定の設定: '11'

Trigonometric Function ブロックの出力信号タイプを autoreal、または complex として指定します。

関数入力信号タイプ出力信号タイプ
自動実数複素数
関数 パラメーターに対する任意の選択内容 realrealrealcomplex
complexcomplexerrorcomplex

依存関係

近似法CORDIC に設定すると、このパラメーターは無効になります。

メモ

関数atan2 の場合、複素入力信号はシミュレーションまたはコード生成でサポートされません。

プログラムでの使用

ブロック パラメーター: OutputSignalType
型: 文字ベクトル
値: 'auto' | 'real' | 'complex'
既定の設定: 'auto'

サンプル時間を -1 以外の値で指定します。詳細については、サンプル時間の指定を参照してください。

依存関係

このパラメーターは、明示的に -1 以外の値に設定されていない限り表示されません。詳細は、サンプル時間が推奨されないブロックを参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
型: 文字ベクトル
値: スカラー
既定の設定: '-1'

ブロックの特性

データ型

double | single

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

詳細

すべて展開する

参照

[1] Volder, JE. “The CORDIC Trigonometric Computing Technique.” IRE Transactions on Electronic Computers EC-8 (1959); 330–334.

[2] Andraka, R. “A survey of CORDIC algorithm for FPGA based computers.” Proceedings of the 1998 ACM/SIGDA sixth international symposium on Field programmable gate arrays. Feb. 22–24 (1998): 191–200.

[3] Walther, J.S. “A Unified Algorithm for Elementary Functions.” Hewlett-Packard Company, Palo Alto. Spring Joint Computer Conference (1971): 379–386. (from the collection of the Computer History Museum). www.computer.org/csdl/proceedings/afips/1971/5077/00/50770379.pdf

[4] Schelin, Charles W. “Calculator Function Approximation.” The American Mathematical Monthly 90, no. 5 (1983): 317–325.

拡張機能

PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。

R2006a より前に導入