Я работаю над кодом для разработки БИХ-фильтров в Matlab. Коэффициенты "Hs" отображаются в рациональном формате. Я ожидаю, чтобы показать коэффициенты в десятичном формате вместо этого. Пожалуйста, дайте мне знать, как я могу это сделать. Вот мой код для этого -
clc
clear all
syms s
A1= 0.8;
A2= 0.2;
Wap= 0.2*pi;
Was= 0.6*pi;
T=2;
Wdp=(2*tan(Wap/2))/T;
Wds=(2*tan(Was/2))/T;
n1= (1/A1^2)-1;
n2=(1/A2^2)-1;
N_num = log10(n2/n1);
N_den = log10(Wds/Wdp);
N=ceil(0.5* N_num/N_den)
Wc= Wdp/(n1^(1/(2*N)))
Hs=1;
if N%2==0
for k=1:N/2
bk= 2*sin((2*k-1)*pi/(2*N));
Hs=Hs.*((Wc^2)/(s^2 + (bk*Wc*s) + (Wc^2)));
end
end
if N%2!=0
for k=1:(N-1)/2
bk= 2*sin((2*k-1)*pi/(2*N));
Hs=Hs.*((Wc^2)/(s^2 + (bk*Wc*s) + (Wc^2)));
end
Hs=Hs./(s + Wc);
end
Hs
N =
2
Wc =
0.3752
Hs =
1267887102061961 / (9007199254740992 * (с + 3379365585548301/9007199254740992) * (с ^ 2 + (4779144643299303 * с) / 9007199254740992 + 1267887102061961/900719925472992)
Я бы предпочел, чтобы вывод был в этой форме-
N =
2
Wc =
0.3752
Hs =
0,1408 / (с ^ 2 + 0,5306 * с + 0,1408)
(Эти коэффициенты по значению равны соответствующим рациональным значениям в приведенном выше результате)