有没有人指出使用Accelerate Framework进行数据平滑......?我希望根据加速度计的输入来平滑数据。我目前对传入的加速度计数据点进行一些基本过滤,然后将数据传递给函数,然后根据此函数执行一些计算。然后,我想对处理过的数据进行一些平滑的数据。
我目前有一个原型,它使用Python库对结果数据执行Savitzky-Golay过滤器。然后我使用我的应用程序中的输出。我的原型很好地计算数据,但我想在Objective-C / Swift中做到这一点。出于性能原因,我还想使用Accelerate Framework。到目前为止,我还没有看到任何有关如何使用Accelerate Framework进行数据平滑的指示,因此我的问题。
如果有人有任何指示或文档,请告诉我。
谢谢,
Ĵ
答案 0 :(得分:3)
您可能会使用vDSP_conv Apple Docu与Savitzky-Golay过滤器进行卷积。你不需要框架来创建内核,所以使用这个功能就足够了。
您可以在此处找到有关如何使用该功能的示例代码(您可能需要Apple开发人员凭据才能查看该代码) Apple Example Code
答案 1 :(得分:1)
我在项目中也有同样的需求。我有两个Double
数组,它们包含线性编码器的时间和位置。位置受到干扰,所以我想使其平滑。
我进行了导入:
import Accelerate
然后使用功能vDSP.convolve()
:
var myTimes: [Double] = //populate with your data (aka x axis)
var myLengths: [Double] = //populate with your data (aka y axis)
let convTimes = vDSP.convolve(myTimes, withKernel: [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1])
let convLengths = vDSP.convolve(myLengths, withKernel: [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1])
就是这样,在Swift 5中。
原文:
流畅: