シンセ・アンプラグド RSSフィード

2016-06-09

1/12 オクターブバンド・フィルタ (10)

ポリプロピレン・フィルム・コンデンサは 103 (10nF) をひとつしか持っていなかったので、他の容量についてもいくつか買ってきました。

インピーダンス・アナライザや LCR メータは持っていないので、簡易的な測定回路/ソフトウェアを作成して、各種コンデンサの誘電正接 (tan δ) を測ってみました。 結果の表を下に示します。

続きを読む

2016-05-19

1/12 オクターブバンド・フィルタ (9)

2016 年 3 月 30 日の記事 (→こちら) で検証したように、PSoC5LP の DFB (Digital Filter Block) のデータ RAM 容量 (128 ワード) の制限のため、一般的な IIR バイクアッド・フィルタを使用する場合には 1/12 オクターブバンド・フィルタ 8 バンド分 (IIR 2 次セクション 24 個分) が限界です。

この制限は、IIR 2 次セクションあたりフィルタ係数が 5 個必要であることに由来しています。2 次セクションあたりのフィルタ係数の数を減らすことができれば、実現可能なバンド数が増えることになります。

アナログのプロトタイプフィルタ特性をバタワースやチェビシェフなどの、(伝送零点を持たない) 全極型のタイプに選ぶと、それを双 1 次 s-z 変換して得られたディジタルフィルタ特性も (ゼロ周波数とナイキスト周波数以外には) 伝送零点を持たないタイプとなり、フィルタ係数の数を減らせます。

続きを読む

2016-05-05

1/12 オクターブバンド・フィルタ (8)

DABP (Dual Amplifier BandPass) フィルタの実験をしていて、目的の Q の設計値約 35 に対して、実測すると Q が約 27 と 30 % 近くも低い値になってしまう現象に悩まされていました。

OP アンプを交換してみても、コンデンサを交換してみてもあまり改善せず、困っていましたが、これはコンデンサの「誘電正接」(tan δ) に起因するものと判明し、tan δ の特性の良いポリプロピレン・フィルム・コンデンサに代えてみると、ほぼ設計値通りの Q が得られました。

まず、DABP フィルタの回路定数の計算方法を示します。 DABP フィルタの素子定数の計算のために特に計算用のプログラムを用意する必要もなく、電卓片手に手計算で簡単に行なえます。

下に中心周波数 880 Hz の 1/12 オクターブバンド・フィルタを構成する 2 次 BPF セクションのひとつの f0 = 902.29 Hz、Q = 34.63 に対する実際の値を入れた回路図を示します。

続きを読む

2016-04-21

1/12 オクターブバンド・フィルタ (7)

(連続時間) アナログ・フィルタでの実現の第一歩として、 SPICE シミュレーション上での検討を行いました。

次の 3 つの回路方式を対象とします。

  • MFB (Multiple FeedBack) 2 次 BPF
  • Sallen-Key 2 次 BPF
  • DABP (Dual Amplifier BandPass) 2 次 BPF

状態変数型 / biquad 回路については、スイッチト・キャパシタフィルタの MF10 で、すでに実現しているので省略しました。

MFB / Sallen-Key 型のフィルタの回路定数の決定には TI 製の設計アプリケーション「FilterPro」のデスクトップ版を利用しました。

まず、MFB (Multiple FeedBack) 型の回路構成を下に示します。

続きを読む

2016-04-11

1/12 オクターブバンド・フィルタ (6)

ブレッドボード上に実際の MF10 の回路を組んで特性の測定を行いました。

フィルタ設計の結果得られた半端な値の抵抗は、次のように複数の抵抗を組み合わせて近似しました。

23.129 kΩ → (22 kΩ_F + 1.1 kΩ_J) = 23.1 kΩ

380.82 kΩ → (470 kΩ_F // (1 MΩ_F + 1 MΩ_F)) = 380.57 kΩ

781.18 kΩ → (470 kΩ_F + 220 kΩ_F + 91 kΩ_J) = 781 kΩ

ここで、「_F」とサフィックスを付けてあるのは F 級 (1 %) の金属皮膜抵抗、「_J」と付けてあるのは J 級 (5 %) の炭素皮膜抵抗を表しています。

測定は WaveGene でリニア周波数スイープするサイン波信号を発生させフィルタ入力に加えて、フィルタ出力を WaveSpectra のピーク・ホールド機能を使って記録する方式で行いました。

そのピーク・ホールドのオーバーレイ・データをファイルに保存し、PC 上のプログラムで平滑化して中心周波数や帯域幅を読み取っています。

結果のグラフを下に示します。

続きを読む

2016-04-08

1/12 オクターブバンド・フィルタ (5)

ディジタルフィルタによる実現の後は、サンプル値信号処理システムであるスイッチト・キャパシタフィルタで 1/12 オクターブ・バンド・フィルタを作ってみることにしました。

具体的なデバイスとしては、以前に VCF としての応用も試した MF10 (MAXIM 製) を使います。 MF10 を使うのは単に手持ちがあったからです。 新規にはおすすめしません。

古いデバイスなので MAXIM 製は製造中止、TI (旧 NS) 製は現在も製造していますが、性能に比較すると割高な価格となっています。

リニアテクノロジー社の製品 LTC1060 は MF10 のピン・コンパチブル品となっています。 より低い電源電圧で動作する、より高い周波数まで使えるなど、MF10 よりも高機能になっています。

LTspice には AC 解析できる LTC1060 のマクロ・モデルがライブラリとして提供さまれており、それを利用してシミュレーションを行いました。

続きを読む

2016-03-30

1/12 オクターブバンド・フィルタ (4)

PSoC5LP の Filter コンポーネントを利用して生成される DFB プログラムでは、IIR バイクアッド・フィルタの計算に、前処理 6 サイクル、2 次セクション 1 段分の計算に 10 サイクル、後処理に 4 サイクル必要になります。

6 次 BPF の実現には 2 次セクション 3 段が必要ですから、この純粋にフィルタ計算に必要なサイクル数は、

6 + 3 × 10 + 4 = 40 [サイクル]

となります。

バスクロック 73.728 MHz、サンプリング周波数 48 kHz とすると、1 サンプリング周期 = 1536 クロック・サイクルとなるので、フィルタ計算以外のオーバーヘッドを含まない理論値として、

1536 / 40 = 38.4 [バンド]

の 1/12 オクターブバンド・フィルタが実現できることになります。

3 オクターブ 37 鍵キーボードに相当する値となりますが、実際には他のオーバーヘッドを含むので、実現できる値はこれよりも小さくなります。

続きを読む