| Signal Processing Toolbox | ![]() |
表示
A=convmtx(c,n) A=convmtx(r,n)
詳細
コンボリューション行列は、あるベクトルと他のベクトルの内積が2つのベクトルのコンボリューションである行列です。
A は、( = convmtx(c,n)
m+n-1)行n列の行列Aを出力します。ここで、cは長さmの列ベクトルです。Aと長さnの列ベクトルxとの積は、cとxのコンボリューションとなります。
A は、 = convmtx(r,n)
n行(m+n-1)列の行列Aを出力します。ここで、rは長さmの行ベクトルです。Aと長さnの行ベクトルxとの積は、rとxのコンボリューションとなります。
例題
h = [1 2 3 2 1];
convmtx(h,7)
ans =
1 2 3 2 1 0 0 0 0 0 0
0 1 2 3 2 1 0 0 0 0 0
0 0 1 2 3 2 1 0 0 0 0
0 0 0 1 2 3 2 1 0 0 0
0 0 0 0 1 2 3 2 1 0 0
0 0 0 0 0 1 2 3 2 1 0
0 0 0 0 0 0 1 2 3 2 1
convmtxは、ゼロを付加することによって、エッジの部分を処理することに注意してください。
y = conv(c,x)
を使って、コンボリューションを計算したほうが、つぎのコンボリューション行列
nを使って計算するよりも効率的です。=length(x); y=convmtx(c,n)*x
アルゴリズム
convmtxは、関数toeplitzを使って、コンボリューション行列を生成します。
参考
|
コンボリューションおよび多項式乗算 |
|
N次元コンボリューション(MATLAB Function Referenceを参照) |
|
2次元コンボリューション |
|
離散フーリエ変換行列 |
| conv2 | corrcoef | ![]() |