Main Content

Dot Product

2 つのベクトルのドット積を生成

  • Dot Product block

ライブラリ:
Simulink / Math Operations
HDL Coder / Math Operations

説明

Dot Product ブロックは入力ベクトルのドット積を生成します。スカラー出力 y は、次の MATLAB® 演算に等しくなります。

y = sum(conj(u1) .* u2 ) 

ここで、u1u2 は入力ベクトルを表します。入力はベクトル、列ベクトル (1列の行列)、または、スカラーになることがあります。入力が共にベクトルまたは列ベクトルの場合、それらは同じ長さでなければなりません。u1u2 が共に列ベクトルである場合、ブロックは MATLAB 式 u1'*u2 と等価な出力をします。

入力ベクトルの要素は、実数または複素数値の信号です。出力の信号タイプ (複素数または実数) は、入力の信号タイプに依存します。

入力 1入力 2出力

実数

real

real

real

complex

complex

複素数

実数

complex

complex

complex

複素数

端子

入力

すべて展開する

ドット積計算に対する 1 番目のオペランドを表す信号。

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

ドット積計算に対する 2 番目のオペランドを表す信号。

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

出力

すべて展開する

2 つの入力信号のドット積計算から得られる出力信号。

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

パラメーター

すべて展開する

すべての入力が異なるデータ型をもつようにするには、このチェック ボックスをオフにします。

プログラムでの使用

ブロック パラメーター: InputSameDT
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'on'

Simulink® がチェックする出力範囲の下限値。

Simulink は、最小値を使って以下を行います。

メモ

[出力の最小値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

プログラムでの使用

ブロック パラメーター: OutMin
: 文字ベクトル
: '[ ]'| スカラー
既定の設定: '[ ]'

Simulink が有限で実数の double のスカラー値としてチェックする出力範囲の上限値を指定します。

メモ

このブロックのデータ型としてバス オブジェクトを指定した場合、ブロックのバス データの最大値を設定しないでください。Simulink はこの設定を無視します。代わりに、データ型として指定したバス オブジェクトのバス要素の最大値を設定します。バス要素の [最大値] パラメーターの詳細については、Simulink.BusElement を参照してください。

Simulink は、最大値を使って以下を行います。

メモ

[出力の最大値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

プログラムでの使用

ブロック パラメーター: OutMax
: 文字ベクトル
: スカラー
既定の設定: '[ ]'

出力のデータ型を選択します。型は継承されるか、直接指定されるか、Simulink.NumericType などのデータ型オブジェクトとして表現されます。詳細については、信号のデータ型の制御を参照してください。

継承オプションを選択すると、ブロックは次のように動作します。

  • 継承: 内部ルールによる継承 — Simulink は、組み込みターゲット ハードウェアのプロパティを考慮しつつ、数値の精度、パフォーマンス、および生成コードのサイズのバランスが取れるように、データ型を選択します。組み込みターゲット ハードウェアの設定を変更すると、内部ルールにより選択されるデータ型が変更される可能性があります。たとえば、ブロックが int8 型の入力に int16 のゲインを乗算し、ターゲット ハードウェア タイプとして [ASIC/FPGA] が指定されている場合、出力データ型は sfix24 です。ターゲット ハードウェアとして [Unspecified (assume 32-bit Generic)] (汎用 32 ビット マイクロプロセッサ) が指定された場合、出力データ型は int32 です。ターゲット マイクロプロセッサによって指定される語長では出力範囲に対応できない場合、Simulink は診断ビューアーにエラーを表示します。

    コードの効率と数値の精度が、ソフトウェアにより同時に最適化されるとは限りません。内部ルールが、数値精度またはパフォーマンスに対する要求を満たさない場合は、以下のいずれかを行ってください。

    • 出力データ型を明示的に指定する。

    • 単に 継承: 入力と同じ を選択します。

    • fixdt(1,32,16) のように既定のデータ型を明示的に指定し、固定小数点ツールを使用してモデルにデータ型を推奨する。詳細については、fxptdlg (Fixed-Point Designer) を参照してください。

    • 独自の継承ルールを指定するには、[継承: 逆伝播による継承] を使用し、Data Type Propagation ブロックを使用します。このブロックの使い方の例については、Signal Attributes ライブラリの Data Type Propagation Examples ブロックを参照してください。

    メモ

    入力が単精度よりも小さい浮動小数点データ型の場合、[継承: 内部ルールによる継承]単精度より小さい浮動小数点の出力型を継承するコンフィギュレーション パラメーターの設定によって変わります。データ型の符合化に必要なビット数が単精度データ型の符合化に必要な 32 ビットより少ない場合、データ型は単精度より小さくなります。たとえば、halfint16 は単精度より小さくなります。

  • 継承: 逆伝播による継承 — 駆動ブロックのデータ型を使用します。

  • 継承: 1 番目の入力と同じ — 1 番目の入力信号のデータ型を使用します。

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
: 文字ベクトル
: 'Inherit: Inherit via internal rule | 'Inherit: Same as first input' | 'Inherit: Inherit via back propagation' | '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>'
既定の設定: 'Inherit: Inherit via internal rule'

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックの出力データ型の設定をロックします。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーター: LockScale
: 文字ベクトル
: 'off' | 'on'
既定の設定: 'off'

固定小数点演算の丸めモードを指定します。詳細については、丸め (Fixed-Point Designer)を参照してください。

ブロック パラメーターは常に最近傍の表現可能な値に丸められます。ブロックパラメーターの丸めを直接制御するには、MATLAB の丸め関数を使用する式をマスク フィールドに入力します。

プログラムでの使用

ブロック パラメーター: RndMeth
型: 文字ベクトル
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
既定の設定: 'Floor'

オーバーフローで飽和するかラップするかを指定します。

  • off — オーバーフローは、データ型によって表現される適切な値にラップされます。

    たとえば、数 130 は符号付き 8 ビット整数 1 つに収まりきらないので、-126 にラップされます。

  • on — オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。

    たとえば、符号付き 8 ビット整数に関連付けられたオーバーフローは、-128 または 127 に飽和することができます。

ヒント

  • モデルでオーバーフローが発生する可能性があり、生成コードに飽和保護を明示的に組み込む必要があるときには、このチェック ボックスをオンにすることを検討してください。

  • 生成コードの効率を最適化する場合には、このチェック ボックスをオフにすることを検討してください。

    このチェック ボックスをオフにすると、ブロックが範囲外の信号を処理する方法を指定しすぎないようにする点でも役立ちます。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。

  • このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。

  • 通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

プログラムでの使用

ブロック パラメーター: SaturateOnIntegerOverflow
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

ブロックの特性

データ型

Boolean | double | fixed point | half | integer | single

直達

はい

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

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

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2006a より前に導入