Расчёт узкополосного режекторного фильтра
Требуется фильтр, обеспечивающий полное подавление сигнала на частоте 1000 Гц, с шириной полосы на уровне 3 .Б - 50 Гц. В качестве узкополосных РФ используются RC-схемы типа двойного Т-образного мостового фильтра (Рис. 1). Их основное преимущество заключается в возможности глубокого подавления отдельных частотных компонентов. Схема искомого фильтра представлена на рис.1.
Рис. 1. Схема искомого фильтра
> | restart:with(MSpice):Devices:=[Oдинаковые,[OP,DC1,2]]: ESolve(L,`OP-PSpiceFiles/SCHEMATIC1/SCHEMATIC1.net`); |
MSpice v8.92: http://pspicelib.narod.ru
Заданы источники: [Vвх]
Заданы узлы: {VINP}
Получены решения:
V_NET:=[V2, V4, V3, V5, V1, VOUT]:
J_NET:=[JR2, JR5, JVвх, JR3, JC2, JC3, JC1, JR4, JR1]:
> | C1:=C: C2:=C: R1:=R: R2:=R: R3:=R/2: C3:=2*C: |
Для упрощения формул примем, что ОУ идеальные и обладают бесконечным усилением.
> | H:=collect(limit(VOUT/Vвх,A=infinity),s); |
Перейдем ч частотную область
> | s:= I*2*Pi*f; H:=H; |
> | print(`Частота режекции`); Fp:=-I*solve(diff(evalc(abs(H)),f)=0,f)[2]; |
> | print(`Выбор резисторов и конденсаторов`); R:=solve('Fp'=Fp,R); R:='R': |
Найдем частоты уровня режекции 3dB и полосу пропускания
> | F_3dB:=solve(evalc(abs(H))=limit(H,f=0)/sqrt(2),f): |
> | print(`Полоса пропускания по уровню 3dB`); BW:=simplify(F_3dB[1]-F_3dB[3]); |
> | print(`Добротность`); Q:=Fp/BW; Q1:=Q: Q:='Q': |
> | print(`Передаточная функция через характерестические параметры фильтра`); Hp:=subs(C=1/(2*Pi*Ro*fo),H): Ro:=R: Hp:=simplify(Hp): Hpq:=subs(R5=4*Q*R4q-R4q,Hp): R4q:=R4: Hpq:=simplify(evalc(abs(Hpq))); |
> | print(`Полоса пропускания по уровню 3dB через добротность`); BW:=simplify(subs('R4'=solve('Q'=1/4*(1+1/R4*R5),R4),BW)); |
Пусть требуется режекция частоты Fo=1 кГц в полосе BW=50 Гц.
Расчитаем номиналы компонентов такого фильтра.
Q=Fo/BW
Выберем С=10 нФ
> |
> |
> |
Выберем R4+R5=10 кОм, тогда R4=(R4+R5)/4*Q
> |
Теперь проверим расчеты и построим график АЧХ
> | H:=H; |
> | print(`Полоса пропускания по уровню 3dB`);Q:=Q1; BandWitch_Hz:=evalf(abs(BW)); fo:=evalf(Fp); |
> | ploth(H,f=0.5e3..1.5e3,"2) АЧХ фильтра при идеальном ОУ"); |
> | ploth(Hpq,f=0.5e3..1.5e3,"3) Hpq АЧХ фильтра при идеальном ОУ"); |