FIRフィルターチャンネルデバイダの作成【13】4Way化

 

マルチアンプシステム向け、FIRフィルター搭載チャンネルデバイダー(チャンデバ)自作に関連する記事の一覧はこちら!

 

前回は2Wayまで進んだので、4Way化していきます。

 

  ハードの4Way化

ハード部分を、4Way化しましょう。

前回記事の延長でDACを4セット接続するということですね。

なんか、凄くぐちゃぐちゃしてきています。

ブレッドボードレベルでの実験なので、ご勘弁。

 

  ADAU1467としての4Way化

こちらも前回記事同様で、Serial Output Port 2、3、について設定しましょう。Sampling Rate = 2*Fs です。

 

  回路の4Way化

DSP回路を拡張していきましょう。

こちらも、前回同様でコピペで増やしていきます。

出力については、これも前回記載の通り、以下

CH 0 L 0
  R 1
CH 1 L 16
  R 17
CH 2 L 32
  R 33
CH 3 L 40
  R 41

としましょう。

 

  FIR係数の設定

4Way全体として、以下としました。(このあたりはお好みで)

 

LOW 800 Hz
MID 800 Hz 4000 Hz
HIGH 4000 Hz 10000 Hz
SUPERHIGH 10000 Hz

 

これにあったFIR係数を作成、それぞれのFIRフィルターにロードします。

FIR係数の作り方はコチラを参考にしてください。

さて、これで準備整ったのでコンパイル!!!!!

 

した結果がこちら。

あ〜135%!処理が間に合いません。

しょうがないので、FIRのタップ数を調整しましょう。

ということで、とりあえずこんな感じで。

 

まず、高域は500タップに設定、FIR係数も500タップで作成しなおして再ロード。

 

これで、コンパイル。

無事、86%に収まりました。

 

とりあえず、この状態で動作確認をしてみましょう。

キレイに帯域分割されていますね。

 

しかし!実は、問題が残っています。

タップ数の違いによる、遅延の発生です。

 

低域チャネルは、2000タップ

高域チャネルは、500タップ

 

FIRはFIRで設定したタップ数の半分のサンプリングのデータを一旦蓄え計算に利用しているため(2000タップの場合は1000サンプリング)低域の処理時間と、高域の処理時間が違ってしまいます。

よって、低域チャネルのデータは、(2000 - 500) / 2 サンプリング分、遅れて音がでている事となります。

 

次回は、この部分を解消していきましょう。

 

にほんブログ村 音楽ブログへ
にほんブログ村
にほんブログ村 その他趣味ブログへ
にほんブログ村