逆微分による歪みのアンチエイリアシングを読む (github.io)
逆微分による歪みのアンチエイリアシング (antiderivative antialiasing, ADAA) について調べました。以下は参考にした論文です。
- Parker et. al. "Reducing the aliasing of nonlinear waveshaping using continuous-time convolution"
- Bilbao et. al. "Antiderivative antialiasing for memoryless nonlinearities"
- La Pastina et. al. "Arbitrary-order IIR antiderivative antialiasing"
理論については Parker らの論文がとっつきやすいです。実装については Bilbao らの論文に基づいたものが多いようでした。
ADAA には以下の問題点があります。
- 0 除算 (ill-condition) を避けるための分岐により計算量が一定しない。
- 元となる関数によっては逆微分した式の計算が困難。
ADAA の次数が上がると上の問題点が以下のように化けます。
- 0 除算を避けるための分岐先の最悪の場合の計算量が O(2^n) のオーダーで増える。
- 逆微分した式に見たこともないような数学特殊関数が現れ始める。複素解しか得られないこともある。
現実的には実装が簡単な 1 次の ADAA と 2 倍ほどのオーバーサンプリングの組み合わせで十分に思えます。
参考にした論文ではハードクリップや tanh といった歪みのみを対象にしていました。しかし単なるバイパスに同じ手法を適用すれば、離散系での計算式が非線形となる一風変わったフィルタが作れます。
画像は多項式によるソフトクリップ曲線の仕様です。逆微分した式はかなり煩雑です。