サンプリングされた (一変量の) データがいくつかありますが、サンプリング プロセスを駆動するクロックが不正確です。その結果、30 ごとに 1 サンプル (未満) のランダム スリップが発生します。周波数の約 1/30 のより正確なクロックは、信頼できるサンプルを提供します同じデータ...時計のずれを正確に推定することができます。
サンプリングされたデータを補間してこれを修正し、高周波データを低周波データに「適合」させようとしています。これを「リアルタイム」で実行する必要があります - いくつかの低周波サンプルのレイテンシーを超えないようにします。
さまざまな補間アルゴリズムがあることは認識していますが、検討した中では、スプライン ベースのアプローチがこのデータに最も有望に見えます。
私はPythonで作業しており、scipy.interpolateパッケージを見つけましたが、それを使用してn個のサンプルを「ストレッチ」して小さなタイミングエラーを修正する明確な方法はわかりませんでした。私は何かを見落としていますか?
私は、適切な公開されたアルゴリズムへのポインター、または理想的には、この種の変換を実現するための Python ライブラリー関数へのポインターに興味があります。これは SciPy (またはその他) でサポートされていますか?
アップデート...
最初は些細な問題に思えたことが、最初に思ったほど簡単ではないことに気づき始めています。単純なスプラインの使用で十分であるとは、もはや確信が持てません。また、「クロックドリフト」を参照せずに問題をより適切に説明できることにも気付きました...次のように:
1 つのランダム変数が 2 つの異なる周波数 (低周波数と高周波数) でサンプリングされ、公約数はありません (例: 5hz と 144hz)。サンプル 0 が両方のサンプル レートで同一であると仮定すると、サンプル 1 @5hz はサンプル 28 と 29 の間に収まります。たとえば、720hz で、すべての既知のデータ ポイントに「できるだけスムーズに」適合する新しいシリーズを構築したいと考えています。
「すぐに使える」ソリューションを見つけたいと思っていました。