Func_AcXcFit関数において呼び出される関数の一つ。
FCS/FCCS用の相関関数。
自己相関、相互相関どちらも計算できる。
自己相関を求めるときは引数に同じ数値配列を2つ入れる。
MATLAB備え付けのxcorr関数をそのまま使うと正しい式にならないのでこの関数を使う。
入力の数値配列からその平均を引いてxcorr関数に渡し、
xcorr関数においてunbiasedオプションを指定し正規化する。
その結果をさらに入力の平均で割る。
数式について、詳しくは「FCS相関関数についての考察」を参照。
戻り値はxcorr関数と同様ラグが-maxlag 〜maxlagの相関列となるが、
以降のフィッティングにおいてはラグがマイナスの部分は不要で、かつ
ラグがプラスの部分もすべての値が必要なわけではない。
戻り値のサイズは巨大なので、
必要なインデックスの値のみ抽出して用いると
後のフィッティング等でCPUおよびメモリの負担が減り高速化できるので望ましい。
function [ output_corr output_lags ] = Func_correlation( input_intensity1, input_intensity2, maxlags)
引数
input_intensity1, input_intensity2(1次元数値配列)
行数がtimepoint, 値が蛍光強度の配列。
Func_tifToTimecourseの戻り値あるいはFunc_detrendの戻り値。
自己相関を求めるときは両者に同じものを入れる。
maxlags(数値)
ラグの最大値。
xcorr関数のmaxlag引数と同じ。
戻り値
output_corr(1次元数値配列)
相互相関あるいは自己相関。
配列の長さはxcorr関数の結果と同様 maxlags * 2 + 1
output_lags(1次元数値配列)
xcorr関数の戻り値である、相関の計算対象になるラグをもつベクトル。
output_lags(i)をラグとして計算した相関の値がoutput_corr(i)である。