/// <summary> /// Взаимокорелляция двух действительных векторов /// </summary> /// <param name="A">Первый вектор</param> /// <param name="B">Второй вектор</param> /// <returns>Возвращает отсчеты ВКФ</returns> public static Vector CrossCorrelationF(Vector A, Vector B) { int N = (A.N > B.N) ? Functions.NextPow2(2 * A.N) : Functions.NextPow2(2 * B.N); Vector newA, newB; newA = A.CutAndZero(N); newB = B.CutAndZero(N); ComplexVector SwA = Furie.fft(newA); ComplexVector SwB = Furie.fft(newB); return(Furie.ifft(SwA * SwB).RealToVector() / Math.Sqrt(Statistic.Dispers(newA) * Statistic.Dispers(newB)) / newA.N / 2); }