next up previous contents index
次へ: フーリエ変換 上へ: 計測のためのバックグランドとしての数学 戻る: 畳み込み積分 convolution   目次   索引


自己相関関数

離散化されたデータ$x(i)$の自己相関関数は、データ数をNとすると、
\begin{displaymath}
R_{xxi}=\frac{1}{N/2}\sum_{j=0}^{N/2}x_{i+j}x_j
\end{displaymath} (5.18)

となる。
図4.31 自己相関関数

相関をとる範囲をN とすることができるが N/2 としているのは、 相関積和の計算数が、 N/2 を越えた部分では減少するためであり、 実際の計測で相 関を目的とするデータ収集を行うときは、総関係数をとる時間幅のデータ数の 倍を採取することが多いためである。
自己相関をとると、ノイズは
\begin{displaymath}
\lim_{T\rightarrow\infty}\int_{-T}^T n(t)dt = 0
\end{displaymath} (5.19)

という性質を持っているため、Nを大きくするとその中 に混入している無相関な雑音は積分によって減衰し、周期性のある部分が明白に なってくる5.1
雑音の消去を目的とした自己相関関数については後で述べる。
この計算をCで記述すると以下のようになる5.2
/* Auto Correlation */
 int 
 autocorrelation(int n, float data[], float sum[])
 {
    float sumt;
    int   i, j, hi = n / 2;

    for (i = 0; i < hi; i++) {
        sum[i] = 0.0;
        for (j = 0; j < hi; j++) {
            sum[i] += data[j] * data[i+j];
        }
        sum[i] /= hi;
        if (i == 0)
            sumt = sum[i];
        sum[i] /= sumt;
    }
 }
自己相関関数$R_{xx}(\tau)$は時間t$t+\tau$の離れた現象が、どの程度相 関を持つかを示す。そのため、$R_{xx}>1$は正の相関があり、$R_{xx}<1$は負の 相関があり、$R_{xx}=1$では相関がないという。 $\vert R_{xx}\vert>\varepsilon$ある現 象の持続時間を表現することにも用いる。


Ken Kishimoto 平成19年3月18日