%% OiS Lab 2: Filtry

clc; clear; close all;
u = symunit;
format long

% Nastawy początkowe:

fg = 10000; %Częstotliwość graniczna [Hz]
typ = 1; %Butterworth(1) Czebyszew(2) Bessel(3)

wg = 2*pi*fg;

%% Filtr DP 2 rzędu:

wp0=[1.0, 0.86233770962438, 1.272019649514096]; 
Qp=[0.70710678118655, 0.95652007119336, 0.57735026918963];
Lp1=Qp./wp0;
Cp2=(Qp.*wp0).^(-1) 
L2=32e-3; Ri=wg*L2./Lp1; 
C3=Cp2./(wg*Ri);

% L_{p1}:

vpa(Lp1(typ)) * u.H

% C_{p2}:

vpa(Cp2(typ)) * u.F

% R_i:

vpa(Ri(typ)/1e3 * u.kohm)

% C_3:

vpa(C3(typ)/1e-9 * u.nF)

%% Filtr GP 2 rzędu:

w0=wg./wp0;
f0=w0/(2*pi);

% Q:

Qp(typ)

% \omega_0:

vpa(w0(typ)/1e3) * u.krad / u.s

% f_0:

vpa(f0(typ)/1e3 * u.kHz)

%% Filtr DP 3 rzędu:

%%
%%Skrypt projektowania DP filtrów kaskadowych 3-rzędu
%%Butterwortha, Czebyszewa i Bessela
%%
%%Napisał: C. Stefański
%%


%fg=input("Podaj czestotliwosc w kHz:");
%fg=fg*10^3;
%wg=2*pi*fg;
C=10e-9;
a3But=1.0;
w3But=1.0;
Q3But=1.0;
aBut=a3But*wg;
RBut=1/(aBut*C)
w0But=w3But*wg
QBut=Q3But
f0But=w0But/(2*pi);
a3Cze=0.45135175640551;
w3Cze=0.91070162104782;
Q3Cze=2.017720343663899;
aCze=a3Cze*wg;
RCze=1/(aCze*C)
w0Cze=w3Cze*wg;
QCze=Q3Cze
f0Cze=w0Cze/(2*pi)
a3Bes=1.322675799910445;
w3Bes=1.447617133146987;
Q3Bes=0.69104662582507;
aBes=a3Bes*wg;
RBes=1/(aBes*C)
w0Bes=w3Bes*wg;
QBes=Q3Bes
f0Bes=w0Bes/(2*pi)

%
% Tomasz Obuchowski 2022