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 | ![]() |