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 回のみ計算されます。
最適なブロックを判断するには、適切な畳み込みブロックの選択を参照してください。
例
端子
入力
最初の入力 u。スカラー、ベクトル、行列またはN-D 配列として指定します。両方の入力が実数の場合、出力は実数になります。一方または両方の入力が複素数の場合、出力は複素数になります。両方の入力で、すべての入力端子の次元 (最初の次元を除く) は同じ値でなければなりません。
入力 u と v は、有効な範囲外でインデックス化される場合はゼロになります。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
複素数のサポート: あり
2 番目の入力 v。スカラー、ベクトル、行列または N 次元配列として指定します。両方の入力が実数の場合、出力は実数になります。一方または両方の入力が複素数の場合、出力は複素数になります。両方の入力で、すべての入力端子の次元 (最初の次元を除く) は同じ値でなければなりません。
入力 u と v は、有効な範囲外でインデックス化される場合はゼロになります。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
複素数のサポート: あり
出力
パラメーター
[メイン] タブ
ブロックが畳み込みを計算する領域を設定します。
時間
— ブロックは時間領域で計算を行い、これによりメモリ使用量が最小化されます。周波数
— ブロックは周波数領域で計算を行い、入力の長さによっては時間領域で計算するよりも必要な計算量が少なくなる可能性があります。最速
— ブロックは計算数が最小限になる領域で計算を行います。
固定小数点信号は時間領域でのみサポートされます。固定小数点信号を入力する際は、必ず [計算領域] パラメーターを [時間]
に設定してください。
[データ型] タブ
固定小数点演算の丸めモードを次のいずれかに指定します。
負方向
正方向
最も近い偶数方向
最も近い正の整数方向
最も近い整数方向
最も簡潔
ゼロ方向
詳細については、丸めモードを参照してください。
メモ
[丸めモード] と [整数オーバーフローで飽和] のパラメーターは、以下のすべての条件に一致する場合、数値結果には影響しません。
[乗算出力] のデータ型が次である。
[継承: 内部ルールによる継承]
。[アキュムレータ] のデータ型が次である。
[継承: 内部ルールによる継承]
。[出力] のデータ型が次である。
[継承: アキュムレータと同じ]
。
これらのデータ型設定を使用すると、ブロックは完全精度モードで動作します。
このパラメーターをオンにすると、ブロックは固定小数点演算の結果を飽和させます。このパラメーターをオフにすると、ブロックは固定小数点演算の結果をラップします。"飽和" および "ラップ" の詳細については、固定小数点演算のオーバーフロー処理を参照してください。
メモ
[丸めモード] と [整数オーバーフローで飽和] のパラメーターは、以下のすべての条件に一致する場合、数値結果には影響しません。
[乗算出力] のデータ型が次である。
[継承: 内部ルールによる継承]
。[アキュムレータ] のデータ型が次である。
[継承: 内部ルールによる継承]
。[出力] のデータ型が次である。
[継承: アキュムレータと同じ]
。
これらのデータ型設定を使用すると、ブロックは完全精度モードで動作します。
[乗算出力] は、Convolution ブロックでの乗算操作の出力のデータ型を指定します。
継承: 内部ルールによる継承
— ブロックは内部ルールに基づき乗算出力のデータ型を継承します。このルールの詳細については、内部ルールによる継承を参照してください。継承: 1 番目の入力と同じ
— ブロックは乗算出力のデータ型を最初の入力のデータ型と同じになるように指定します。fixdt([],16,0)
— ブロックは語長が 16 ビットで小数部の長さが 0 である自動符号付きの 2 進小数点のスケーリングされた固定小数点データ型を指定します。
[乗算出力] のデータ型は、[データ型アシスタント] を使用して設定することもできます。アシスタントを使用するには、[データ型アシスタントを表示] ボタン をクリックします。
データ型アシスタントの詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
[アキュムレータ] は、Convolution ブロックでの累積演算の出力のデータ型を指定します。
継承: 内部ルールによる継承
— ブロックは内部ルールに基づきアキュムレータのデータ型を継承します。このルールの詳細については、内部ルールによる継承を参照してください。継承: 1 番目の入力と同じ
— ブロックはアキュムレータのデータ型を最初の入力のデータ型と同じになるように指定します。継承: 乗算出力と同じ
— ブロックはアキュムレータのデータ型を乗算出力のデータ型と同じになるように指定します。fixdt([],16,0)
— ブロックは語長が 16 ビットで小数部の長さが 0 である自動符号付きの 2 進小数点のスケーリングされた固定小数点データ型を指定します。
[アキュムレータ] のデータ型は、[データ型アシスタント] を使用して設定することもできます。アシスタントを使用するには、[データ型アシスタントを表示] ボタン をクリックします。
データ型アシスタントの詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
このブロックのアキュムレータ データ型の使い方を示す図については、固定小数点データ型を参照してください。
[出力] は、Convolution ブロックの出力のデータ型を指定します。
継承: アキュムレータと同じ
— ブロックは出力のデータ型をアキュムレータのデータ型と同じになるように指定します。継承: 1 番目の入力と同じ
— ブロックは出力のデータ型を最初の入力のデータ型と同じになるように指定します。継承: 乗算出力と同じ
— ブロックは出力のデータ型を乗算出力のデータ型と同じになるように指定します。fixdt([],16,0)
— ブロックは語長が 16 ビットで小数部の長さが 0 である自動符号付きの 2 進小数点のスケーリングされた固定小数点データ型を指定します。
[出力] のデータ型は、[データ型アシスタント] を使用して設定することもできます。アシスタントを使用するには、[データ型アシスタントを表示] ボタン をクリックします。
詳細については、信号のデータ型の制御 (Simulink)を参照してください。
出力データ型の詳細については、固定小数点データ型を参照してください。
ブロックが出力可能な最小値を指定します。Simulink では、この最小値を使用して次を行います。
シミュレーション範囲のチェック。信号範囲の指定 (Simulink)を参照してください。
固定小数点データ型の自動スケーリング。
ブロックが出力可能な最大値を指定します。Simulink では、この最大値を使用して次を行います。
シミュレーション範囲のチェック。信号範囲の指定 (Simulink)を参照してください。
固定小数点データ型の自動スケーリング。
ブロック ダイアログ ボックスで指定するデータ型が固定小数点ツールによってオーバーライドされないようにするには、このパラメーターを選択します。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
詳細
質問 | 回答 | 推奨ブロック |
---|---|---|
畳み込みを何回実行する予定ですか? | 多くの畳み込みを各タイム ステップごとに 1 回実行 |
|
シミュレーション全体で 1 回の畳み込みを実行 |
| |
入力シーケンスの長さはどれくらいですか? | 両方のシーケンスが有限の長さをもつ |
|
片方のシーケンスが無限 (事前に決定されていない) の長さをもつ |
| |
入力にスカラー ストリームがいくつありますか? | なし |
|
1 つまたは両方 |
|
ブロックは常に最初の次元に沿って 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 は、有効な範囲外でインデックス化される場合はゼロになります。両方の入力が実数の場合、出力は実数になります。一方または両方の入力が複素数の場合、出力は複素数になります。
1 つの入力が列ベクトルで、もう一方が N 次元配列の場合、ブロックはベクトルと N 次元入力配列の最初の次元を個別に畳み込みます。たとえば、u が Mu 行 1 列の列ベクトル、v が Mv 行 N 列の行列の場合、出力は (Mu+Mv–1) 行 N 列の行列となり、その j 番目の列には次の要素があります。
Convolution ブロックは 2 つの列ベクトルの入力も受け入れます。u と v の長さが Mu と Mv の列ベクトルの場合、Convolution ブロックは長さ Mu と Mv でベクトルの畳み込みを実行します。それによって次のようになります。
出力は (Mu+Mv–1) 行 1 列の列ベクトルになります。
次の図では、Convolution ブロック内で固定小数点信号に使用されるデータ型を説明します (時間領域のみ)。
パラメーターで説明されているように、乗算出力、アキュムレータおよび出力データ型をブロック ダイアログで設定することができます。
入力が実数の場合、乗算器の出力は乗算出力のデータ型になります。入力が複素数の場合、乗算の結果はアキュムレータのデータ型になります。乗算演算の実行方法の詳細については、乗算のデータ型を参照してください。
メモ
1 つまたは両方の入力が符号付き固定小数点信号の場合、すべての内部ブロックのデータ型は符号付き固定小数点になります。内部ブロックのデータ型は、"両方の" 入力が符号なし固定小数点信号の場合にのみ、符号なし固定小数点になります。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)