小编old*_*ank的帖子

使用vDSP功能的自相关

给定浮点数或双精度的一维向量,如何使用加速框架中的vDSP库中的函数计算该向量的自相关?

有人会怀疑vDSP_acor()和vDSP_acorD()函数会执行此计算,但文档vDSP_Library.pdf(此处提供)并不能很好地解释函数参数的使用方式.

类似地,vDSP_conv()和vDSP_convD()函数提到了在两个向量之间执行相关和卷积的能力,但是没有为我提供足够的解释或示例代码以便能够成功地使用它们.例如,如果使用过滤器内核来卷积2D矩阵,我会想象需要两次调用vDSP_convD(),使用不同的signalStride值,但文档中省略了这一点.另一个遗漏是如何打包过滤器中的数据.如果用零填充,如果零首先,最后,或者它们是否需要均匀分布在非零条目的两侧,这是否重要?滤波器长度,结果长度和输入长度是否有要求?

有用示例的建议:使用vDSP_acor()和vDSP_conv()实现向量的自相关.频域中两个数组的二进制乘法,打包为真实数据,使用vDSP_fft2d_zrip()进行前向FFT,将在IFT返回非规范化答案之前用于计算自相关函数.在1D和2D阵列上实现高斯核卷积.一般来说这是一个很棒的库(你能说FAST吗?!),但我发现这些特殊功能有点难以理解,上述例子可能会被广泛使用,因为它们在信号处理和图像分析中非常常见.

对vDSP_Library参考文档的维护者的建议:我假设"空间域"和"时域"在整个文档中是等效的.如果没有,请做出区分.另外,请检查所有公式都有明确定义的参数,这些参数与所讨论函数中声明的参数名称相匹配.

脚注:这里我所指的自相关定义为:A [T] = <(X [t] -m)(X [tT] -m)>/v,其中A [T]是滞后T处的自相关, t是信号X的索引,m是所有t的X的平均值,v是所有t的X的方差,并且尖括号<>表示T的所有可用X对的平均值.

c++ macos signal-processing fft accelerate-framework

5
推荐指数
1
解决办法
2514
查看次数