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