2011-12-28 10 views
3

私はオーディオデータを扱っているので、私のデータセットは通常約40000〜120000ポイント(1〜3秒)です。現在、私は線形補間をいくつかのタスクに使用しており、結果を改善するために3次補間を使用したいと考えています。interp1dの代わりに "大きな"データセットの正3次補間?

interp1dkind='linear'を使用して補間関数を生成しています。これは素晴らしい作品であり、非常に直感的です。

しかし、kind='cubic'に切り替えると、コンピュータが狂ってしまう---メモリがスラッシングを開始し、Emacsウィンドウが暗くなり、マウスポインタの動きが非常に遅くなり、ハードドライブが非常にアクティブになります。私はこれが大量のメモリを使用しているためだと思います。私は(非常にゆっくりと)新しい端末ウィンドウを開き、htopを実行して、Pythonのプロセスを強制終了します。 (私はLinuxを使用しているはずです。)

キュービック補間についての私の理解は、一度に5点のデータセットしか調べる必要がないということですが、誤っている可能性があります。

どのような場合でも、どのようにしてこの線形補間から3次補間に簡単に切り替えることができますか? interp1dのすべての例は、データポイントをほとんど使用していません。ドキュメントのどこにも言及されていないため、高次の注文ではうまく機能しません。

編集:私はちょうどUnivariateSplineを試しました。それは私が探しているものです。問題は、補間がすべてのデータポイントに接触しないことです。私はすべてのデータポイントを通過する滑らかな曲線を生成する何かを探しています。

Edit2:おそらくInterpolatedUnivariateSplineは私が探していたものです。

+1

interp1dの内容は不明ですが、過去に〜1MポイントのセットでInterpolatedUnivariateSplineを使用しました。 – DSM

答えて

1

私はND補間で同様の問題がありました。私のソリューションは、データをドメインに分割し、各ドメインの補間機能を構築することでした。

あなたのケースでは、データを500点の束に分割し、どこにいるかによってそれらを補間することができます。

f1 = [0,...495] 
f2 = [490,...,990] 
f3 = [985,...,1485] 
.. 
. 
. 
. 

など。

また、各機能の間隔が重複していることを確認してください。この例では、 は5ポイントです。私はあなたが最適な重なりが何であるかを見るためにいくつかの実験をしなければならないと思います。

こちらがお役に立てば幸いです。

関連する問題