3

グラフとして表示する必要のあるN個の測定値の配列がありますが、グラフの幅はMピクセルのみで、スクロールされるのはMピクセルのみです。

Mは一定ですが、Nは数十から数千の範囲になります。グラフを表示する必要があるたびに、Nが何であるかがわかりますが、N / Mは整数ではないため、何らかの方法で補正したい累積エラーがあります。

私はプレーンCで作業しており、数学ライブラリは使用できません。

編集2:データは比較的均一で、時々ピークがあります。補間中にこれらのピークを見逃したくありません。

編集3:私は、Mより大きくMより小さい任意のNに対して十分に機能するソリューションを探しています。

ありがとう。

4

1 に答える 1

4

良い解決策の1つは、入力サンプルではなく、出力位置を反復処理することです。つまり、常に正確にMピクセルを描画します。thピクセルに最も近いサンプル値を計算するにiは、配列オフセットを使用します。

[(i*N+M/2)/M]

もちろん、最も近いサンプルのみを使用すると、非常にエイリアシングされた結果が得られます(大きい場合はほとんどのサンプルを破棄しますN)。N常により大きいと確信している場合M、適切ですが簡単なアプローチは、各サンプルの合計の重みが1になるように(隣接する出力ピクセル間で重みが分割されるように)加重平均で十分な隣接サンプルを平均することです。もちろん、より適切な可能性のある、より複雑なリサンプリングアルゴリズムがあります(特に、データが周波数領域でより意味のあるオーディオサンプルのようなものである場合)が、メモリとクロックサイクルの要件が厳しい組み込みデバイスの場合、平均化おそらくあなたが望むアプローチです。

于 2012-05-20T15:21:54.857 に答える