Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.0.0 - 日本語


xcorr

離散自己/相互相関を計算する

呼び出し手順

[c, lagindex] = xcorr(x)
[c, lagindex] = xcorr(x, y)
[c, lagindex] = xcorr(.., maxlags)
[c, lagindex] = xcorr(.., maxlags, scaling)

パラメータ

x

実数または複素浮動小数点数のベクトル.

y

実数または複素浮動小数点数のベクトル. デフォルト値は x.

maxlags

スカラーで,1より大きな整数. デフォルト値は n. ただし,nx, yベクトルの長さの大きい方です.

scaling

文字列で,値は以下のどれか: "biased", "unbiased", "coeff", "none". デフォルト値は "none".

c

実数または浮動小数点数のベクトルで,向きは xと同じです.

lagindex

行ベクトルで, cの値に 対応する添字(lag index)を有します.

説明

  • c=xcorr(x) は,以下のように正規化しない離散自己共分散を計算します:

    {\begin{matrix}C_k = \sum_{i=1}^{n-k}
                      {x_{i+k}*x^{*}_i}, k \geq 0 \\ C_k = C^{*}_{-k}, k \leq
                      -1\end{matrix}.$

    そして,c を返します. 自己共分散の並びは, Ck=-n:n となります.ただし,nは, xの長さです.
  • xcorr(x,y) は正規化しない離散相互共分散を以下のように計算します:

    {\begin{matrix}C_k = \sum_{i=1}^{n-k}
                      {x_{i+k}*y^{*}_i}, k \geq 0 \\ C_k = C^{*}_{-k}, k \leq
                      -1\end{matrix}}.$

    結果をcに返します. 相互共分散の並びは, Ck=-n:nとなります. ただし,nは, xおよびy の長さの大きい方です.

maxlags 引数が指定された場合, xcorrc を 返し,共分散の並びは Ck=-maxlags:maxlags と なります. maxlagslength(x)よりも 大きい場合, cの先頭と末尾の複数の値は ゼロになります.

scaling 引数は, cに結果を出力する前に C(k)を正規化する方法を以下のように指定します:

  • "biased": c=C/n.
  • "unbiased": c=C./(n-(-maxlags:maxlags)).
  • "coeff": c=C/(norm(x)*norm(y)).

corr 関数はxおよびyの バイアス付き("biased")共分散を計算し, cのみを返します. 自己共分散の並びは,Ck≥0となります.

手法

この関数は, ifft(fft(x).*conj(fft(y)))により Cを計算します.

t = linspace(0, 100, 2000);

y = 0.8 * sin(t) + 0.8 * sin(2 * t);

[c, ind] = xcorr(y, "biased");

plot(ind, c)

参照

  • xcov — 離散自己/相互共分散を計算する
  • corr — 相関 , 共分散
  • fft — 高速フーリエ変換

履歴

バージョン記述
5.4.0 xcorr追加.
Report an issue
<< hank Correlation Convolution Filters >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Oct 24 14:36:18 CEST 2023