2011-11-19 31 views
1

我正在尋找一些關於如何在MATLAB中壓縮時間序列數據的建議。如何使用MATLAB按時間序列壓縮數據點?

我有一些瞳孔大小的數據集,這些數據集在1秒內收集,每次試驗25,000點(我還不確定是否適合調用數據的時間序列)。我現在想要做的是將它們與其他數據進行比較,並且我需要將點數壓縮到大約10,000或更少,從而最大限度地減少信息的丟失。有什麼辦法可以做到嗎?

我試着搜索如何做到這一點,但我能找到的所有東西都是平滑數據或壓縮數字圖像的方式,這些數字圖像已經完成或對我無用。

•數據集簡單地包括瞳孔直徑,隨着時間的推移而變化。對於每次試驗,在1秒內收集25,000點數據,這意味着1點表示測量0.04毫秒的瞳孔直徑。我想要做的只是將這些數據調整爲0.1毫秒/點;然而,我不確定在這種情況下是否可以應用像FFT這樣的技術,因爲這是我第一次處理這類數據。我再次感謝您的建議。

+0

如果您更詳細地描述您的數據,我們可能會看到PCA或其他降維技術是否合適。當然,使用均值或中位數的運行平均值(「窗口」平均值)等簡單操作可能適用於您。 –

回答

0

具有時間序列數據的標準數據壓縮技術是採用快速傅里葉變換並使用最小的頻率振幅來表示數據(計算功率譜)。您可以使用這些頻率幅度來比較數據,儘管對於丟失最少量的信息,您希望使用具有最大幅度的頻率 - 但隨後比較數據變得棘手... Here是標準的Matlab教程在FFT上。一些其他可能性包括: -ARMA車型 -Wavelets

退房this paper的「SAX」的方法,對時間序列壓縮一個現代的方法 - 它也討論了經典的時間序列壓縮技術。