Processing math: 0%

2014年5月25日日曜日

秋月電子USB-DAC用ローパスフィルタの設計(その2)

秋月電子USB-DAC用ローパスフィルタの設計」で,外付けのローパスフィルタに使う抵抗の抵抗値,コンデンサの容量を確認したのですが,元のページでは,さらに回路の出口のすぐ外に10kΩが追加されており,これが回路の出口に直列で付いている47μFの電解コンデンサにたまった電荷を放出するためとの事です.

その結果,電解コンデンサから先の回路は下記の回路のようになっています.
ここで,オレンジで囲まれている部分が,元々のキットに含まれている部分です.この部分まで含めて回路図を描くと
  • ハイパスフィルタ(47μF + 10kΩ)
  • ローパスフィルタ(100Ω + 0.022μF)
  • ローパスフィルタ(330Ω + 0.0047μF)
の3段のフィルタになります.以下では,1段目のハイパスフィルタの周波数特性,3段まとめてのフィルタの特性を計算してみます.

まず,1段目だけのハイパスフィルタの周波数特性を計算します.下図のように変数を定義します.抵抗の抵抗値をR_0,コンデンサの容量をC_0,入力電圧をv_i(t),出力電圧をv_2(t),コンデンサに流れる電流をi_1(t),コンデンサにかかる電圧をv_{C_0}(t)とします.
すると,抵抗に関する式
v_2(t) = R_0 i_1(t)
コンデンサに関する式
\frac{d v_{C_0}(t)}{dt} = \frac{1}{C_0}i_0(t)
電圧に関する式
v_i(t) = v_{C_0}(t) + v_2(t)
が成立します.これらの式からi_0(t)v_{C_0}(t)を消すと
\frac{d^2}{dt^2}v_i(t) + \frac{1}{C_0R_0}\frac{dv_2(t)}{dt} + \frac{d^2}{dt^2}v_2(t)
となります.これをラプラス変換すると
V_i(s)s^2 = \frac{1}{C_0R_0}V_2(s)s + V_2(s)s^2
となるので,伝達関数は
G(s) = \frac{V_2(s)}{V_i(s)} = \frac{C_0R_0 s}{1 + C_0R_0 s}
となります.周波数特性はs = j\omega\omega = 2\pi fを入れて絶対値を取る事で
|G(j\omega)| = \frac{C_0R_02\pi f}{\sqrt{1 + (C_0R_02\pi f)^2}}
となるので,dBに直すと
g = 20\log_{10}|G(j\omega)| = 20\log_{10}\frac{C_0R_02\pi f}{\sqrt{1 + (C_0R_02\pi f)^2}}
となります.

次に,3段まとめたフィルタの周波数特性を計算します.下図のように変数を定義します.抵抗の抵抗値をそれぞれR_0R_1R_2,コンデンサの容量をそれぞれC_0C_1C_2,コンデンサC_0に流れる電流をi_1(t),抵抗R_0に流れる電流をi_r(t),抵抗R_1に流れる電流をi_2(t),コンデンサC_1に流れる電流をi_c(t),抵抗R_2に流れる電流をi_3(t),入力電圧をv_i(t),抵抗R_1の手前の電位をv_2(t),コンデンサC_0にかかる電圧をv_{C_0}(t),コンデンサC_1にかかる電圧をv_{C_1}(t),出力電圧をv_o(t)とします.


すると,電圧に関する式
v_i(t) = v_{C_0}(t) + v_2(t)
v_2(t) = R_0 i_r(t)
v_2(t) = R_1 i_2(t) + v_{C_1}(t)
v_{C_1}(t) = R_2 i_3(t) + v_o(t)
電流に関する式
i_1(t) = i_2(t) + i_r(t), \quad i_2(t) = i_3(t) + i_c(t),
コンデンサの充電に関する式
i_1(t) = C_0 \frac{dv_{C_0}(t)}{dt}, \quad i_c(t) = C_1 \frac{dv_{C_1}(t)}{dt}, \quad i_3(t) = C_2 \frac{dv_o(t)}{dt}
が得られます.

まず,v_2(t)から右だけを見ると,これはv_2(t)より左には依存しないので前回の計算と同じ形になり,この部分の伝達関数の逆数は
\frac{V_2(s)}{V_o(s)} = (R_1C_1s + 1)(R_2C_2s+1) + R_1C_2s
となります.

v_2(t)より左については,上のハイパスフィルタとは微妙に式が違う(i_1(t)i_2(t)i_r(t)に分かれて,電流i_2(t)v_2(t)以降の回路に流れ込む)ので,上の式からうまくi_2(t)を消してv_2(t)を残すようにすると,

\frac{d^2}{dt^2}v_i(t) = \frac{C_1 + C_2}{C_0} \frac{d^2}{dt^2} v_o(t) + \frac{C_1C_2R_2}{C_0} \frac{d^3}{dt^3} v_o(t) + \frac{1}{C_0R_0} \frac{d}{dt}v_2(t) + \frac{d^2}{dt^2} v_2(t)
が得られます.ラプラス変換すると
V_i(s)s^2 = \frac{C_1 + C_2}{C_0} V_o(s)s^2 + \frac{C_1C_2R_2}{C_0} V_o(s)s^3 + \frac{1}{C_0R_0} V_2(s)s + V_2(s)s^2
となります.すると,全体の伝達関数の逆数は
\frac{V_i(s)}{V_o(s)} = \frac{C_1 + C_2}{C_0} + \frac{C_1C_2R_2}{C_0}s + (\frac{1}{C_0R_0s} + 1)\frac{V_2(s)}{V_o(s)} = \frac{C_1 + C_2}{C_0} + \frac{C_1C_2R_2}{C_0}s + (\frac{1}{C_0R_0s} + 1)\{ (C_1R_1s + 1)(C_2R_2s + 1) + R_1C_2 s\}
となります.s = j\omegaを代入し,複素数としての絶対値を取り,さらに\omega = 2\pi fを代入すると,最終的な周波数特性は
g = 20\log_{10} |G(j\omega)| = 20\log_{10} \frac{C_0R_02\pi f}{\sqrt{(C_1R_0 + C_2R_0 + C_1R_1 + C_2R_2 + C_2R_1 + C_0R_0 - C_0C_1C_2R_0R_1R_2(2\pi f)^2)^2 (2\pi f)^2 + \{ 1 - ( C_1C_2R_1R_2 + C_1C_2R_0R_2 + C_0C_1R_0R_1 + C_0C_2R_0R_2 + C_0C_2R_1R_2)(2\pi f)^2\}^2}}
となります.

以上の2つの式に以下のパラメータを代入してgnuplotでプロットします.
  • C_0 = 47 \times 10^{-6}R_0 = 10 \times 10^3
  • R_1 = 100C_1 = 0.022 \times 10^{-6}
  • R_2 = 330C_2 = 0.0047 \times 10^{-6}

gnuplotに食わせるスクリプトは以下のようになります.
set logscale x
set xrange [0.1:1000000]
set xlabel 'Hz'
set ylabel 'dB'

f(r0, c0, f) = 20 * log10(c0 * r0 * 2 * 3.1415 * f) - 10 * log10((2 * 3.1415 * r0 * c0 * f)**2 + 1)

g(r0, c0, r1, c1, r2, c2, f) = 20 * log10(c0 * r0 * 2 * 3.1415 * f) - 10 * log10((c1*r0 + c2*r0 + c1*r1 + c2*r2 + c2*r1 + c0*r0 - c0*c1*c2*r0*r1*r2*(2 * 3.1415 * f)**2)**2 * (2 * 3.1415 * f)**2 + (1 - (c1*c2*r1*r2 + c1*c2*r0*r2 + c0*c1*r0*r1 + c0*c2*r0*r2 + c0*c2*r1*r2)*(2 * 3.1415 * f)**2)**2  )

set term pdf
set output 'HighPass-47uF-10kohm-0.1Hz-1MHz.pdf'

plot f(10e3, 47e-6, x) title '47uF, 10kohm'

set term png
set output 'HighPass-47uF-10kohm-0.1Hz-1MHz.png'
replot

set term pdf
set output 'HighPass-47uF-10kohm+LowPass-100ohm-0.022uF-330ohm-0.0047uF-0.1Hz-1MHz.pdf'

plot g(10e3, 47e-6, 100, 0.022e-6, 330, 0.0047e-6, x) title '47uf, 10kohm + 100ohm, 0.022uF + 330ohm, 0.0047uF'

set term png
set output 'HighPass-47uF-10kohm+LowPass-100ohm-0.022uF-330ohm-0.0047uF-0.1Hz-1MHz.png'
replot

結果のグラフは以下のようになりました. まず,最初のハイパスフィルタだけの周波数特性です.
次がハイパスフィルタと2段のローパスフィルタ全体の周波数特性です.

ちょっとすごい式になりましたが,プロットしてみると,きちんと計算できてそうに見えます.

0 件のコメント:

コメントを投稿