Я сначала реализую передаточную функцию:
Код: Выделить всё
N = 4;
R_p = 1.5;
W_p = 0.5463;
sigma_0 = 0;
T = 2;
E_p = sqrt(10^(R_p/10) - 1);
G_p = 1/(sqrt(1 + (E_p)^2));
A = mod(N, 2);
if(A ~= 0) %~= - "не равно"
r = 1;
else
r = 0;
end
L = fix(N/2);
B = (1/N) * asinh(1/E_p);
if(r ~= 0)
sigma_0 = -sinh(B);
end
for k = 1:L
a_k(k) = pi * (2 * k - 1)/(2 * N);
sigma_k(k) = -sin(a_k(k)) * sinh(B);
omega_k(k) = cos(a_k(k)) * cosh(B);
sum_sig_k_omega_k(k) = sigma_k(k)^2 + omega_k(k)^2;
end
%начиная с этого цикла затруднения. Если полностью, то в этом цикле надо осуществить билинейное преобразование
%(здесь s должно заменится на подстановку биленейного преобразования; берутся коэффициенты перед z в -1, -2, -3 и
%т.д. степенях).
for k = 1:L
a(k) = 0;
b(k) = 0;
y = ((G_p)^(1-r) * (-sigma_0^r) * sum_sig_k_omega_k(k))/ ((s-sigma_0)^r * ((s^2)-2*sigma_k(k)*s+sum_sig_k_omega_k(k)));
end
Мне необходимо сначала вычислить H(s):
Разделить все коэффициенты при s на W_p:
Выполнить подстановку:
Получить H(z):
Преобразовать и получить H(z) и коэффициенты a и b:
Спасибо.