このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Convolution
2 つの入力の畳み込み
ライブラリ:
DSP System Toolbox /
Signal Operations
説明
Convolution ブロックは N 次元入力配列 u の最初の次元と N 次元入力配列 v の最初の次元を畳み込みます。このブロックは、列ベクトルと N 次元入力配列の最初の次元の畳み込みも行うことができます。
畳み込みの一般的な方程式は次のようになります。
2 つの DSP System Toolbox™ ブロックは、次の 2 つの入力信号を畳み込むために使用できます。
Convolution
Discrete FIR Filter (Simulink)
Convolution ブロックは、u と v のすべての要素が各 Simulink® タイム ステップで使用可能であると仮定し、それぞれのタイム ステップで畳み込み全体を計算します。
Discrete FIR Filter ブロックは、各タイム ステップで v のすべての要素を使用できる状況で信号の畳み込みを行うために使用できますが、u はシミュレーションの進行につれて生成されるシーケンスです。Discrete FIR Filter ブロックを使用すると、畳み込みは 1 回のみ計算されます。
最適なブロックを判断するには、適切な畳み込みブロックの選択を参照してください。
端子
入力
Port_1 — 最初の入力信号
スカラー | ベクトル | 行列 | N-D 配列
最初の入力 u。スカラー、ベクトル、行列またはN-D 配列として指定します。両方の入力が実数の場合、出力は実数になります。一方または両方の入力が複素数の場合、出力は複素数になります。両方の入力で、すべての入力端子の次元 (最初の次元を除く) は同じ値でなければなりません。
入力 u と v は、有効な範囲外でインデックス化される場合はゼロになります。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
複素数のサポート: あり
Port_2 — 2 番目の入力信号
スカラー | ベクトル | 行列 | N 次元配列
2 番目の入力 v。スカラー、ベクトル、行列または N 次元配列として指定します。両方の入力が実数の場合、出力は実数になります。一方または両方の入力が複素数の場合、出力は複素数になります。両方の入力で、すべての入力端子の次元 (最初の次元を除く) は同じ値でなければなりません。
入力 u と v は、有効な範囲外でインデックス化される場合はゼロになります。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
複素数のサポート: あり
出力
Port_1 — 出力信号
スカラー | ベクトル | 行列 | N-D 配列
畳み込まれた信号。入力信号に応じて、スカラー、ベクトル、行列または N-D 配列として返されます。両方の入力が実数の場合、出力は実数になります。一方または両方の入力が複素数の場合、出力は複素数になります。入力 u と v は、有効な範囲外でインデックス化される場合はゼロになります。畳み込まれた信号が入力によってどのように変化するかという点の詳細については、詳細を参照してください。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
複素数のサポート: あり
パラメーター
[メイン] タブ
計算領域 — 計算領域
時間
(既定値) | 周波数
| 最速
ブロックが畳み込みを計算する領域を設定します。
時間
— ブロックは時間領域で計算を行い、これによりメモリ使用量が最小化されます。周波数
— ブロックは周波数領域で計算を行い、入力の長さによっては時間領域で計算するよりも必要な計算量が少なくなる可能性があります。最速
— ブロックは計算数が最小限になる領域で計算を行います。
固定小数点信号は時間領域でのみサポートされます。固定小数点信号を入力する際は、必ず [計算領域] パラメーターを [時間]
に設定してください。
[データ型] タブ
丸めモード — 丸め演算の方法
負方向
(既定値) | 正方向
| 最も近い偶数方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
固定小数点演算の丸めモードを次のいずれかに指定します。
負方向
正方向
最も近い偶数方向
最も近い正の整数方向
最も近い整数方向
最も簡潔
ゼロ方向
詳細については、丸めモードを参照してください。
メモ
[丸めモード] と [整数オーバーフローで飽和] のパラメーターは、以下のすべての条件に一致する場合、数値結果には影響しません。
[乗算出力] のデータ型が次である。
[継承: 内部ルールによる継承]
。[アキュムレータ] のデータ型が次である。
[継承: 内部ルールによる継承]
。[出力] のデータ型が次である。
[継承: アキュムレータと同じ]
。
これらのデータ型設定を使用すると、ブロックは完全精度モードで動作します。
整数オーバーフローで飽和 — オーバーフロー アクションの方法
off
(既定値) | on
このパラメーターをオンにすると、ブロックは固定小数点演算の結果を飽和させます。このパラメーターをオフにすると、ブロックは固定小数点演算の結果をラップします。"飽和" および "ラップ" の詳細については、固定小数点演算のオーバーフロー処理を参照してください。
メモ
[丸めモード] と [整数オーバーフローで飽和] のパラメーターは、以下のすべての条件に一致する場合、数値結果には影響しません。
[乗算出力] のデータ型が次である。
[継承: 内部ルールによる継承]
。[アキュムレータ] のデータ型が次である。
[継承: 内部ルールによる継承]
。[出力] のデータ型が次である。
[継承: アキュムレータと同じ]
。
これらのデータ型設定を使用すると、ブロックは完全精度モードで動作します。
乗算出力 — 乗算出力のデータ型
継承: 内部ルールによる継承
(既定値) | 継承: 1 番目の入力と同じ
| fixdt([],16,0)
[乗算出力] は、Convolution ブロックでの乗算操作の出力のデータ型を指定します。
継承: 内部ルールによる継承
— ブロックは内部ルールに基づき乗算出力のデータ型を継承します。このルールの詳細については、内部ルールによる継承を参照してください。継承: 1 番目の入力と同じ
— ブロックは乗算出力のデータ型を最初の入力のデータ型と同じになるように指定します。fixdt([],16,0)
— ブロックは語長が 16 ビットで小数部の長さが 0 である自動符号付きの 2 進小数点のスケーリングされた固定小数点データ型を指定します。
[乗算出力] のデータ型は、[データ型アシスタント] を使用して設定することもできます。アシスタントを使用するには、[データ型アシスタントを表示] ボタン をクリックします。
データ型アシスタントの詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
アキュムレータ — アキュムレータのデータ型
Inherit: Inherit via internal rule
(既定値) | Inherit: Same as first input
| Inherit: Same as product output
| fixdt([],16,0)
[アキュムレータ] は、Convolution ブロックでの累積操作の出力のデータ型を指定します。
継承: 内部ルールによる継承
— ブロックは内部ルールに基づきアキュムレータのデータ型を継承します。このルールの詳細については、内部ルールによる継承を参照してください。継承: 1 番目の入力と同じ
— ブロックはアキュムレータのデータ型を最初の入力のデータ型と同じになるように指定します。継承: 乗算出力と同じ
— ブロックはアキュムレータのデータ型を乗算出力のデータ型と同じになるように指定します。fixdt([],16,0)
— ブロックは語長が 16 ビットで小数部の長さが 0 である自動符号付きの 2 進小数点のスケーリングされた固定小数点データ型を指定します。
[アキュムレータ] のデータ型は、[データ型アシスタント] を使用して設定することもできます。アシスタントを使用するには、[データ型アシスタントを表示] ボタン をクリックします。
データ型アシスタントの詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
このブロックのアキュムレータ データ型の使い方を示す図は、拡張機能の「固定小数点の変換」を参照してください。
出力 — 出力のデータ型
継承: アキュムレータと同じ
(既定値) | 継承: 入力と同じ
| 継承: 乗算出力と同じ
| fixdt([],16,0)
[出力] は、Convolution ブロックの出力のデータ型を指定します。
継承: アキュムレータと同じ
— ブロックは出力のデータ型をアキュムレータのデータ型と同じになるように指定します。継承: 1 番目の入力と同じ
— ブロックは出力のデータ型を最初の入力のデータ型と同じになるように指定します。継承: 乗算出力と同じ
— ブロックは出力のデータ型を乗算出力のデータ型と同じになるように指定します。fixdt([],16,0)
— ブロックは語長が 16 ビットで小数部の長さが 0 である自動符号付きの 2 進小数点のスケーリングされた固定小数点データ型を指定します。
[出力] のデータ型は、[データ型アシスタント] を使用して設定することもできます。アシスタントを使用するには、[データ型アシスタントを表示] ボタン をクリックします。
詳細については、信号のデータ型の制御 (Simulink)を参照してください。
出力データ型の詳細については、拡張機能の「固定小数点の変換」を参照してください。
出力の最小値 — ブロックが出力可能な最小値
[]
(既定値) | スカラー
ブロックが出力可能な最小値を指定します。Simulink では、この最小値を使用して次を行います。
シミュレーション範囲のチェック。信号範囲の指定 (Simulink)を参照してください。
固定小数点データ型の自動スケーリング。
出力の最大値 — ブロックが出力可能な最大値
[]
(既定値) | スカラー
ブロックが出力可能な最大値を指定します。Simulink では、この最大値を使用して次を行います。
シミュレーション範囲のチェック。信号範囲の指定 (Simulink)を参照してください。
固定小数点データ型の自動スケーリング。
固定小数点ツールによる変更に対してデータ型の設定をロックする — 固定小数点ツールによるデータ型のオーバーライドの回避
off
(既定値) | on
ブロック ダイアログ ボックスで指定するデータ型が固定小数点ツールによってオーバーライドされないようにするには、このパラメーターを選択します。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
詳細
適切な畳み込みブロックの選択
質問 | 回答 | 推奨ブロック |
---|---|---|
畳み込みを何回実行する予定ですか? | 多くの畳み込みを各タイム ステップごとに 1 回実行 |
|
シミュレーション全体で 1 回の畳み込みを実行 |
| |
入力シーケンスの長さはどれくらいですか? | 両方のシーケンスが有限の長さをもつ |
|
片方のシーケンスが無限 (事前に決定されていない) の長さをもつ |
| |
入力にスカラー ストリームがいくつありますか? | なし |
|
1 つまたは両方 |
|
2 つの N 次元配列の畳み込み
ブロックは常に最初の次元に沿って 2 つの N 次元入力配列の畳み込みを計算します。両方の入力が N 次元配列の場合、最初の次元のサイズは異なっても構いませんが、他のすべての次元のサイズは同じでなければなりません。たとえば、u が Mu x N x P の配列で、v が Mv x N x P の配列の場合、出力は (Mu+Mv–1) x N x P の配列となります。
u が Mu 行 N 列の行列、v が Mv 行 N 列の行列の場合、出力 y は (Mu+Mv–1) 行 N 列の行列となり、その j 番目の列には次の要素があります。
入力 u と v は、有効な範囲外でインデックス化される場合はゼロになります。両方の入力が実数の場合、出力は実数になります。一方または両方の入力が複素数の場合、出力は複素数になります。
列ベクトルと N 次元配列の畳み込み
1 つの入力が列ベクトルで、もう一方が N 次元配列の場合、ブロックはベクトルと N 次元入力配列の最初の次元を個別に畳み込みます。たとえば、u が Mu 行 1 列の列ベクトル、v が Mv 行 N 列の行列の場合、出力は (Mu+Mv–1) 行 N 列の行列となり、その j 番目の列には次の要素があります。
2 つの列ベクトルの畳み込み
Convolution ブロックは 2 つの列ベクトルの入力も受け入れます。u と v の長さが Mu と Mv の列ベクトルの場合、Convolution ブロックは長さ Mu と Mv でベクトルの畳み込みを実行します。それによって次のようになります。
出力は (Mu+Mv–1) 行 1 列の列ベクトルになります。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
次の図では、Convolution ブロック内で固定小数点信号に使用されるデータ型を説明します (時間領域のみ)。
パラメーターで説明されているように、乗算出力、アキュムレータおよび出力データ型をブロック ダイアログで設定することができます。
入力が実数の場合、乗算器の出力は乗算出力のデータ型になります。入力が複素数の場合、乗算の結果はアキュムレータのデータ型になります。乗算演算の実行方法の詳細については、乗算のデータ型を参照してください。
メモ
1 つまたは両方の入力が符号付き固定小数点信号の場合、すべての内部ブロックのデータ型は符号付き固定小数点になります。内部ブロックのデータ型は、"両方の" 入力が符号なし固定小数点信号の場合にのみ、符号なし固定小数点になります。
バージョン履歴
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)