優れているのは、アップサンプリングまたはダウンサンプリングですか?


13

2つの信号または曲線を比較したい。 30 Hzでサンプリングされた曲線 2000 Hzでの曲線サンプル

残念ながら、サンプルレートは異なります。1つ目は30 Hzでサンプリングされ、2つ目は2000 Hzでサンプリングされます。Matlabには「リサンプル」機能があり、これにより比較がはるかに簡単になると思いました。

私の質問は次のとおりです。2番目の曲線をダウンサンプリングするか、最初の曲線をアップサンプリングするのが賢明ですか

編集: 私は言われたとおりにした。左の図には、元の曲線があります。右側の曲線はリサンプリングされます。右上はアップサンプリングされ、右下はダウンサンプリングされます。

リサンプリングすると、曲線の長さが異なることがわかります。ただし、2番目の信号は最初の信号の長さに切り取られます。 比較


1
あなたの質問に賛成しました。どちらが賢いと思いますか。

非常に高い精度が問題ではない場合、それははるかに高速プロセスを作る場合は特に、あなたがダウンサンプルすることができます(この場合、私はそれはしないと思います)、あなたは仕事であなたの時間を大切
user1306322

@Stanley Pawlukiewicz、明らかに、ダウンサンプリングによってすべての小さなピークを失います。そのため、アップサンプリングが進むべき道かもしれません。それから、小さなピークは必要ありません。2番目の信号を平滑化することも考えました。したがって、私の場合、サンプルをアップするかダウンするかは問題ではないでしょう。
NelsonOrange

もうフィードバックと回答が必要ですか?
ローランデュバル

回答:


18

要するに:

  • アップサンプリング:情報を失う /すべきではない(賢明に行った場合)、より安全な
  • ダウンサンプリングは:(愚かに行われていれば)まだ、情報を失うことより、計算 効率的

あなたが異なる速度でデータを比較している場合、および評価フェーズに1回の試行は、比較が行われるべき方法を定義するとき(、何メートルで、比較されている機能れと外観、効率的に精度、堅牢性、などなど)、非常に基本的な最初のアプローチは、両方の信号を整数係数でアップサンプリングして、サンプリングを調整することです。ここでは、これはまったく問題ありません。両方で6000 Hzが機能します。

その理由は、DSPの実践の場合です。

  • 整数アップサンプリングを使用すると、トリッキーなフィルタリング手法を使用する必要がなくなり、単純な線形補間が簡単になります。ただし、アップサンプリングによって情報が追加されることに注意してください。
  • 信号が同じスケールである場合、特徴を抽出してそれらを比較できます:ノイズ、変動性、勾配、微分など。正しいスケール/オフセット補正を適用できます(同じ振幅ではありません)。類似性機能が異なるドメインに存在するかどうかを確認するための線形変換(フーリエなど)
  • この段階で、アルゴリズムの構築に必要な機能/メトリックを品質および定量化できるはずです。そして、両方のデータから何を失うことができるかを見積もることができます。たとえば、アルゴリズムを作成して、ダウンサンプリングの信号に対してロバストである方法と、どこまで到達できるかを確認できます。ここで、アルゴリズムがより効率的になり始めます。

少し時間をかけたら、最初からやり直す準備が整い、安全性と効率性の両方を達成するために、どの方法などでダウンサンプリングするかを決定します。

代替手段を提供するために、フーリエ領域でデータを比較する場合、長さとサンプリングレートが異なる2つの信号を同じ数のフーリエ係数に簡単にキャストでき、周波数領域での比較に役立ちます。


14
ダウンサンプリングは、賢明な方法で行われていなくても、ほとんど常に情報失います。しかし、情報を失うことは実際には賢明なことかもしれません
。...-leftaroundabout

@leftaroundaboutどのような場合にダウンサンプリングで情報が失われないのですか?
ウィレム

2
@leftaroundabout私は同意しません。情報の損失は、それを維持するよりも常に悪いです。唯一の賢明なことは、情報の損失そのものではなく、信号のより良い表現のためにどの情報を捨てるべきかを知ることです。
AlexTP

5
@Willem:非常に明白なケースとして、DC信号を単一のサンプルにダウンサンプリングできます。一般に、(新しい)ナイキスト制限を超える成分を持たない信号は、安全にダウンサンプリングできます。
MSalters

1
1つのサンプルから元の信号と同じ信号に戻すことができるため、DC信号から1つのサンプル信号への情報の損失はないと主張できます。情報が失われていると言えます。これは、1サンプルの信号を追加情報なしで人に与え、「これはDC信号を表しますか?」答えは「わからない、1つのサンプルで十分な情報がない」です。
SEは著作権を侵害します

7

plot(x、y)のような関数を使用する場合、同じグラフにそれらを表示する最も簡単な方法は、それらをまったくリサンプリングせず、各xベクトルを各信号の適切な値で満たすことです。ディスプレイに表示します。

必要に応じて、ラベルと凡例が異なる2つの異なるx軸(曲線ごとに1つ)を持つようにプロットを設定することもできます。

さて、リサンプリングについて。サンプリング周波数にFsを使用します。

サンプリングされた信号には、Fs / 2を超える周波数成分を含めることはできません。帯域制限されています。

また、周波数Fまでの周波数成分のみを含む信号は、2Fのサンプリングレートで正確に表すことができます。

この「正確な」表現は視覚的なものではなく数学的なものであることに注意してください。良好な視覚的表現のために、1周期あたり5〜10個のサンプル(したがって、Fs / 10程度以上の顕著な周波数成分がない)は、脳がドットをつなぐのに本当に役立ちます。次の図を参照してください。同じ信号、下の曲線のサンプルレートは低く、周波数はFs / 2よりも低いので情報の損失はありませんが、それでも見かけ上は見えません。

ここに画像の説明を入力してください

ただし、まったく同じ信号です。下部のサンプルをsincフィルターでオーバーサンプリング(再構築)すると、上部のサンプルが得られます。

間引き(ダウンサンプリング)は、新しいFs / 2よりも高いすべての周波数成分を信号に折り返します。これが、通常、デシメータの前に急峻なローパスフィルターを配置する理由です。たとえば、Fs = 2000 HzからFs = 30 Hzにダウンサンプリングするには、まず15 Hzを少し下回るカットオフで高次ローパスを適用し、その後デシメートします。

ただし、このフィルターは過渡応答の問題を引き起こし、特定の周波数で位相の遅れが生じ、信号の視覚的側面を変更する場合があります。上記のルールが適用されます。ダウンサンプリングしすぎないでください。信号の形状に意味がある場合は、常にFsを対象の最高周波数の5〜10倍に保ちます。これが、200MHzスコープが1〜2 Gspsでサンプリングする必要がある理由です。

私の質問は次のとおりです。2番目の曲線をダウンサンプリングするか、最初の曲線をアップサンプリングするのが賢明でしょうか。

上で述べたように、最も賢いのは、データをまったく混乱させずに、同じグラフ上にそれぞれのx軸を単純に表示することです。

場合によっては、サンプリングレートの変換が必要になります。たとえば、ポイントの数を減らす、メモリの使用を減らす、高速化する、または両方の信号に同じ「x」座標を使用して計算を実行させるなどです。

この場合、中間Fsを使用して、高いFsで信号をダウンサンプリングし、低いFsで信号をアップサンプリングすることもできます。または、Fsの高いものをダウンサンプリングします。

ナイキスト条件に注意し、低すぎるサンプルレートを選択しないでください。高Fs信号で波形形状の忠実度が失われます。ローパスフィルターなどのために位相シフトが発生します。無視できる場合は、十分な情報に基づいて選択できます。私

「x」座標を一致させるために線形補間を使用する場合、かなり高いFsも必要であることを忘れないでください。上のプロットの上の信号では補間が機能しますが、下の信号では機能しません。min、maxなどに興味がある場合も同じです。

そして...少なくとも視覚的には、オーバーサンプリング/アップサンプリングも過渡応答を混乱させることに注意してください。たとえば、ステップをオーバーサンプリングすると、sincフィルターのインパルス応答のために多くのリンギングが発生します。これは、帯域制限された信号を取得し、角のある素敵なステップが実際に無限の帯域幅を持つためです。

例として方形波を取り上げます。元のサンプリングされた信号について考えてみましょう:0 0 0 1 1 1 0 0 0 1 1 1 ...あなたの脳は方形波を見ています。

しかし現実には、各サンプルをドットとして描く必要があり、ドット間には何もありません。それがサンプリングの全ポイントです。サンプル間には何もありません。したがって、この方形波がsinc補間を使用してオーバーサンプリングされていると、おかしく見えます。

ここに画像の説明を入力してください

これは、帯域制限された方形波の視覚的な表現です。ちらつきが少しあります...または多分ありません。それらが元の信号にあったかどうかを知る方法はありません。この場合の解決策は、エッジでより良い解像度を得るために、より高いサンプリングレートで元の方形波を取得することでした。理想的には、無限の帯域幅のステップが点灯しないように、エッジにいくつかのサンプルが必要です。そのような信号をオーバーサンプリングすると、結果に視覚的なアーティファクトがなくなります。

とにかく。あなたが見ることができるように...ちょうどx軸を台無しにします。ずっと簡単です。


4

ダウンサンプリングは情報を失います。係数が整数の場合、アップサンプリングはロスレスです(係数も覚えておいてください)が、係数が整数でない場合、一部の情報が失われます。非常に特定のリサンプリング係数のために、アップサンプリングはダウンサンプリングよりも理論的に多くの情報を失う可能性があります。

どちらを使用すべきですか?必要な確実性のレベルに依存します。

数学的確実性を必要とせず、ヒューリスティックだけが必要な場合、ダウンサンプリングはより高速で、アップサンプリングはより正確です。

あなたの計算の精度に限界を置く必要がある場合:それは可能ですが、私はあなたを助けることができません。


+1、非常に簡潔な回答でいくつかの重要な情報を絞ることができたため。
dsp_user

3

「比較」と「賢明」の意味に依存します。Matlabでは難しくない賢明なことは、両方の方法でそれを行い、自分で決めることです。

実際に、両方のアプローチの結果で質問を修正した場合、私はあなたの質問に賛成し、より多くの人々がそれを面白いと思うでしょう。


1

この操作で重要になる可能性のあるアップサンプリングを行うときに発生する問題を指摘したいと思います。信号がアップサンプリングされ、データエンドポイントがゼロ値から遠い場合、エッジ効果発生します。実際の経験では、この望ましくない効果を排除する必要があります。私はこのコミュニティと、それについて書いた理解しやすい画像とコードの短いエッセイを共有しています。

https://medium.com/@davidpinyol91/edge-effects-when-resampling-a-signal-on-matlab-how-to-solve-it-cc6458ab1306

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.