【发布时间】:2014-07-30 18:59:08
【问题描述】:
我正在寻找一个递归函数来减少幅度/时间图上的数据点,同时保留曲线的特征。我最初以为我只是使用循环,这里是粗略的伪代码;
void compress(长度时间,幅度范围){
检查长度时间的分辨率不高于数据返回的分辨率 如果是的话;
遍历长度时间,得到最小和最大幅度;
如果最小和最大幅度之间的差异在幅度范围内, 存储最小值和最大值并返回;
如果不是,则除以时间长度 / 4 并调用 compress(length time/4, 范围);
但是,我意识到这会非常非常慢。数据来自 matlab,4 秒的音频有 200k 数据对。有没有办法使用二叉堆或类似的东西,但用两个键而不是一个?
【问题讨论】:
-
如何使用标准压缩方法,例如小波
-
以前没听说过,我刚看了一下,好像Matlab有一个小波工具箱。我会给它一个流行-谢谢!