このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Gain
入力に定数を乗算

ライブラリ:
Simulink /
Commonly Used Blocks
Simulink /
Math Operations
HDL Coder /
Commonly Used Blocks
HDL Coder /
HDL Floating Point Operations
HDL Coder /
Math Operations
説明
Gain ブロックは、入力に定数値 (ゲイン) を乗算します。入力とゲインには、スカラー、ベクトル、または行列を指定できます。
ゲインの値は [ゲイン] パラメーターで指定します。[乗算] パラメーターによって、要素ごとの乗算または行列乗算を指定することができます。行列乗算の場合、このパラメーターによって乗算の順序も指定できます。
ゲインは、double から、ブロックのパラメーター属性のデータ型アシスタントで指定されたデータ型に、最近傍の丸めと飽和を使用して変換されます。次に、入力とゲインが乗算され、結果は、指定された丸めとオーバーフロー モードを使用して出力データ型に変換されます。
例
端子
入力
Port_1 — 入力信号
スカラー | ベクトル | 行列
Gain ブロックは、実数値または複素数値のスカラー、ベクトル、または行列の入力を受け入れます。Gain ブロックは、固定小数点データ型をサポートします。Gain ブロックの入力が実数であり、ゲインが複素数の場合、出力は複素数です。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
出力
Port_1 — ゲインを乗算する入力
スカラー | ベクトル | 行列
Gain ブロックは、定数のゲイン値で乗算された入力を出力します。Gain ブロックへの入力が実数であり、ゲインが複素数の場合、出力は複素数です。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
パラメーター
メイン
ゲイン — 入力に乗算する値
1
(既定値) | real or complex-valued scalar, vector, or matrix
入力に乗算する値を指定します。ゲインは実数値または複素数値のスカラー、ベクトル、または行列のいずれかになります。
プログラムでの使用
ブロック パラメーター: Gain |
型: 文字ベクトル |
値: '1' | real- or complex-valued scalar, vector, or matrix |
既定の設定: '1' |
乗算 — 乗算モードを指定
要素単位 (K.*u)
(既定値) | 行列 (K*u)
| 行列 (u*K)
| 行列 (K*u) (u はベクトル)
次のいずれかの乗算モードを指定します。
要素単位 (K.*u)
— 入力の各要素にゲインの各要素を乗算します。必要に応じてブロックは拡張を行い、入力とゲインを同じ次元にします。行列 (K*u)
— 入力とゲインは、入力を 2 番目のオペランドとして行列乗算されます。行列 (u*K)
— 入力とゲインは、入力を 1 番目のオペランドとして行列乗算されます。行列 (K*u) (u はベクトル)
— 入力とゲインは、入力を 2 番目のオペランドとして行列乗算されます。このモードは [行列 (K*u)
] と同じですが、次元の決め方が異なります。K
がm-by-n
の行列であるとします。Matrix(K*u)(u vector)
は、入力を長さn
のベクトルに設定し、出力を長さm
のベクトルに設定します。それに対して、[行列 (K*u)
] は伝播を使用して入力と出力の次元を決定します。m 行 n 列
ゲイン行列の場合、入力はn 行 q 列
行列に伝播でき、出力はm 行 q 列
行列になります。
プログラムでの使用
パラメーター: Multiplication
|
型: 文字ベクトル |
値: 'Element-wise(K.*u)' | 'Matrix(K*u)' | 'Matrix(u*K)' | 'Matrix(K*u) (u vector)' |
既定の設定: 'Element-wise(K.*u)'
|
サンプル時間 — -1
以外のサンプル時間値
-1
(既定値) | スカラー | ベクトル
サンプル時間を -1
以外の値として指定します。詳細については、サンプル時間の指定を参照してください。
依存関係
このパラメーターは、明示的に -1
以外の値に設定されていない限り表示されません。詳細は、サンプル時間が推奨されないブロックを参照してください。
プログラムでの使用
ブロック パラメーター: SampleTime |
型: string スカラーまたは文字ベクトル |
既定の設定: "-1" |
信号属性
出力の最小値 — 範囲チェックの最小出力値
[]
(既定値) | スカラー
Simulink® がチェックする出力範囲の下限値。
Simulink は、最小値を使って以下を行います。
一部のブロックに対するパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)
シミュレーション範囲のチェック (信号範囲の指定およびシミュレーション範囲のチェックの有効化を参照)
固定小数点データ型の自動スケーリング
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなどの一部のシミュレーション モードの結果に影響を与えることがあります。詳細については、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[出力の最小値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: OutMin |
型: 文字ベクトル |
値: '[ ]' | スカラー |
既定の設定: '[ ]' |
出力の最大値 — 範囲チェックの最大出力値
[]
(既定値) | スカラー
Simulink がチェックする出力範囲の上限値。
Simulink は、最大値を使って以下を行います。
一部のブロックに対するパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)
シミュレーション範囲のチェック (信号範囲の指定およびシミュレーション範囲のチェックの有効化を参照)
固定小数点データ型の自動スケーリング
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなどの一部のシミュレーション モードの結果に影響を与えることがあります。詳細については、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[出力の最大値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: OutMax |
型: 文字ベクトル |
値: '[ ]' | スカラー |
既定の設定: '[ ]' |
出力データ型 — 出力データ型を指定
継承: 内部ルールによる継承
(既定値) | 継承: MSB を保持
| 継承: スケーリングの一致
| 継承: 逆伝播による継承
| 継承: 入力と同じ
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| int64
| uint64
| uint32
| [fixdt(1,16)]
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
出力のデータ型を選択します。型は継承されるか、直接指定されるか、Simulink.NumericType
などのデータ型オブジェクトとして表現されます。
継承オプションを選択すると、ブロックは次の動作を示します。
継承: 内部ルールによる継承
— Simulink は、組み込みターゲット ハードウェアのプロパティを考慮しつつ、数値の精度、パフォーマンス、および生成コードのサイズのバランスが取れるように、データ型を選択します。組み込みターゲット ハードウェアの設定を変更すると、内部ルールにより選択されるデータ型が変更される可能性があります。たとえば、ブロックがint8
型の入力にint16
のゲインを乗算し、ターゲット ハードウェア タイプとして[ASIC/FPGA]
が指定されている場合、出力データ型はsfix24
です。ターゲット ハードウェアとして[Unspecified (assume 32-bit Generic)]
(汎用 32 ビット マイクロプロセッサ) が指定された場合、出力データ型はint32
です。ターゲット マイクロプロセッサによって指定される語長では出力範囲に対応できない場合、Simulink は診断ビューアーにエラーを表示します。継承: MSB を保持
– Simulink は、演算の全範囲を維持するデータ型を選択した後、組み込みターゲット ハードウェアに適したサイズに出力精度を低下させます。ヒント
生成コードの効率を向上させるには、[整数オーバーフローで飽和] パラメーターをオフにします。
このルールでは、オーバーフローは決して発生しません。
継承: スケーリングの一致
– Simulink は、スケーリングが入力型のスケーリングと一致するデータ型を選択します。型の全範囲が組み込みターゲット ハードウェアに適合しない場合は、その範囲を小さくして組み込みターゲット ハードウェアに適切な型が生成されます。このルールでは、オーバーフローが発生することがあります。コードの効率と数値の精度が、ソフトウェアにより同時に最適化されるとは限りません。これらの内部ルールが、数値精度またはパフォーマンスに対する特定の要求を満たさない場合は、以下のいずれかを行ってください。
出力データ型を明示的に指定する。
単に
継承: 入力と同じ
を選択します。fixdt(1,32,16)
のように既定のデータ型を明示的に指定し、固定小数点ツールを使用してモデルにデータ型を推奨する。詳細については、fxptdlg
(Fixed-Point Designer) を参照してください。独自の継承ルールを指定するには、
[継承: 逆伝播による継承]
を使用し、Data Type Propagation ブロックを使用します。このブロックの使い方の例については、Signal Attributes ライブラリの Data Type Propagation Examples ブロックを参照してください。
継承: 逆伝播による継承
— 駆動ブロックのデータ型を使用します。継承: 入力と同じ
— 入力信号のデータ型を使用します。
依存関係
入力が単精度より小さい浮動小数点データ型の場合、[継承: 内部ルールによる継承]
出力データ型は単精度より小さい浮動小数点の出力型を継承するコンフィギュレーション パラメーターの設定によって変わります。データ型の符合化に必要なビット数が単精度データ型の符合化に必要な 32 ビットより少ない場合、データ型は単精度より小さくなります。たとえば、half
と int16
は単精度より小さくなります。
プログラムでの使用
ブロック パラメーター: OutDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: Inherit via internal rule' | 'Inherit: Keep MSB' | 'Inherit: Match scaling' | 'Inherit: Same as input' | 'Inherit: Inherit via back propagation' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
既定の設定: 'Inherit: Inherit via internal rule' |
固定小数点ツールによる変更に対して出力データ型の設定をロックする — 固定小数点ツールが出力データ型をオーバーライドするのを防止
off
(既定値) | on
固定小数点ツールが、ブロックに指定した [出力] データ型をオーバーライドしないようにするには、このパラメーターを選択します。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。
プログラムでの使用
ブロック パラメーター: LockScale |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
整数丸めモード — 固定小数点演算の丸めモード
負方向
(既定値) | 正方向
| 最も近い偶数方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
固定小数点演算の丸めモードを指定します。詳細については、丸め (Fixed-Point Designer)を参照してください。
ブロック パラメーターは常に最近傍の表現可能な値に丸められます。ブロックパラメーターの丸めを直接制御するには、MATLAB® の丸め関数を使用する式をマスク フィールドに入力します。
プログラムでの使用
ブロック パラメーター: RndMeth |
型: 文字ベクトル |
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
既定の設定: 'Floor' |
整数オーバーフローで飽和 — オーバーフロー アクションの方法
off
(既定値) | on
オーバーフローで飽和するかラップするかを指定します。
動作 | 根拠 | オーバーフローの影響 | 例 |
---|---|---|---|
このチェック ボックスをオンにする ( | モデルでオーバーフローが発生する可能性があるので、生成コードに飽和保護を明示的に組み込むことをお勧めします。 | オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。 |
|
このチェック ボックスをオンにしない ( | 生成コードの効率を最適化することをお勧めします。 ブロックが範囲外の信号を処理する方法を指定しすぎないようにすることをお勧めします。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。 | オーバーフローは、データ型によって表現される適切な値にラップされます。 |
|
このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。
プログラムでの使用
ブロック パラメーター: SaturateOnIntegerOverflow |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
パラメーター属性
パラメーターの最小値 — ゲインの最小値を指定
[]
(既定値) | スカラー
ゲインの最小値を指定します。既定値は []
(指定なし) です。Simulink は、以下を行う際にこの値を使用します。
パラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)
固定小数点データ型の自動スケーリング
プログラムでの使用
ブロック パラメーター: ParamMin |
型: 文字ベクトル |
値: スカラー |
既定の設定: '[ ]' |
パラメーターの最大値 — ゲインの最大値を指定
[]
(既定値) | スカラー
ゲインの最大値を指定します。既定値は []
(指定なし) です。Simulink は、以下を行う際にこの値を使用します。
パラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)
固定小数点データ型の自動スケーリング
プログラムでの使用
ブロック パラメーター: ParamMax |
型: 文字ベクトル |
値: スカラー |
既定の設定: '[ ]' |
パラメーターのデータ型 — Gain パラメーターのデータ型を指定
Inherit: Inherit via internal rule
(既定値) | Inherit: Same as input
| Inherit: Inherit from 'Gain'
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| [fixdt(1,16)]
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Gain パラメーターのデータ型を指定します。
[パラメーターのデータ型] が [内部ルールによる継承]
に設定されている場合の [ゲイン] パラメーター値の調整
[パラメーターのデータ型] を [継承: 内部ルールによる継承]
に設定すると、Gain ブロックは、現在のゲイン値を参照して、現在のゲイン値を表す完全精度のデータ型を提供する内部の経験則に基づいてデータ型を選択できます。ブロック線図を更新すると、Simulink は高精度で範囲の損失のないゲイン値 3
に適したデータ型を推定します。たとえば、この経験則では、指定したゲイン値が 3
の場合、Gain ブロックは sfix32_En29
の選択したデータ型を推定します。その結果、推定されたこのデータ型は 4
を超える値を保持できません。シミュレーション時にゲイン値を 6
に調整すると、選択したデータ型でオーバーフローが発生し、動作は想定外です。
この [パラメーターのデータ型] 設定を使用してパラメーターを調整する際に、[パラメーターの最小値] と [パラメーターの最大値] パラメーターを指定します。これらの設定はシミュレーション時に必要な値の範囲について Simulink に指示し、Simulink が指定範囲内でゲイン値を安全に調整できる十分な範囲の完全精度のデータ型を提供できるようにします。
プログラムでの使用
ブロック パラメーター: ParamDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: Inherit via internal rule | 'Inherit: Same as input' | 'Inherit: Inherit via back propagation' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' , 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
既定の設定: 'Inherit: Inherit via internal rule' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための Verilog および VHDL のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。
調整可能なパラメーターを HDL コード生成用の Gain ブロックで使用できます。詳細については、調整可能なパラメーターの DUT 端子を生成する (HDL Coder)を参照してください。
ConstMultiplierOptimization | 説明 |
---|---|
none ("既定値") | 既定では、HDL Coder は CSD と FCSD のいずれの最適化も実行しません。Gain ブロック用に生成されたコードは乗算器の演算を維持します。 |
csd | このオプションを指定すると、生成されたコードは正準符号付き桁数 (CSD) 手法を使用して、クロック速度を維持または増加しながらモデルで使用される面積を減少します。CSD は乗算器の演算を加算および減算演算で置換します。 CSD では、2 進数を最小限のカウントでゼロ以外の桁によって表現することで、定数乗算に必要な加算演算の数を最小に抑えます。 |
fcsd | このオプションは、乗算器の演算を特定のオペランドの素因数のシフトおよび加算/減算演算で置換する、因数分解された CSD (FCSD) 手法を使用します。これらの因数は一般的には素因数ですが、面積の削減にとって有利となる 2 のべき乗に近い数値の場合もあります。FCSD を使用すると大幅に面積を削減できますが、クロック速度は低下します。 |
auto | このオプションを指定すると、CSD または FCSD の最適化が選択されます。必要な加算器の数に基づいて、最も面積効率の高い実装を得られる最適化が選択されます。 |
一般 | |
---|---|
ConstMultiplierOptimization | 正準符号付き桁数 (CSD) または因数分解された CSD による最適化。既定の設定は |
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
DSPStyle | 乗算器のマッピングの合成属性。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
メモ
[ゲイン] パラメーターの特定の値については、乗算器を使用する代わりに、ネイティブ浮動小数点によりアルゴリズムが異なって実装されます。たとえば、[ゲイン] パラメーターを 1
に設定すると、生成されたモデルはワイヤを使用して入力を出力に渡します。[ゲイン] パラメーターを -1
に設定すると、生成されたモデルには入力信号の極性を反転する Unary Minus ブロックが示されます。この実装では、ターゲット プラットフォームのレイテンシとリソース使用率が低減されます。
ネイティブ浮動小数点 | |
---|---|
HandleDenormals | HDL Coder で追加のロジックを挿入して設計で非正規数を処理するかどうかを指定します。非正規数とは、その大きさが仮数の先頭にゼロを付けずに表現できる最小の浮動小数点数より小さい数値のことです。既定の設定は |
LatencyStrategy | 浮動小数点演算子について、設計内のブロックを |
NFPCustomLatency | 値を指定するには [LatencyStrategy] を |
MantissaMultiplyStrategy | コード生成中に仮数乗算演算を実装する方法を指定します。さまざまな設定を使用することで、ターゲット FPGA デバイスでの DSP の使用方法を制御できます。既定の設定は |
このブロックは、複素信号のコード生成をサポートしています。
PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2006a より前に導入
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)