7

長さ927のsensorAと長さ1250のsensorBの2つのベクトルがあります。同じ長さにしたいと思います。MATLABのresample()関数はエッジで非常にノイズが多く、全体を通して少なくとも適度に優れた精度が必要です。

リサンプリングは補間によって実行できることは理解していますが、最も効率的な方法で実装するにはどうすればよいですか。927から1250までできるだけ均一に伸ばす必要があります。

私はこのようなことをすることができるかどうか疑問に思っていました:

  1. 短いベクトルに333個の新しいサンプルが必要です。したがって、3つの値ごとに、その間に2つの連続する値の平均(中点)を挿入します。=>309サンプルが挿入されました
  2. 残りについては、38サンプルごとに再度挿入します(927 /(333-309))

これは意味がありますか?それでも正確な補間を取得することはできません。他に使える機能はありますか?(interp()積分リサンプリングレートが必要なため以外に?)

4

3 に答える 3

6

信号処理の観点からは、3つの値ごとにサンプルを挿入するだけではいけません。それは不均一なストレッチであり、信号を台無しにします。リサンプル機能はあなたが望むものです。nおよび/またはベータのパラメータを変更してみてください。エッジ効果を減らすために、ここで説明するように信号をパディングする必要がある場合があります。

于 2011-02-15T03:54:22.970 に答える
0

補間を行うには、interp1を使用します。あなたの目的には、これで十分かもしれませんが、上記のように、リサンプルは正しいことです。

于 2011-02-15T22:51:43.883 に答える
0

帯域制限された信号のリサンプリングは、無限のSinc補間カーネルを使用した補間と同じであり、適切に選択されたウィンドウを使用したウィンドウ化されたSinc補間に非常に近いものです。詳細については、このスタンフォードCCRMAのWebサイトを参照してください。

于 2011-02-15T19:12:33.510 に答える