繁体   English   中英

使用 iOS Accelerate Framework 进行数据平滑

[英]Using the iOS Accelerate Framework for Data Smoothing

有没有人有任何关于使用 Accelerate Framework for Data Smoothing 的指示......? 我希望根据加速度计的输入来平滑数据。 我目前对传入的加速度计数据点进行一些基本过滤,然后将数据传递给一个函数,然后该函数基于此执行一些计算。 然后我想对处理过的数据做一些进一步的数据平滑。

我目前有一个原型,它使用 Python 库对结果数据执行 Savitzky-Golay 过滤器。 然后我在我的应用程序中使用它的输出。 我的原型可以很好地计算数据,但是我想在 Objective-C / Swift 中做到这一点。 出于性能原因,我还想使用 Accelerate Framework。 到目前为止,我还没有看到任何关于如何使用 Accelerate Framework 进行数据平滑的指示,因此我的问题是。

如果有人有任何指示或文档,请告诉我。

谢谢,

J

您可能会使用 vDSP_conv Apple Docu与 Savitzky-Golay 过滤器进行卷积。 你不需要Framework来创建内核,所以使用这个函数应该就足够了。

您可以在此处找到有关如何使用该功能的示例代码(您可能需要苹果开发人员凭据才能查看该代码) Apple 示例代码

我在我的项目中也有同样的需求。 我有两个包含来自线性编码器的时间和位置的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 中。

原来的:

绘制的原始数据

光滑的:

绘制的平滑数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM