MATLAB Function Reference | ![]() ![]() |
表示
w = conv(u,v)
詳細
w = conv(u,v)
は、ベクトル u
と v
のコンボリューションを行います。代数的に、コンボリューションは、係数が、u
と v
の要素である多項式の乗算と同じ演算です。
定義
m
=
length(u)
で n
=
length(v)
とします。 w
は、k
番目の要素が
である長さ m+n-1
のベクトルです。これは、u(j)
と v(k+1-j)
に対して、矛盾のないサブスクリプトとなるすべてのj
の値、詳しく説明すると j
=
max(1,k+1-n)
: min(k,m)
全体に渡る総和です。 m
=
n
のとき、つぎのようになります。
w(1) = u(1)*v(1) w(2) = u(1)*v(2)+u(2)*v(1) w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1) ... w(n) = u(1)*v(n)+u(2)*v(n-1)+ ... +u(n)*v(1) ... w(2*n-1) = u(n)*v(n)
アルゴリズム
コンボリューションの理論では、2 つの数列のコンボリューションはそれらのフーリエ変換の積とほぼ同じです。これの精度を良くするには、2 つのベクトルにゼロを加え、丸め誤差を無視する必要があります。従って、
X = fft([x zeros(1,length(y)-1)]) and Y = fft([y zeros(1,length(x)-1)])
となります。参考
Signal Processing Toolbox の
convmtx
と xcorr
![]() | contrast | conv2 | ![]() |