如何使用MATLAB压缩时间序列中的数据点



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

我有一些瞳孔大小的数据集,这些数据集是在1秒内收集的,每次试验有25,000个点(我仍然不确定将数据称为"时间序列"是否合适)。我现在要做的是将它们与另一个数据进行比较,我需要将点的数量压缩到大约10,000或更少,以尽量减少信息的损失。有什么方法可以做到吗?

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

•数据集只是由瞳孔直径组成,随着时间的推移而变化。每次试验在1秒内采集25000个点的数据,即1个点代表0.04msec测量的瞳孔直径。我要做的就是把这个数据调整到0.1毫秒/点;但是,我不确定我是否可以在这种情况下应用FFT之类的技术,因为这是我第一次处理这种数据。我再次感谢你的建议。

时间序列数据的标准数据压缩技术是采用快速傅立叶变换并使用最小的频率幅值来表示数据(计算功率谱)。你可以使用这些频率幅度来比较数据,不过为了减少信息量,你可能会想要使用振幅最大的频率——但这样比较数据就变得棘手了……这里是关于FFT的标准Matlab教程。其他一些可能性包括:arma模型小波

查看这篇关于"SAX"方法的文章,这是时间序列压缩的一种现代方法——它还讨论了经典的时间序列压缩技术。

最新更新