【问题标题】:How do I compress data points in time-series using MATLAB?如何使用 MATLAB 压缩时间序列中的数据点?
【发布时间】:2011-11-21 15:54:08
【问题描述】:

我正在寻找一些关于如何在 MATLAB 中压缩时间序列数据的建议。

我有一些瞳孔大小的数据集,这些数据集是在 1 秒内收集的,每次试验有 25,000 个点(我仍然不确定将数据称为“时间序列”是否合适)。从现在开始我想做的就是将它们与另一个数据进行比较,我需要将点数压缩到大约 10,000 或更少,从而最大限度地减少信息丢失。有什么办法吗?

我试图搜索如何做到这一点,但我能找到的只是平滑数据或压缩数字图像的方法,这些方法已经完成或对我没有用处。

• 数据集仅由瞳孔直径组成,随时间变化。对于每个试验,在 1 秒内收集了 25,000 个数据点,这意味着 1 个点表示测量 0.04 毫秒的瞳孔直径。我想做的只是将这个数据调整为0.1毫秒/点;但是,我不确定在这种情况下是否可以应用 FFT 等技术,因为这是我第一次处理此类数据。再次感谢您的建议。

【问题讨论】:

  • 如果您更详细地描述您的数据,我们可能会看到 PCA 或其他降维技术是否合适。当然,使用平均值或中位数的运行平均值(“窗口”平均)等简单的方法可能对您有用。

标签: matlab time-series


【解决方案1】:

时间序列数据的标准数据压缩技术是采用快速傅里叶变换并使用最小的频率幅度来表示您的数据(计算功率谱)。您可以使用这些频率幅度比较数据,尽管为了丢失最少的信息,您希望使用具有最大幅度的频率 - 但是比较数据变得很棘手......Here是标准关于 FFT 的 Matlab 教程。其他一些可能性包括: -ARMA 模型 -小波

查看this paper“SAX”方法,这是一种现代的时间序列压缩方法——它还讨论了经典的时间序列压缩技术。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 2012-08-26
    • 2021-02-24
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    相关资源
    最近更新 更多