このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Trigonometric Function
入力に対する指定された三角関数
ライブラリ:
Simulink /
Math Operations
HDL Coder /
Math Operations
説明
Trigonometric Function ブロックは、一般的な三角関数を実行し、結果をラジアンまたは回転の単位で出力します。
サポートされる関数
[関数] パラメーター リストからこれらのいずれかの関数を選択できます。
関数 | 説明 | 数式 | MATLAB® 等価 |
---|---|---|---|
sin | 入力の正弦 |
| sin |
cos | 入力の余弦 |
| cos |
tan | 入力の正接 |
| tan |
asin | 入力の逆正弦 |
| asin |
acos | 入力の逆余弦 |
| acos |
atan | 入力の逆正接 |
| atan |
atan2 | 入力の 4 象限逆正接 |
| atan2 |
sinh | 入力の双曲線正弦 |
| sinh |
cosh | 入力の双曲線余弦 |
| cosh |
tanh | 入力の双曲線正接 |
| tanh |
asinh | 入力の逆双曲線正弦 |
| asinh |
acosh | 入力の逆双曲線余弦 |
| acosh |
atanh | 入力の逆双曲線正接 |
| atanh |
sincos | 入力の正弦、入力の余弦 | — | — |
cos + jsin | 複素指数の入力 | — | — |
CORDIC 近似法
CORDIC は、COordinate Rotation DIgital Computer の略語です。ギブンス回転に基づく CORDIC アルゴリズムは、Shift-Add 反復演算のみを必要とするため、ハードウェア効率が最も優れたアルゴリズムの 1 つです。詳細については、詳細を参照してください。ブロック入力に対して追加の要件があります。
[関数] を sin
、cos
、sincos
、または cos + jsin
に設定し、[近似法] を [CORDIC]
に設定した場合の詳細については、Port_1を参照してください。
このテーブルでは、無効な入力に対して何が起こるかについての概要が示されます。
ブロックの使用法 | 無効な入力による影響 |
---|---|
シミュレーション モード | エラーが表示されます。 |
生成コード | 未定義の動作が発生します。生成コードで未定義の動作に依存するのを防ぎます。 |
ルックアップ近似法
[関数] を sin
、cos
、sincos
、または cos + jsin
に設定し、[近似法] を [ルックアップ]
に設定した場合の詳細については、Port_1を参照してください。
例
入力データ型が浮動小数点の関数 sin
この例では、Trigonometric Function ブロックを使用して浮動小数点入力の正弦を計算する方法を示します。Trigonometric Function ブロックの出力は入力と同じデータ型をもちます。入力データ型は浮動小数点で、[近似法] が [none
] であるからです。
入力データ型が固定小数点の関数 sincos
この例では、Trigonometric Function ブロックを使用して、固定小数点入力信号に対する sincos
の CORDIC 近似を計算します。
Trigonometric Function ブロック パラメーターは次のとおりです。
関数:
sincos
近似法:
CORDIC
反復回数:
11
CORDIC 近似法を使用する場合、Trigonometric Function ブロックは範囲 [-2pi,2pi)
内でなければなりません。入力が固定小数点信号で [近似法] が CORDIC
に設定されているため、Trigonometric Function ブロックの出力タイプは fixdt(1,13,11)
です。出力の小数部の長さは、入力の語長から 2 を差し引いた値と等しくなります。
複素指数出力に対する Trigonometric Function ブロックの動作
この例では、Trigonometric Function ブロックの 2 つの異なる構成で複素指数出力を比較します。
[近似法] を [CORDIC
] とした場合、入力のデータ型は固定小数点となり、この例の場合は fixdt(1,16,2)
となります。出力の小数部の長さは入力の語長から 2 を差し引いた値と等しくなるので、出力のデータ型は fixdt(1,16,14)
となります。
[近似法] を [None
] とした場合、入力のデータ型は浮動小数点でなければなりません。出力のデータ型は、入力のデータ型と同じです。
端子
入力
Port_1 — 入力信号
スカラー | ベクトル | 行列
入力。スカラー、ベクトル、または行列として指定します。このブロックは、以下のデータ型の入力信号を受け入れます。
関数 | 入力データ型 |
---|---|
|
|
|
|
CORDIC 近似の固定小数点型の伝播:
入力データ型 | 関数 | 出力データ型 |
---|---|---|
固定小数点 (符号付きおよび符号なし) | sin 、cos 、sincos 、および cos + jsin |
この固定小数点型を指定すると、CORDIC アルゴリズムで最高の精度を実現できます。 |
固定小数点 (符号付き) | atan2 |
|
固定小数点 (符号なし) | atan2 |
|
ルックアップ近似の固定小数点型の伝播:
入力データ型 | 関数 | 出力データ型 |
---|---|---|
固定小数点 (符号付き) | sin , cos , sincos , cos + jsin , atan2 |
|
固定小数点 (符号なし) | sin , cos , sincos , cos + jsin , atan2 |
|
依存関係
[関数] を
atan2
に設定すると、ブロックは 2 つの入力端子を表示します。最初の入力 (Port_1) は、y 軸、または、関数引数の虚数部です。2 番目の入力 (Port_2) は、x 軸、または、関数引数の実数部です。[近似法] を
[なし]
、[CORDIC]
、または[ルックアップ]
に設定すると、浮動小数点の入力信号を使用することができます。ただし、ブロックの出力データ型は、どちらの近似法を選択したかにより異なります。入力データ型 近似法 出力データ型 浮動小数点
なし
[出力信号タイプ] の選択内容によって異なります。
auto
(入力のデータ型と同じ)、real
、complex
のいずれかを選択することができます。浮動小数点
CORDIC
入力と同じ。CORDIC 近似法を使用してブロック出力を計算する場合、[出力信号タイプ] は使用できません。
浮動小数点
ルックアップ
入力と同じ。ルックアップ近似法を使用してブロック出力を計算する場合、[出力信号タイプ] は使用できません。
CORDIC 近似とルックアップ近似:
関数
sin
、関数cos
、関数sincos
、関数cos + jsin
および関数atan2
の場合、入力は実数でなければなりません。関数
sin
、関数cos
、関数sincos
および関数atan2
の場合、出力は実数になります。関数
cos + jsin
の場合、出力は複素数になります。
制限
[近似法] を
[CORDIC]
または[ルックアップ]
に設定したときのみ、固定小数点の入力信号を使用することができます。CORDIC 近似とルックアップ近似は、sin
、cos
、sincos
、cos + jsin
、およびatan2
の関数で使用できます。複素入力信号は、このブロックの
atan2
以外のすべての関数でサポートされます。[近似法] を
[ルックアップ]
に設定した場合、データ点の数について以下の制限があります。smallEnoughNumDataPoints = 2(inputFractionLen-2)+1
bigEnoughFractionLen = log2(numberOfDataPoints - 1)+2
ここで、
smallEnoughNumDataPoints は、指定した入力の小数部の長さ inputFractionLen で表現されるデータ点の最大数です。
bigEnoughFractionLen は、指定した数 numberOfDataPoints のデータ点を表現するために必要な小数部の最小の長さです。
[関数] を
sin
、cos
、sincos
、またはcos + jsin
に設定し、[近似法] を[CORDIC]
に設定した場合、ブロックには以下の制限があります。符号付き固定小数点型の場合、入力角度は範囲 [–2π, 2π) rad の範囲内に収まらなければなりません。
符号なし固定小数点型の場合、入力角度は範囲 [0, 2π) rad の範囲内に収まらなければなりません。
[関数] を
atan2
に設定し、[近似法] を[CORDIC]
に設定した場合、ブロックには以下の制限があります。入力は同じサイズでなければなりません。または、少なくとも 1 つの値がスカラー値でなければなりません。
いずれの入力も同じデータ型でなければなりません。
符号付き固定小数点型の場合、語長は
126
以下でなければなりません。符号なし固定小数点型の場合、語長は
125
以下でなければなりません。
[関数] を
sin
、cos
、sincos
、またはcos + jsin
に設定し、[近似法] を[ルックアップ]
に設定した場合、ブロックには以下の制限があります。符号付き固定小数点型の場合、入力角度は範囲 [-2π,2π] rad の範囲内に収まらなければなりません。
符号なし固定小数点型の場合、入力角度は範囲 [0,2π) rad の範囲内に収まらなければなりません。
[関数] を
atan2
に設定し、[近似法] を[ルックアップ]
に設定した場合、ブロックには以下の制限があります。入力は同じサイズでなければなりません。または、少なくとも 1 つの値がスカラー値でなければなりません。
いずれの入力も同じデータ型でなければなりません。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Port_2 — atan2
の x 軸、または、関数引数の実数部
スカラー | ベクトル | 行列
atan2
の x 軸、または、関数引数の実数部を入力します。[関数] を atan2
に設定すると、ブロックは 2 つの入力端子を表示します。最初の入力 (Port_1) は、y 軸、または、関数引数の虚数部です。2 番目の入力 (Port_2) は、x 軸、または、関数引数の実数部です。(ブロックの向きに関する端子の順番の詳細は、回転または反転したブロックの端子の位置の特定を参照してください)。
依存関係
この端子を有効にするには、[関数] を atan2
に設定します。
制限
固定小数点入力信号は、[近似法] が
[CORDIC]
または[ルックアップ]
に設定されているときのみサポートされます。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
出力
Port_1 — 入力に対する指定された三角関数
スカラー | ベクトル | 行列
指定された三角関数を 1 つ以上の入力に適用した結果 (ラジアン単位) です。各関数は以下をサポートします。
スカラー演算
要素単位のベクトル演算と行列演算
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
sin — 入力信号の正弦
スカラー | ベクトル | 行列
入力信号の正弦 (ラジアンおよび回転)。
依存関係
この端子を有効にするには、[関数] を sincos
に設定します。
制限
固定小数点入力信号は、[近似法] が [CORDIC]
または [ルックアップ]
に設定されているときのみサポートされます。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
cos — 入力信号の余弦
スカラー | ベクトル | 行列
入力信号の余弦 (ラジアンおよび回転)。
依存関係
この端子を有効にするには、[関数] を sincos
に設定します。
制限
固定小数点入力信号は、[近似法] が [CORDIC]
または [ルックアップ]
に設定されているときのみサポートされます。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
パラメーター
アルゴリズム
関数 — 三角関数
sin
(既定値) | cos
| tan
| asin
| acos
| atan
| atan2
| sinh
| cosh
| tanh
| asinh
| acosh
| atanh
| sincos
| cos + jsin
三角関数を指定します。ブロック アイコン上の関数名が、ここで選択した関数名に切り替わります。
[関数] を sin
、cos
、sincos
、または cos + jsin
に設定し、[近似法] を [CORDIC]
に設定した場合の詳細については、制限を参照してください。
プログラムでの使用
ブロック パラメーター: Operator |
型: 文字ベクトル |
値: 'sin' | 'cos' | 'tan' | 'asin' | 'acos' | 'atan' | 'atan2' | 'sinh' | 'cosh' | 'tanh' | 'asinh' | 'acosh' | 'atanh' | 'sincos' | 'cos + jsin' |
既定の設定: 'sin' |
近似法 — CORDIC、ルックアップ、またはなし
なし
(既定値) | CORDIC
| ルックアップ
出力を計算するための近似のタイプを指定します。
近似法 | サポートされるデータ型 | このメソッドを使用できる場合 |
---|---|---|
なし (既定の設定) | 浮動小数点 | 既定のテイラー級数アルゴリズムを使用する必要がある場合。 |
CORDIC | 浮動小数点と固定小数点 | 高速な近似反復計算が必要な場合。 |
ルックアップ | 浮動小数点と固定小数点 (double および single) | 高速な近似ルックアップ テーブル実装が必要な場合。 |
[関数] を sin
、cos
、sincos
、または cos + jsin
に設定し、[近似法] を [CORDIC]
に設定した場合の詳細については、制限を参照してください。
依存関係
このパラメーターを有効にするには、[関数] で
[sin]
、[cos]
、[sincos]
、[cos + jsin]
または[atan2]
を選択します。固定小数点の入力信号を使用するには、[近似法] を
[CORDIC]
または[ルックアップ]
に設定しなければなりません。[テーブルのデータ型] パラメーターを有効にするには、このメソッドを
[ルックアップ]
に設定します。
プログラムでの使用
ブロック パラメーター: ApproximationMethod |
型: 文字ベクトル |
値: 'None' | 'CORDIC' | 'Lookup' |
既定の設定: 'None' |
内挿法 — ブレークポイント値間の内挿の方法
線形の点と勾配
(既定値) | フラット
入力がブレークポイント値の範囲内にある場合、ブロックは隣接するブレークポイントを使って出力値を内挿します。内挿法の詳細については、内挿法を参照してください。
プログラムでの使用
ブロック パラメーター: InterpMethod |
型: 文字ベクトル |
値: 'Linear point-slope' | 'Flat' |
既定の設定: 'Linear point-slope' |
反復回数 — CORDIC アルゴリズムの反復回数
11
(既定値) | 固定小数点入力の語長以下の正の整数
CORDIC アルゴリズムを実行するには、反復回数を指定します。既定値は 11 です。
ブロック入力のデータ型が浮動小数点の場合、反復回数には正の整数を指定できます。
ブロック入力のデータ型が固定小数点の場合、反復回数を語長の値より大きくすることはできません。
たとえば、ブロック入力が
fixdt(1,16,15)
の場合、語長は 16 です。この場合、反復回数に 16 より大きい値を指定することはできません。
依存関係
このパラメーターを有効にするには、[関数] パラメーターと [近似法] パラメーターを以下のように設定しなければなりません。
[関数] を
[sin]
、[cos]
、[sincos]
、[cos + jsin]
または[atan2]
に設定します。[近似法] を
[CORDIC]
に設定します。
プログラムでの使用
ブロック パラメーター: NumberOfIterations |
型: 文字ベクトル |
値: 固定小数点入力の語長以下の正の整数 |
既定の設定: '11' |
角度の単位 — 角度の単位
radian
(既定値) | revolution
ルックアップ手法の角度の単位を [radian]
または [revolution]
として指定します。
依存関係
このパラメーターは次の場合に有効になります。
[関数] を
[sin]
、[cos]
、[sincos]
、[cos + jsin]
または[atan2]
に設定します。[近似法] を
[ルックアップ]
に設定します。
プログラムでの使用
ブロック パラメーター: AngleUnit |
型: 文字ベクトル |
値: 'radian' | 'revolution' |
既定の設定: 'radian' |
データ点数 — ルックアップ テーブルのデータ点の数
16
(既定値) | スカラー
ルックアップ テーブルのデータ点の数をスカラーの実数として指定します。
依存関係
このパラメーターは次の場合に有効になります。
[関数] を
[sin]
、[cos]
、[sincos]
、[cos + jsin]
または[atan2]
に設定します。[近似法] を
[ルックアップ]
に設定します。
プログラムでの使用
ブロック パラメーター: NumberOfDataPoints |
型: 文字ベクトル |
値: スカラー |
既定の設定: '16' |
出力信号タイプ — 出力信号の実数/複素数
自動
(既定値) | 実数
| 複素数
Trigonometric Function ブロックの出力信号タイプを auto
、real
、または complex
として指定します。
関数 | 入力信号タイプ | 出力信号タイプ | ||
---|---|---|---|---|
自動 | 実数 | 複素数 | ||
関数 パラメーターに対する任意の選択内容 | real | real | real | complex |
complex | complex | error | complex |
依存関係
近似法 を CORDIC
に設定すると、このパラメーターは無効になります。
メモ
関数 が atan2
の場合、複素入力信号はシミュレーションまたはコード生成でサポートされません。
プログラムでの使用
ブロック パラメーター: OutputSignalType |
型: 文字ベクトル |
値: 'auto' | 'real' | 'complex' |
既定の設定: 'auto' |
範囲外入力に対する保護を削除する — 範囲外入力に対する保護を削除する
オフ (既定値) | オン
[acos]
および [asin]
の場合、このチェック ボックスをオンにすると、範囲外の入力に対する保護が削除されて冗長性が軽減されます。
このチェック ボックスをオフにすると、保護が有効になります。ブロックは、範囲外の入力を
1
または-1
に飽和させてから演算を実行します。生成されたコードに範囲外の入力をチェックするコードが含まれます。このチェック ボックスをオンにすると、保護が削除されます。ブロックは、入力値に変更を加えずにすべての演算を実行します。生成されたコードに範囲外の入力をチェックするコードは含まれません。
入力が既に範囲内である場合は、このチェック ボックスをオンにすることで冗長性を軽減できます。
依存関係
このパラメーターは、[関数] を [acos]
および [asin]
に設定すると有効になります。
プログラムでの使用
ブロック パラメーター: RemoveProtectionAgainstOutOfRangeInput |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
サンプル時間 (継承は -1) — サンプルの間隔
-1
(既定値) | スカラー | ベクトル
サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1
に設定します。詳細については、サンプル時間の指定を参照してください。
依存関係
このパラメーターは、-1
以外の値に設定した場合にのみ表示されます。詳細は、サンプル時間が推奨されないブロックを参照してください。
プログラムでの使用
ブロック パラメーター: SampleTime |
型: string スカラーまたは文字ベクトル |
既定の設定: "-1" |
データ型
テーブルのデータ型 — table のデータ型
継承: Inherit via input
(既定値) | double
| single
| fixdt(1,16,0)
| <data type expression>
ルックアップ テーブルのデータ型。次のいずれかとして指定します。
Inherit:Inherit via input
double
single
fixdt(1,16,0)
<data type expression>
データ型の設定の詳細については、信号のデータ型の制御を参照してください。
プログラムでの使用
ブロック パラメーター: TableDataTypeStr |
型: string スカラーまたは文字ベクトル |
値: Inherit: Inherit via input | single | double | fixdt(1,16,0) | データ型式 |
既定の設定: Inherit: Inherit via input |
モード — 指定するデータのカテゴリ
継承
(既定値) | 組み込み
| 固定小数点
| 式
[出力] データ型のデータ型プロパティを指定する方法を選択します。次を選択できます。
継承
— データ型の継承ルール (例:[継承: 内部ルールによる継承]
) を指定できます。組み込み
— 組み込みデータ型を指定できます。固定小数点
— データ型の固定小数点の属性を指定できます。式
— 有効なデータ型を評価する式 (例:fixdt([],16,0)
) を指定できます。
依存関係
このパラメーターを有効にするには、[出力データ型] パラメーターで [>>] をクリックします。
符号属性 — 符号付きまたは符号なしを指定
Signed
(既定値) | Unsigned
[出力] データ型の [符号属性] を指定します。
依存関係
このパラメーターを有効にするには、[モード] を [固定小数点]
に設定します。
スケーリング — 固定小数点データのスケーリング方法
2 進小数点
(既定値)
[出力] データ型の [スケーリング] を指定します。
依存関係
このパラメーターを有効にするには、[モード] を [固定小数点]
に設定します。
データ型オーバーライド — この信号のデータ型オーバーライド モードを指定します。
Inherit
| Off
この信号のデータ型オーバーライド モードを選択します。
継承
— モデルに指定されたデータ型オーバーライドの設定を継承します。オフ
— モデルに指定されたデータ型オーバーライドの設定を無視し、指定した固定小数点データ型を使用します。
詳細については、Simulink® ドキュメンテーションのデータ型アシスタントを利用したデータ型の指定を参照してください。
ヒント
個々のデータ型に対してデータ型オーバーライドをオフにする機能により、データ型オーバーライドを適用する際に、モデル内のデータ型をさらに効果的に制御できます。たとえば、このオプションを使用すると、データ型オーバーライド設定にかかわらず、データ型が下流ブロックの要件を満たすことを確認できます。
依存関係
このパラメーターを有効にするには、[データ型アシスタントを表示] ボタンをクリックして、[モード] を [組み込み]
または [固定小数点]
に設定します。
語長 — 量子化された整数をもつ語のビット サイズ
16
(既定値) | 0 ~ 32 の整数
量子化された整数をもつ語のビット サイズを指定します。詳細については、固定小数点データ型の指定を参照してください。
依存関係
このパラメーターを有効にするには、[モード] を [固定小数点]
に設定します。
小数部の長さ — 固定小数点データ型の小数部の長さを指定します。
0
(既定値) | スカラー整数
固定小数点データ型の小数部の長さを正または負の整数として指定します。詳細については、固定小数点データ型の指定を参照してください。
依存関係
このパラメーターを有効にするには、次のように設定します。
[モード] を
[固定小数点]
にする[スケーリング] を
[2 進小数点]
にする
ブロックの特性
詳細
CORDIC
CORDIC は、COordinate Rotation DIgital Computer の略語です。ギブンス回転に基づく CORDIC アルゴリズムは、Shift-Add 反復演算のみを必要とするため、ハードウェア効率が最も優れたアルゴリズムの 1 つです (参考文献を参照)。CORDIC アルゴリズムは、明示的な乗数を必要としません。CORDIC を使用すると、正弦関数、余弦関数、逆正弦関数、逆余弦関数、逆正接関数、ベクトル振幅関数などのさまざまな関数を計算できます。また、このアルゴリズムは除算、平方根、双曲線、対数などの関数にも使用できます。
CORDIC の反復数を増やすと、結果の精度が高まりますが、それにより計算量が増加しレイテンシが増えます。
参照
[1] Volder, Jack E., “The CORDIC Trigonometric Computing Technique.” IRE Transactions on Electronic Computers EC-8 (1959); 330–334.
[2] Andraka, Ray “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,” Proceedings of the Spring Joint Computer Conference, May 18-20, 1971: 379–386.
[4] Schelin, Charles W., “Calculator Function Approximation,” The American Mathematical Monthly 90, no. 5 (1983): 317–325.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
すべてのコンパイラが関数 asinh
、acosh
、および atanh
をサポートするわけではありません。これらの関数をサポートしないコンパイラを使用する場合は、警告が表示され、生成コードはリンクされません。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。
浮動小数点データ型をもち、ネイティブ浮動小数点モードでアーキテクチャが Trigonometric
に設定されたブロックのすべての関数で HDL コードを生成できます。ネイティブ浮動小数点モードでは、ブロックに対して double
データ型をサポートしていません。
このブロックには、生成されたコードで追加のレイテンシを導入するマルチサイクル実装があります。追加されたレイテンシを確認するには、生成されたモデルまたは検証モデルを表示します。生成されたモデルと検証モデル (HDL Coder)を参照してください。
Trigonometric Function ブロックは、[CORDIC]
近似法と、固定小数点データ型には Cordic
HDL アーキテクチャを使用して、この表に示すこれらの関数に対して HDL コード生成をサポートします。
sin
cos
sincos
cos+jsin
atan2
レイテンシ計算は、語長と [LatencyStrategy] 設定に依存します。固定小数点データ型のレイテンシ計算については、以下を参照してください。
一般 | |
---|---|
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
LatencyStrategy | 固定小数点型についてこのプロパティを有効にするには、[関数] を [ |
CustomLatency | 固定小数点型についてこのプロパティを有効にするには、[関数] を [ |
ネイティブ浮動小数点 | |
---|---|
InputRangeReduction | 関数 sin、cos、tan、sincos、および cos+jsin にこのプロパティを使用します。入力範囲が非有界の場合、HDL Coder に対してこのプロパティを有効にし、入力範囲を |
HandleDenormals | HDL Coder で追加のロジックを挿入して設計で非正規数を処理するかどうかを指定します。非正規数とは、その大きさが仮数の先頭にゼロを付けずに表現できる最小の浮動小数点数より小さい数値のことです。既定の設定は |
LatencyStrategy | 浮動小数点演算子について、設計内のブロックを |
MultiplyStrategy | 関数 sin、cos、tan、sincos、および cos+jsin にこのプロパティを使用します。既定の設定は |
Trigonometric Function ブロックは、浮動小数点演算における ULP (Units in the Last Place) 誤差が非ゼロになります。詳細については、ネイティブ浮動小数点演算の ULP の考慮事項 (HDL Coder)を参照してください。
関数
[sin]
と関数[cos]
では、CORDIC の近似については符号付き固定小数点データ型のみサポートされます。[sin]
、[cos]
、[sincos]
、[atan2]
、および[cos+jsin]
などの CORDIC モードをもつ関数では、127
ビットを超える固定小数点データ型は HDL コード生成ではサポートされません。HDL Coder では、フィードバック ループ内の Trigonometric Function ブロックに対して以下の設定を選択した場合、エラーが表示されます。
HDL アーキテクチャに
SinCosCordic
を選択[UsePipelinedKernel] に
On
を選択
フィードバック ループ内のブロックとコード ジェネレーターでは追加のレイテンシを挿入できないため、エラーが発生します。このエラーを回避するには、[反復回数] の値に 3 を加算した長さの遅延をブロックに隣接して追加します。コード ジェネレータは、Trigonometric Function ブロックの追加のレイテンシに合わせてこの遅延を吸収します。
たとえば、この Trigonometric Function ブロックでは [反復回数] が
30
に設定されています。ブロックに隣接する、長さ33
の Delay は追加のレイテンシに対応します。
PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
[関数] を [sin]
、[cos]
、[sincos]
、[cos + jsin]
、または [atan2]
に設定し、[近似法] を [CORDIC]
に設定したとき、このブロックは固定小数点と整数のデータ型をサポートします。
バージョン履歴
R2006a より前に導入
参考
ブロック
関数
cordicsin
(Fixed-Point Designer) |cordiccos
(Fixed-Point Designer) |cordicsincos
(Fixed-Point Designer)
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)