http://pspicelib.narod.ru

Биквадратный фильтр

Аналого-цифровые устройста. Г.И.Волович, 2005.         

         Наиболее близко по идее построения к фильтру на основе метода переменных состояния примыкает так называемый биквадратный фильтр, схема которого приведена на Рис. 1. Если принять R1*R3=R2*R7 то  V2 можно использовать как выходное напряжение звена эллиптического фильтра. Если же R7 = oo и R8 = oo  то выходное напряжение V3 соответствует звену 2-го порядка полиномиальных фильтров: Баттерворта, Чебышева и Бесселя. Так же как и фильтр, построенный на основе метода переменных состояний, биквадратный фильтр мало чувствителен к неточности элементов и прост в настройке.
          Параметры схемы, реализующей какой-либо из фильтров Баттерворта, Чебышева и Бесселя, выходным сигналом для которых является напряжение V2 при условиях R7 = oo и R8 = oo , определяют следующим образом. Выбирают требуемое значение емкости С1 базируясь на полосе пропускания, а затем находят значения остальных элементов по формулам.


Рис. 1. Схема  биквадратного фильтра

[Maple Bitmap]

>    restart: with(MSpice):
ESolve(Q,`Biqvadtat/OP-PSpiceFiles/SCHEMATIC1/SCHEMATIC1.net`);

`DC1 линейная модель ОУ`

`Cистема Кирхгофа`

(V3-V6)*s*C2+(V4-V6)/R8+(V2-V6)/R5 = 0

(V4-V5)/R7+(V1-V5)/R3-(V5-V2)/R4 = 0

(`Vвх`-V4)/R1+(V1-V4)*s*C1-(V4-V1)/R2-(V4-V3)/R6-(V4-V6)/R8-(V4-V5)/R7 = 0

V1 = -A1*V4

V3 = -A3*V6

V2 = -A2*V5

{V1, V4, V2, V5, V3, V6}

MSpice v8.93:   http://pspicelib.narod.ru

Заданы источники: [Vвх]

Заданы узлы: {VINP}

Получены решения:

V_NET:=[V1, V4, V2, V5, V3, V6]:

J_NET:=[JC2, JR2, JR6, JR4, JR8, JR1, JR7, JVвх, JR5, JC1, JR3]:

Для упрощения формул примем, что ОУ идеальные и обладают бесконечным усилением.

>    A1:=A: A2:=A: A3:=A:

>    H[2]:=collect(limit(V2/Vвх,A=infinity),s);
H[3]:=collect(limit(V3/Vвх,A=infinity),s);

H[2] := R5*R4*R2*R6*s*C2/R1/(R4*R2+R5*R3*s^2*C1*R2*R6*C2+R5*R3*R6*s*C2)

H[3] := -R4*R2*R6/R1/(R4*R2+R5*R3*s^2*C1*R2*R6*C2+R5*R3*R6*s*C2)

>    C1:=C: C2:=C: R3:=R: R4:=R: R3:=R2*R7/R1:   H[2]:=simplify(H[2]);

H[2] := R5*R*R6*s*C/(R*R1+R5*R2*R7*s^2*C^2*R6+R5*R7*R6*s*C)

Перейдем ч частотную область

>    K[2]:=simplify(converth(H[2],f),'size');

K[2] := 2*I*R5*R*R6*Pi*f*C/(-4*f*Pi*R5*(f*R2*Pi*C-1/2*I)*C*R7*R6+R*R1)

>    Fp[2]:=I*solve(diff(abs(K[2]),f)=0,f)[2],(`  - центральная частота`);

Fp[2] := -1/2*I/Pi/R5/R2/R7/R6*(-R5*R2*R7*R6*R*R1)^(1/2)/C, `  - центральная частота`

Найдем частоты уровня режекции 3dB и полосу пропускания

>    F_3dB:=solve(evalc(abs(K[2]))=limit(K[2],f=0)/sqrt(2),f):

>    print(`Полоса пропускания по уровню 3dB`);
BW[2]:=simplify(F_3dB[3]-F_3dB[5]);

`Полоса пропускания по уровню 3dB`

BW[2] := 1/4*2^(1/2)*((2*R5*R2*R7*R6*R*R1-R5^2*R7^2*R6^2+(-R5^3*R7^3*R6^3*(4*R2*R*R1-R5*R7*R6))^(1/2))^(1/2)-(2*R5*R2*R7*R6*R*R1-R5^2*R7^2*R6^2-(-R5^3*R7^3*R6^3*(4*R2*R*R1-R5*R7*R6))^(1/2))^(1/2))/Pi/R...

Теперь подставим номиналы компонентов и построим  АЧХ фильтра

>    Values(AC,RLCVI,[]):                  C:=10e-9: R:=300e3:

Номиналы компонентов:   

R2:=30e3:  [30K]

C2:=10e-9:  [10n]

R4:=300e3:  [300K]

R6:=100e3:  [100K]

R8:=100e3:  [100K]

R7:=100e3:  [100K]

R1:=10e3:  [10K]

C1:=10e-9:  [10n]

R5:=10e3:  [10K]

R3:=300e3:  [300K]

A3:=1e6:  [1e6]

A1:=1e6:  [1e6]

A2:=1e6:  [1e6]

AC источник: Vвх:=1:  AC: Vвх:=1:   Pfase(degrees):=0:

>    H[2]:=H[2]; H[3]:=H[3];
print(`Полоса пропускания по уровню 3dB`);
BW[2]:=evalf(abs(BW[2])),`[Гц] - 3ДБ полоса пропускания`;  
fo[2]:=evalf(Fp[2]);
ploth([H[2],H[3]],f=10..10e3,"2) semi[H[2],H[3]] биквадратного фильтра");

H[2] := 3000000.*s/(.3000e10+300.000000*s^2+1000000.*s)

H[3] := -.9000000000e11/(.9000e10+900.000000*s^2+3000000.*s)

`Полоса пропускания по уровню 3dB`

BW[2] := 530.5164768, `[Гц] - 3ДБ полоса пропускания`

fo[2] := 503.2921209, `  - центральная частота`

[Maple Plot]

Hosted by uCoz