我正在寻找一些关于如何在MATLAB中压缩时间序列数据的建议。
我有一些瞳孔大小的数据集,这些数据集在1秒内收集,每次试验得25,000分(我仍然不确定是否适当调用数据'时间序列')。我现在要做的是将它们与其他数据进行比较,我需要将点数压缩到大约10,000或更少,从而最大限度地减少信息丢失。有没有办法做到这一点?
我试图搜索如何做到这一点,但我能找到的只是平滑数据或压缩数字图像的方法,这已经完成或对我没用。
•数据集只包含瞳孔直径,随着时间的推移而变化。对于每个试验,在1秒期间收集25,000个数据点,这意味着1个点表示测量的瞳孔直径为0.04毫秒。我想要做的只是将这些数据调整为0.1毫秒/点;但是,我不确定在这种情况下是否可以应用FFT等技术,因为这是我第一次处理这种数据。我再次感激你的意见。
答案 0 :(得分:0)
具有时间序列数据的标准数据压缩技术是采用快速傅里叶变换并使用最小频率幅度来表示您的数据(计算功率谱)。您可以使用这些频率幅度来比较数据,但是为了减少您想要使用具有最大幅度的频率的最少量信息 - 但是比较数据变得棘手...... Here是关于FFT的标准Matlab教程。其他一些可能性包括: -ARMA型号 -Wavelets
在“SAX”方法上查看this paper,这是一种时间序列压缩的现代方法 - 它还讨论了经典的时间序列压缩技术。