004_bandpass.mw

バンドパスフィルターの設計

イントロダクション

回路の周波数特性は、回路のゲイン(または増幅因子)が周波数によりどのような影響を受けるかを視覚的に表します。この例では、バンドパスフィルターの周波数特性を確認し、入力キャパシタンスの変化による影響を解析します。

バンドパスフィルターの回路素子は、レジスタ、キャパシタ、オペアンプです。

[Inserted Image]

> restart;

式の定義

回路を定義する式は、複素数式を使って表わされ、位相解析が行われます。各コンポーネントの式を定義します。

> Vo := (-Z2/Z1)* Vi;

Vo := -Z2*Vi/Z1

> Z1 := R3 + 1/(I*omega*C3);

Z1 := R3-I/(omega*C3)

> Z2 := R4*1/(I*omega*C4) / (R4 + 1/(I*omega*C4));

Z2 := -I*R4/(omega*C4*(R4-I/(omega*C4)))

問題を解く

この回路の目的は、不要な周波数を取り除くことです。したがって、不要な周波数の増幅またはゲインを小さくしなくてはなりません。

はじめに、角(ラジアン)周波数
omega と、ヘルツ周波数 f の関係を定義します。

> omega := 2*Pi*f;

omega := 2*Pi*f

ゲイン (入出力の比) を計算します。

> gain := abs(evalc(Vo/Vi));

gain := abs(-1/4*R4*R3/(Pi^2*f^2*C4^2*(R4^2+1/4/(Pi^2*f^2*C4^2))*(R3^2+1/4/(Pi^2*f^2*C3^2)))-1/4*R4^2/(Pi^2*f^2*C4*(R4^2+1/4/(Pi^2*f^2*C4^2))*C3*(R3^2+1/4/(Pi^2*f^2*C3^2)))+I*(1/2*R4^2*R3/(Pi*f*C4*(R4...gain := abs(-1/4*R4*R3/(Pi^2*f^2*C4^2*(R4^2+1/4/(Pi^2*f^2*C4^2))*(R3^2+1/4/(Pi^2*f^2*C3^2)))-1/4*R4^2/(Pi^2*f^2*C4*(R4^2+1/4/(Pi^2*f^2*C4^2))*C3*(R3^2+1/4/(Pi^2*f^2*C3^2)))+I*(1/2*R4^2*R3/(Pi*f*C4*(R4...

位相の式を得るために、極形式に変換します。

> phase := evalc(op(2,convert(Vo/Vi,polar)));

phase := arctan(1/2*R4^2*R3/(f*C4*(R4^2+1/4/(Pi^2*f^2*C4^2))*(R3^2+1/4/(Pi^2*f^2*C3^2)))-1/8*R4/(f^3*C4^2*Pi^2*(R4^2+1/4/(Pi^2*f^2*C4^2))*C3*(R3^2+1/4/(Pi^2*f^2*C3^2))), -1/4*R4*R3/(f^2*C4^2*Pi*(R4^2+...phase := arctan(1/2*R4^2*R3/(f*C4*(R4^2+1/4/(Pi^2*f^2*C4^2))*(R3^2+1/4/(Pi^2*f^2*C3^2)))-1/8*R4/(f^3*C4^2*Pi^2*(R4^2+1/4/(Pi^2*f^2*C4^2))*C3*(R3^2+1/4/(Pi^2*f^2*C3^2))), -1/4*R4*R3/(f^2*C4^2*Pi*(R4^2+...

上で得られた式は、解析的に振幅と位相を求めたものです。数値の代わりに未定義の変数を使い、もっとも一般的な形で問題を解いています。このように解を表すと、後で変数の値を決められるため、いろいろな値で試すことができます。

コンポーネントの値を決定

> R3 := 1000:

> R4 := 3000:

> C3 := 0.08*10^(-6):

> C4 := 0.01*10^(-6):

解のプロット

ボード線図は、周波数特性を視覚的に表すものです。フィルターの場合、そのフィルターが、どの周波数を増幅し、どの周波数を縮小するかを表します。

振幅のプロット

> plot([log10(f), 20*log10(gain), f=10..50000], title=`Magnitude: dB vs. Frequency`);

[Plot]

位相のプロット

> plot ([log10(f), phase, f=10..50000], title=`Phase Angle vs. Frequency`);

[Plot]

コンポーネントの値による回路の特性の変化は、コンポーネントの値を1つの次元とし、3次元プロットで表すことができます。次のプロットは、キャパシタ C[3] の値の変化により、周波数特性の振幅がどのように変化するかを示します。

C[3] を未定義変数に戻します。

> C3 := 'C3':

3次元平面で結果をプロットします。

> plot3d([log10(f), 10^(6)*C3, 20*log10(gain)], f=10..50000, C3=0.01*10^(-6)..1*10^(-6),
      title=`Frequency Sensitivity to C3`, axes=boxed, labels=[`log(f)`,`C3*10^-6`,`dB`]);

[Plot]

この3次元平面では、指定した範囲の C[3] の値と、すべての周波数に対する応答を表しています。Maple セッションの中で、プロットを回転すると、キャパシタが増加するにつれて、通過帯域の中心周波数が高い周波数へ移り、ゲイン (増幅) が大きくなっているのが確認できます。