さまざまなアップサンプリングスキームの相対的なメリットは何ですか?


12

最近、ゼロパディングを介して内部アップサンプリングを行うDSPシステムに出会いました。ゼロ次ホールドを期待して、DC信号がDC出力を生成しなかったことに驚いた。内部(低い)サンプリング周波数の多くの高調波も出力に存在しました。

これは私の質問につながります:どのようなアップサンプリング手法が一般的に使用され、それらの相対的なメリットは何ですか? ゼロパディング、ゼロオーダーホールド、またはファーストオーダーホールドを選択するのはなぜですか?また、他にどのようなテクニックが利用可能ですか?

いくつかの説明:

  • システムはリアルタイムであるため、アップサンプリングスキームは因果関係でなければなりません。
  • アップサンプラーの後には、アンチエイリアスフィルターが続き、これも指定できます。

回答:


11

この回答の目的のために、Matlabの用語を使用して、入力サンプル間にゼロを挿入するプロセスとして「アップサンプリング」を定義し、m - 1個のエイリアスを削除するためのアップサンプリングとフィルタリングを組み合わせたプロセスとして「補間」を定義します(mは補間係数です)アップサンプリングが導入します。アップサンプリングがエイリアスを導入する方法/理由の説明については、このスレッドを参照しください。m1m1m

エイリアスを取り除くためにローパスフィルターを使用して、補間を完了することができることを理解することが重要です。ただし、一部のフィルターは、補間で使用すると利点があります。以下に、補間フィルタリングのさまざまなフレーバーについて説明します。

FIRフィルター

FIRフィルターの内挿は、アップサンプリングとエイリアスフィルターを1つのステップに組み合わせるため、効率的です。これは例で最も簡単に見られます。データシーケンスあり、それを2倍に補間したいとします。最初のステップは、2倍にアップサンプリングすることです。これは、から元のデータ系列変化X 0X 1X NをするX 00 X 10 X Nx[n]x0,x1,...xNバツ00バツ10バツN

ここで、エイリアスを削除するために使用するローパスFIRフィルターがあるとします。アップサンプリングされたデータシーケンスをフィルターで畳み込むと、フィルタータップの半分はゼロ以外のサンプルによって刺激され、タップの半分はゼロサンプルに対応するため非アクティブになります。フィルタがデータを通過するときに、刺激される半分と非アクティブな半分が前後に反転します。これら2つのタップセットは、フィルターフェーズと呼ばれることもあります。h[n]

この同じ効果は、アップサンプリングを排除し、補間FIRフィルターで元のデータシーケンスをフィルター処理することで暗黙的に達成できます。補間FIRフィルターは、すべての入力サンプルに対して出力を生成します。すべてのm出力について、フィルターは同じc e i l K / m 入力サンプルで動作します(Kはフィルタータップの数、「ceil」は天井関数です)。mmceil(K/m)

例は、これがどのように機能するかをうまく説明しています。6タップフィルターがあり、2倍に補間しているとします。フィルタータップは[1 -2 4 4 -2 1]です。文字通り補間してからフィルター処理すると、サンプルとフィルタータップは次のように整列します(完全にオーバーラップした後)。

0:1x2:20:4x1:40:2x0:1
次のサンプル...

x3:10:2x2:40:4x1:20:1
次のサンプル...

0:1x3:20:4x2:40:2x1:1
等々。補間フィルタのポイントは、実際にゼロの挿入をスキップし、代わりにその時点で使用するタップのセットを交互に入れ替えることです。したがって、上記のシーケンスは次のようになります。

バツ22バツ14バツ01

バツ31バツ24バツ12

バツ32バツ24バツ11

ゼロオーダーホールド

ゼロ次ホールド補間器は、各サンプルを回単純に繰り返すものです。2つのゼロ次ホールド補間変換の係数にxは0xは1X NのX 0はxは0xは1をxは1x Nx Nm1バツ0バツ1バツNバツ0バツ0バツ1バツ1バツNバツN。この方法は、コーディングと計算の両方の面で実装が非常に簡単であるため、魅力的です。

問題は、ローパスフィルタリングが非常に悪いことです。ゼロホールド補間がFIR補間の特殊なケースであることを認識すると、それを見ることができます。これは、アップサンプリングとそれに続く幅の長方形フィルターに対応します。長方形フィルターのフーリエ変換はsinc関数であり、かなり粗末なローパスフィルターです。補正FIRフィルターを使用すると、その粗さを修正できますが、それを行う場合は、まず最初に適切なローパスフィルターを使用してください。m

ファーストオーダーホールド

バツ0バツ1バツNバツ0バツ0+バツ12バツ1バツ1+バツ22バツN

ゼロ次ホールド補間器と同様に、1次ホールド補間器はFIR補間の特殊なケースです。これは、三角形フィルタを使用したアップサンプリングとフィルタリングに対応しています。2因子補間の場合、フィルターは[12112]、3因子補間の場合、フィルターは [132312312]、 等々。

三角形フィルターは、畳み込まれた2つの長方形フィルターであり、周波数領域で平方されたsincに対応します。これはゼロ次ホールドからの明確なステップアップですが、それでも素晴らしいことではありません。

IIRフィルター

補間IIRフィルターを使用したことはないので、あまり説明しません。通常のフィルタリングと同じ引数が適用されると仮定します-IIRフィルターはより効率的で、不安定になる可能性があり、線形位相を持たない、などです。しかし、私はそれについて間違っている可能性があります。

FFT補間

あまり一般的ではありませんが、私はこれを投げます(もちろん、ゼロホールドも一般的ではないと思います)。 このスレッドでは、FFTリサンプリングについて説明します。リサンプリングは、補間と間引きの両方です。

高次ホールド

2次ホールド補間器は、通常「2次補間器」と呼ばれます。それらは非線形であるため、線形のFIRフィルターとして実装できません。私はそれらの背後にある数学をよく理解していないので、それらのパフォーマンスについては説明しません。ただし、これらは信号処理以外では一般的であると思います。

高次(3つ以上)のメソッドも存在します。これらは「多項式回帰」と呼ばれます。

編集:

Cascade Integrator Comb(CIC)フィルター

CIC Filtersについて言及するのを忘れました。CICフィルターは2つの理由で使用されます:加算器/減算器のみを使用します(乗算が高速で安価になった今ではそれほど大したことではありません)。欠点は、基本的にカスケードされた長方形フィルターの効率的な実装であるため、前述の長方形フィルターのすべての欠点があります。CIC補間器には、ほとんどの場合、CICによって導入された歪みを相殺するために信号を事前に歪ませる補償FIRフィルターが先行します。サンプルレートの変更が十分に大きい場合、プリディストーションフィルターのコストはそれだけの価値があります。


幻想的なジム氏。高次ホールドカテゴリに追加するために、これは「多項式回帰」とも呼ばれます。その点で、特定の点のセットが与えられると、直線、放物線、三次、最高適合の高次多項式を計算します。方程式がわかれば、中間点が簡単にわかります。
スペイシー

質問:1)FIRフィルターパートの最後の段落について完全に明確ではありません。1番目の入力サンプルに対応する2番目と3番目の出力はフィルターテープ1、4、7、2、5、8を使用すると述べましたが、それらはすべてゼロであることに言及しています...この場合、ゼロだけをサンプリングしますか?2)この「FIR補間フィルター」は、m = 3の場合、たとえば[1 0 0 3.2 0 0 -2.1 0 0 1.1 0 0]のように見えますか?(数字は構成されています)。
スペイシー

@Mohammad私は答えを編集しました。これがお役に立てば幸いです。そして、多項式回帰に関する情報をありがとう。
ジム・クレイ

1
@endolith 2つの理由、私は思う:複雑さと、フィルターの長さが特定の数を超えている場合にのみ計算上意味があります(その数がわからない)。サンプルのブロックを処理する場合、FFTアプローチは非常に効果的ですが、サンプルのストリームを処理する場合は、連続性を維持するためにオーバーラップ加算またはオーバーラップ保存も行う必要があります。
ジム・クレイ

1
@endolith FFTアプローチの素晴らしい点の1つは、大きなフィルターを使用しても実質的に費用がかからないことです。
ジム・クレイ

3

ジムの答えはそれを非常によくカバーしています。すべてのアップサンプリング方法は、同じ基本スキームに従います。

  1. サンプル間にゼロを挿入:これらは元のスペクトルの周期的な繰り返しをもた​​らしますが、元のバンドのスペクトルは完全にそのまま残ります。
  2. すべてのミラースペクトルを取り除くローパスフィルター

メソッド間の主な違いは、ローパスフィルタリングの実装方法です。理想的なアップサンプラーには理想的なローパスフィルターが含まれますが、それは現実的ではありません。周波数領域の問題を考慮すると、特定の要件に適したアップサンプリングアルゴリズムを見つけることができます。

  1. 元の帯域で許容できる振幅歪みはどれくらいですか?その周波数は依存していますか?
  2. 元のバンドのフェーズを気にしますか?位相を維持する必要がある場合は、線形位相FIRが必要です。最小フェーズではない場合、「因果関係」と鋭い開始を維持するのにより良い仕事をします。
  3. 鏡像を抑制するにはどれくらい必要ですか?基本的に、鏡像はベースバンドに余分なノイズとして現れます。

高次の非線形補間(スプライン、エルミート、ラグランジュ)は、補間誤差が信号依存性が高く、特定の要件にマッピングすることはほとんど不可能であるため、通常はうまく機能しません。


「「因果関係」を維持するのにより良い仕事をする」とはどういう意味ですか?
nibot

0

サンプルアンドホールド(つまり、サンプル値の繰り返し)とゼロパディングの違いを考慮する場合、サンプルホールドがゼロパディングとそれに続くアップサンプリングとして解釈できることを(ジムとヒルマーが指摘するように)理解することが役立ちます。インパルス応答が矩形パルスで構成されるFIRフィルター。

たとえば、2 kHzから64 kHz(32倍)にアップサンプリングする場合、2 kHzサンプリングの各ペアの間に31個のゼロを挿入し、32個のすべてで構成されるFIRフィルターでフィルタリングすることでこれを実装できます。係数ゼロ。

この方法でサンプルアンドホールドを考慮すると、分析が容易になります。矩形ウィンドウのフーリエ変換を行うことにより、サンプルアンドホールド操作の周波数応答を取得できます。Jimが指摘しているように、矩形パルスのフーリエ変換はsinc線形位相の関数です(矩形は中心にないため)τ=0)。

このsinc関数は、より低いサンプリング周波数の高調波で正確にヌルを持っていることがわかります。2048 Hzから65536 Hzへのアップサンプリングのサンプルアプリケーションでは、サンプルアンドホールド操作の周波数応答には、2048 Hz、4096 Hzなどでヌルがあります。

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

このことから、元のサンプリング周波数の高調波を完全に抑制する補間フィルターは、「サンプルアンドホールド」のように見えると結論付けます。これは正しいですか?

これらの高調波を抑制する基準に関しては、サンプルホールドが最適であるように見えます。ただし、そのアンチエイリアシング機能は貧弱です。なぜなら、高調波のヌルを除いて、その周波数応答は、1/f 古いナイキストレートより上。


問題は、ヌルが非常に狭いため、ほとんどの信号がヌルの外側にエネルギーを持つことです。
ジム・クレイ

@JimClay、狭いヌルは低サンプリングレートの高調波を殺すのに最適ではありませんか?同意しますが、画像周波数を取り除くために、1 kHzあたりにもう少し極が必要です。私は自分の質問を拡大すると思います:どのようにして良い補間フィルターを設計するのですか?
nibot

通過帯域に信号の帯域幅が含まれ、ローパス帯域にアップサンプリング時に導入されるエイリアスが含まれるローパスフィルターを設計します。信号の3dBポイントとエイリアスの間の周波数が遷移帯域です。あなたの質問が「ローパスフィルタをどのように設計するのですか?」である場合、別の質問でそれを尋ねてください。
ジム・クレイ

通常、フィルターを設計する方法を理解します。通常は、sドメインに極と零点を明示的に配置し、それらをzドメインフィルターに変換します。補間フィルターに特別なトリックがあるかどうか疑問に思っていました。私が取り上げるメッセージは、実際にはトリックはないということです。補間フィルターは他の種類のフィルターと同様であり、その設計はさまざまな考慮事項(リップル、位相、グループ遅延、最小ストップバンド減衰、計算の複雑さなど)。
nibot

一方、FIRフィルターの設計については何も知りません。
nibot
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.