Как преобразовать коэффициенты вычисленного уравнения Симса из рациональных в двойные значения? - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над кодом для разработки БИХ-фильтров в 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) (Эти коэффициенты по значению равны соответствующим рациональным значениям в приведенном выше результате)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...