はじめに
本記事は、畳み込み (convolution) と相互相関関数 (cross-correlation) の関係をいくつかまとめたものです。本記事では実数のみを扱います。
何らかの形でお役に立てば幸いです。
まとめ
$f,g$を実数値関数とします。次の定義
\begin{align*}
f^-&:=\lambda x.f(-x) \\
f*g&:=\lambda t.\int_{-\infty}^\infty f(\tau)g(t-\tau)d\tau \\
f\star g&:=f^-*g
\end{align*}
のもとで、以下が成り立ちます。
\begin{align*}
\int_{-\infty}^\infty f^-(x)dx&=\int_{-\infty}^\infty f(x)dx \\
f*g&=g*f \\
(f*g)^-&=g^-*f^- \\
g\star f&=(f\star g)^-
\end{align*}
$f$が偶関数 (i.e. $f^-=f$) なら、
f\star g=f*g
が成り立ちます。
導出
畳み込みの性質
実数値関数$f,g$の畳み込み$f*g$は次のように定義されます。
f*g:=\lambda t.\int_{-\infty}^\infty f(\tau)g(t-\tau)d\tau
以下では$\lambda x.f(-x)$を$f^-$と書くことにします。
一般に
\begin{align*}
\int_{-\infty}^\infty f^-(x)dx&=\int_{-\infty}^\infty f(-x)dx \\
&=\int_\infty^{-\infty}f(y)(-dy) \\
&=\int_{-\infty}^\infty f(y)dy \\
&=\int_{-\infty}^\infty f(x)dx
\end{align*}
が成り立つことから、
\begin{align*}
g*f(t)&=\int_{-\infty}^\infty g(\tau)f(t-\tau)d\tau \\
&=\int_{-\infty}^\infty g(-\tau)f(t+\tau)d\tau \\
&=\int_{-\infty}^\infty g(-(\tau-t))f(t+(\tau-t))d\tau \\
&=\int_{-\infty}^\infty g(t-\tau)f(\tau)d\tau \\
&=\int_{-\infty}^\infty f(\tau)g(t-\tau)d\tau \\
&=f*g(t)
\end{align*}
すなわち$f*g=g*f$が成り立ちます。
加えて次も成り立ちます。
\begin{align*}
(f*g)^-&=\int_{\infty}^\infty f(\tau)g(-t-\tau)d\tau \\
&=\int_{\infty}^\infty f(-\tau)g(-t+\tau)d\tau \\
&=\int_{\infty}^\infty f(-\tau)g(-(t-\tau))d\tau \\
&=\int_{\infty}^\infty f^-(\tau)g^-(t-\tau)d\tau \\
&=f^-*g^-
\end{align*}
相互相関関数の性質
ここでは実数値関数$f,g$の相互相関関数$f\star g$を
f\star g:=f^-*g
で定義します。明示的に書けば
\begin{align*}
f\star g&=\lambda t.\int_{-\infty}^\infty f(-\tau)g(t-\tau)d\tau \\
&=\lambda t.\int_{-\infty}^\infty f(\tau)g(\tau+t)d\tau
\end{align*}
になります。このとき
\begin{align*}
g\star f&=g^-*f \\
&=f*g^- \\
&=(f^-)^-*g^- \\
&=(f^-*g)^- \\
&=(f\star g)^-
\end{align*}
が成り立ちます。
$f$が偶関数 (i.e. $f^-=f$) なら、
f\star g=f^-*g=f*g
となって、畳み込みと相互相関関数は一致します。
$g$が偶関数の場合は、
f\star g=(g\star f)^-=(g*f)^-=(f*g)^-
が成り立ちます。