【发布时间】:2012-06-06 16:07:05
【问题描述】:
我需要执行数组(向量)的自相关,但我无法找到正确的方法。我相信我需要来自 Accelerate Framework 的方法“vDSP_conv”,但我不知道如何成功设置它。最让我失望的是需要 2 个输入。也许我有错误的函数,但我找不到对单个向量进行操作的函数。
文档可以在here找到
从网站复制
vDSP_conv
对两个向量执行相关或卷积;单身的 精度。
void vDSP_conv ( const float __vDSP_signal[], vDSP_Stride __vDSP_signalStride, const float __vDSP_filter[], vDSP_Stride __vDSP_strideFilter, float __vDSP_result[], vDSP_Stride __vDSP_strideResult, vDSP_Length __vDSP_lenResult, vDSP_Length __vDSP_lenFilter );
参数
__vDSP_signal
Input vector A. The length of this vector must be at least __vDSP_lenResult + __vDSP_lenFilter - 1.__vDSP_signalStride
The stride through __vDSP_signal.__vDSP_filter
Input vector B.__vDSP_strideFilter
The stride through __vDSP_filter.__vDSP_result
Output vector C.__vDSP_strideResult
The stride through __vDSP_result.__vDSP_lenResult
The length of __vDSP_result.__vDSP_lenFilter
The length of __vDSP_filter.
例如,假设您有一个float x = [1.0, 2.0, 3.0, 4.0, 5.0] 数组。我将如何计算它的自相关性?
输出应该类似于float y = [5.0, 14.0, 26.0, 40.0, 55.0, 40.0, 26.0, 14.0, 5.0] //generated using Matlab's xcorr(x) function
【问题讨论】:
标签: iphone c accelerate-framework cross-correlation