Автокорреляции с использованием функций vDSP

Учитывая одномерный вектор чисел с плавающей запятой или двойных чисел, как можно рассчитать автокорреляцию для этого вектора с использованием функций из библиотеки vDSP в Accelerate Framework?

Можно было бы подозревать vDSP_acor () и vDSP_acorD () будут выполнять это вычисление, но документация vDSP_Library.pdf (доступна здесь ) не очень хорошо объясняет, как используются аргументы функции.

Точно так же функции vDSP_conv () и vDSP_convD () упоминают возможность выполнять корреляции и свертки между двумя векторами, но не предоставляют мне достаточно объяснений или примеров кода, чтобы я мог их успешно использовать. Например, если ядро ​​фильтра используется для свертки 2D-матрицы, я могу представить, что потребуются два вызова vDSP_convD () с разными значениями signalStride, но это опущено в документации. Еще одно упущение - способ упаковки данных в фильтре. Если они дополнены нулями, имеет ли значение, идут ли нули первыми, последними или они должны быть равномерно распределены по обе стороны от ненулевых записей? Существуют ли требования к длине фильтра, длине результата и длине ввода?

Предложения для полезных примеров: Реализация автокорреляции вектора с самим собой с использованием как vDSP_acor (), так и vDSP_conv (). Двоичное умножение двух массивов в частотной области, которые упакованы как реальные данные, которые были переданы с помощью БПФ с использованием vDSP_fft2d_zrip (), которые будут использоваться при вычислении функции автокорреляции до того, как IFT вернет ненормализованный ответ. Реализация свертки гауссова ядра на одномерном и двумерном массиве. В целом это фантастическая библиотека (можно ли сказать БЫСТРАЯ ?!), но я обнаружил, что эти конкретные функции немного трудны для понимания, и вышеупомянутые примеры, вероятно, будут широко использоваться, потому что они так распространены при обработке сигналов и анализе изображений.

Предложения для сопровождающих справочного документа vDSP_Library: я предполагаю «пространственную область» и «временную область» эквивалентны по всему документу. Если нет, сделайте это различие. Также убедитесь, что любые формулы имеют четко определенные параметры, которые соответствуют объявленным именам аргументов в обсуждаемых функциях.

Сноска: здесь автокорреляция, на которую я ссылаюсь, определяется следующим образом: A [T] = / v, где A [T] - автокорреляция с задержкой T, t - индекс сигнала X, m - среднее значение X по всем t, v - дисперсия X по всем t, а угловые скобки указывают среднее значение по всем доступным парам X, которые находятся на расстоянии T.

5
задан oldmanjank 5 April 2011 в 04:26
поделиться