dsp.Convolver
(削除済み) 2 つの信号の畳み込み
説明
dsp.Convolver
System object™ は N 次元入力配列 u の最初の次元と N 次元入力配列 v の最初の次元を畳み込みます。時間領域または周波数領域に入力を畳み込むことができます。時間領域で、オブジェクトは 1 番目の入力と 2 番目の入力を畳み込みます。周波数領域で、オブジェクトは両方の入力のフーリエ変換を乗算し、積の逆フーリエ変換を計算します。この領域で、入力の長さによっては、オブジェクトに必要な計算量が少なくなる場合があります。2 つの計算方法の詳細については、アルゴリズムを参照してください。
2 つの入力を畳み込むには、次の手順に従います。
dsp.Convolver
オブジェクトを作成し、そのプロパティを設定します。関数と同様に、引数を指定してオブジェクトを呼び出します。
System object の機能の詳細については、System object とはを参照してください。
作成
説明
は、時間領域または周波数領域に 2 つの入力を畳み込むための畳み込み System object である cnv
= dsp.Convolvercnv
を作成します。
は、指定の各プロパティが指定の値に設定された畳み込み System object、cnv
= dsp.Convolver(Name,Value
)cnv
を作成します。各プロパティ名を一重引用符で囲みます。
例: cnv = dsp.Convolver('Method','Frequency Domain')
プロパティ
特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release
を使用します。
プロパティが "調整可能" の場合、その値をいつでも変更できます。
プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。
Method
— 畳み込みを計算する領域
'Time Domain'
(既定値) | 'Frequency Domain'
| 'Fastest'
メモ
固定小数点信号は時間領域でのみサポートされます。次の固定小数点プロパティを使用するには、Method
を 'Time Domain'
に設定します。
FullPrecisionOverride
— 固定小数点演算に対する完全精度オーバーライド
true
(既定値) | false
固定小数点演算に完全精度ルールを使用するフラグ。次のいずれかに指定します。
true
–– オブジェクトは、完全精度ルールを使用してすべての内部演算と出力データ型を計算します。これらの規則は、最も正確な固定長数値を提供します。このモードでは、他の固定小数点プロパティは適用されません。オブジェクト内で量子化が発生しません。必要に応じてビットが追加されて、丸めやオーバーフローが発生しないことを確実にします。false
–– 固定小数点データ型は個別の固定小数点プロパティ設定によって制御されます。
詳細については、Full Precision for Fixed-Point System ObjectsとSet System Object Fixed-Point Propertiesを参照してください。
RoundingMethod
— 丸め方法
'Floor'
(既定値) | 'Ceiling'
| 'Convergent'
| 'Nearest'
| 'Round'
| 'Simplest'
| 'Zero'
固定小数点演算の丸めモードを選択します。
依存関係
このプロパティは、FullprecisionOverride
プロパティを false
に設定し、ProductDataType
、AccumulatorDataType
、および OutputDataType
プロパティの少なくとも 1 つのプロパティを 'Full precision'
以外のオプションに設定している場合に適用されます。
OverflowAction
— オーバーフロー アクション
'Wrap'
(既定値) | 'Saturate'
固定小数点演算のオーバーフロー アクション。次のいずれかに指定します。
'Wrap'
–– オブジェクトはその固定小数点演算の結果をラップします。'Saturate'
–– オブジェクトはその固定小数点演算の結果を飽和します。
オーバーフロー アクションの詳細については、固定小数点演算のオーバーフロー モードを参照してください。
依存関係
このプロパティは、FullprecisionOverride
プロパティを false
に設定し、ProductDataType
、AccumulatorDataType
、および OutputDataType
プロパティの少なくとも 1 つのプロパティを 'Full precision'
以外のオプションに設定している場合に適用されます。
ProductDataType
— 乗算出力のデータ型
'Full precision'
(既定値) | 'Custom'
| 'Same as first input'
dsp.Convolver
オブジェクトの乗算操作出力のデータ型。次のいずれかを指定します。
'Full precision'
–– オブジェクトは、完全精度ルールを使用して乗算出力のデータ型を計算します。これらの規則は、最も正確な固定長数値を提供します。量子化は行われません。必要に応じてビットが追加されて、丸めやオーバーフローが発生しないことを確実にします。'Custom'
–– 乗算出力のデータ型は、CustomProductDataType
プロパティを使ってカスタムの数値型に指定します。丸め方法とオーバーフロー アクションは、RoundingMethod
プロパティとOverflowAction
プロパティで指定します。'Same as first input'
–– オブジェクトは乗算出力データ型を最初の入力のデータ型と同じになるように指定します。
乗算出力データ型の詳細については、固定小数点のセクションを参照してください。
CustomProductDataType
— 乗算の語長と小数部の長さ
numerictype([],32,30)
(既定値)
乗算出力データ型。語長が 32 で小数部の長さが 30 の自動符号付きの数値型に指定します。
依存関係
このプロパティは ProductDataType
を 'Custom'
に設定した場合にのみ適用されます。
AccumulatorDataType
— アキュムレータのデータ型
'Full precision'
(既定値) | 'Custom'
| 'Same as first input'
| 'Same as product'
dsp.Convolver
オブジェクトの累積操作出力のデータ型。次のいずれかを指定します。
'Full precision'
–– オブジェクトは、完全精度ルールを使用してアキュムレータ データ型を計算します。これらの規則は、最も正確な固定長数値を提供します。量子化は行われません。必要に応じてビットが追加されて、丸めやオーバーフローが発生しないことを確実にします。'Custom'
–– アキュムレータのデータ型は、CustomAccumulatorDataType
プロパティを使ってカスタムの数値型に指定します。丸め方法とオーバーフロー アクションは、RoundingMethod
プロパティとOverflowAction
プロパティで指定します。'Same as first input'
–– オブジェクトはアキュムレータのデータ型を最初の入力のデータ型と同じになるように指定します。'Same as product'
–– オブジェクトはアキュムレータのデータ型を乗算データ型と同じになるように指定します。
アキュムレータ データ型の詳細については、固定小数点のセクションを参照してください。
CustomAccumulatorDataType
— アキュムレータの語長と小数部の長さ
numerictype([],32,30)
(既定値)
アキュムレータ データ型。語長が 32 で小数部の長さが 30 の自動符号付きの数値型に指定します。
依存関係
このプロパティは AccumulatorDataType
を 'Custom'
に設定した場合にのみ適用されます。
OutputDataType
— 出力データ型
'Same as accumulator'
(既定値) | 'Custom'
| 'Same as first input'
| 'Same as product'
dsp.Convolver
オブジェクトの出力のデータ型。次のいずれかとして指定します。
'Same as accumulator'
–– オブジェクトは出力データ型をアキュムレータ データ型と同じになるように指定します。アキュムレータ データ型の詳細については、AccumulatorDataTypeプロパティを参照してください。'Custom'
–– 出力データ型は、CustomOutputDataType
プロパティを使ってカスタムの数値型に指定します。丸め方法とオーバーフロー アクションは、RoundingMethod
プロパティとOverflowAction
プロパティで指定します。'Same as first input'
–– オブジェクトは出力データ型を最初の入力のデータ型と同じになるように指定します。'Same as product'
–– オブジェクトは出力データ型を乗算データ型と同じになるように指定します。
出力データ型の詳細については、固定小数点のセクションを参照してください。
CustomOutputDataType
— 出力の語長と小数部の長さ
numerictype([],16,15)
(既定値)
出力データ型。語長が 16 で小数部の長さが 15 の自動符号付きの数値型に指定します。
依存関係
このプロパティは OutputDataType
を 'Custom'
に設定した場合にのみ適用されます。
使用法
入力引数
input1
— 最初のデータ入力
ベクトル | 行列 | N 次元配列
最初のデータ入力。ベクトル、行列または N 次元配列として指定します。入力が行列または配列の場合、最初の次元を除き、両方の入力のすべての次元が同じでなければなりません。
例: ones(10,3,2)
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fi
複素数のサポート: あり
input2
— 2 番目のデータ入力
ベクトル | 行列 | N 次元配列
2 番目のデータ入力。ベクトル、行列または N 次元配列として指定します。入力が行列または配列の場合、最初の次元を除き、両方の入力のすべての次元が同じでなければなりません。
例: randn(4,3,2)
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fi
複素数のサポート: あり
出力引数
cnvOut
— 畳み込まれた出力
ベクトル | 行列 | N 次元配列
2 つの入力の畳み込まれた出力。ベクトル、行列または N 次元配列として返されます。
両方の入力が N 次元配列の場合、最初の次元のサイズは異なっても構いませんが、他のすべての次元のサイズは同じでなければなりません。たとえば、u が Mu x N x P の配列で、v が Mv x N x P の配列の場合、出力は (Mu+Mv–1) x N x P の配列となります。
1 つの入力が列ベクトルで、もう一方が N 次元配列の場合、オブジェクトはベクトルと N 次元入力配列の最初の次元を個別に畳み込みます。たとえば、u が Mu 行 1 列のベクトルで、v が Mv 行 N 列の行列の場合、出力は (Mu+Mv–1) 行 N 列の行列になります。
u と v の長さが Mu と Mv の列ベクトルの場合、オブジェクトはベクトルの畳み込みを実行します。出力は (Mu+Mv–1) 行 1 列の列ベクトルになります。
両方の入力が実数の場合、出力は実数になります。一方または両方の入力が複素数の場合、出力は複素数になります。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fi
複素数のサポート: あり
オブジェクト関数
オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj
という名前の System object のシステム リソースを解放するには、次の構文を使用します。
release(obj)
例
2 つの四角形シーケンスの畳み込み
dsp.Convolver
オブジェクトを作成します。
conv = dsp.Convolver
conv = dsp.Convolver with properties: Method: 'Time Domain' Show all properties
2 つの四角形シーケンスを畳み込みます。
x = ones(10,1); y = conv(x,x);
結果の畳み込まれたシーケンス (三角形のシーケンス) をプロットします。
plot(y)
詳細
畳み込み
2 つの信号の "畳み込み" は、1 つの信号が別の信号にシフトされるときのオーバーラップ量を測定する積分です。
2 つの離散時間シーケンス u[n] および v[n] の畳み込みは、次の式で与えられます。
固定小数点
次の図は、dsp.Convolver
System object 内で固定小数点信号に使用されるデータ型を示します。
固定小数点信号は時間領域でのみサポートされます。
入力が実数の場合、乗算器の出力は乗算出力のデータ型になります。入力が複素数の場合、乗算の結果はアキュムレータのデータ型になります。実行される複素数の乗算の詳細については、乗算のデータ型を参照してください。
1 つまたは両方の入力が符号付き固定小数点信号の場合、すべての内部オブジェクトのデータ型は符号付き固定小数点になります。内部のデータ型は、"両方の" 入力が符号なし固定小数点信号の場合にのみ、符号なし固定小数点になります。
アルゴリズム
時間領域の計算
計算領域を "時間" に設定すると、アルゴリズムでは時間領域の 2 つの入力の畳み込みが計算されます。
2 つの入力 u と v のサイズがそれぞれ Mu 行 N 列および Mv 行 N 列である場合、畳み込み出力の j 番目の列は、次の式で与えられます。
入力 u と v は、有効な範囲外でインデックス化される場合はゼロになります。
たとえば、u が Mu 行 1 列、v が Mv 行 N 列の行列の場合、出力は (Mu+Mv–1) 行 N 列の行列となり、その j 番目の列は次の式を使用して計算されます。
両方の入力が長さ Mu および Mv の列ベクトルの場合、オブジェクトは、次の式で与えられるベクトルの畳み込みを実行します。
出力は (Mu+Mv–1) 行 1 列の列ベクトルになります。
周波数領域の計算
計算領域を "周波数" に設定すると、アルゴリズムは周波数領域で 2 つの入力の畳み込みを計算します。
この領域では、アルゴリズムは、両方の入力信号のフーリエ変換を取得してフーリエ変換を乗算し、その積の逆フーリエ変換を取得して、畳み込みシーケンスを計算します。この領域で、入力の長さによっては、アルゴリズムに必要な計算量が少なくなる場合があります。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
MATLAB コード生成における System object (MATLAB Coder)を参照してください。
バージョン履歴
R2012a で導入R2023a: dsp.Convolver
System object は削除済み
R2021b: dsp.Convolver
System object は削除予定
dsp.Convolver
System object は将来のリリースで削除される予定です。代わりに関数 conv
を使用してください。
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)