WR-X A/Dのアンチエイリアシング用ローパスフィルタだが、当初予定していたバタワースでは、周波数によって遅延時間が違ってしまうので、どうしようか迷っていた。
バタワースフィルタでの波形
↑の1chは矩形波の入力波形。2chはフィルタの出力波形である。
2chを見てもらうと分かるとおり、オーバーシュート(波形が上がるときに上がりすぎる)やアンダーシュートが見える。
これは、矩形波が多数のSIN波の合成でできているため、周波数によってい遅延が異なると、このようにオーバーシュートが出てしまうのだ。
人間の耳はこの波形の違いを感知することができないため、デジタルオーディオ等ではこういうフィルタが用いられているのだが、WR-Xではポテンショのアナログデータや加速度センサ、ジャイロ等の信号を分析するために用いるため、このように波形が乱れるのは好ましくない。
というわけで、フィルタとしての性能を若干犠牲にしても、周波数によって遅延が異ならないように、ベッセルフィルタにすることにした。
ベッセルフィルタ
ベッセルフィルタにしたところ、↑の2chのように、オーバーシュートはほぼみられなくなった。
まぁ、理論上の値のコンデンサは入手できないので、ある程度近い値のものを用いているので、完璧ではないが、まぁいいだろう。
州*‘ o‘リ<ローパスフィルタと聞いて飛んできました
州*‘ o‘リ<いいすなあ…楽しすよお
お、フィルターもやってるのかね。
D/Aでの出力用フィルタかね。
ハードウェアはちゃんと動いてくれると面白いね。