Цитата
Наталия_К:
обственно вопрос: согласно заданному методу найденную H(s) нужно представить в виде суммы простых дробей. нужно ли мне из всего произведения делать разложение? или каждый множитель - это отдельный фильтр, тогда я беру первый множитель и раскладываю его на две простые дроби, далее нахожу h(t) - h(nT) - H1(z), аналогично H2(z),H3(z) и H4(z), а итоговую нахожу как их произведение H(z)=H1(z)H2(z)H3(z)H4(z), т.е. структурная схема цифрового фильтра будет как на рис.2
или это неправильно?
Структура результирующего фильтра в любом случае будет как на рис.
Что касается самого расчета:
Вся дробь разлагается на сумму простейших.
Дроби вида a/(s+

конвертятся в a/(1-exp(-b/Fd)*z^-1)
Дроби второго порядка разлагаются в суммы
a/(s+

+conj(a)/(s+conj(

)
Здесь a и b уже комплексные.
Чтобы не париться:
a=g+j*h
b=sigma+j*omega
Тогда
a/(s+

+conj(a)/(s+conj(

) = (2*g*s+2*(sigma*g+omega*h))/(s^2+2*sigma*s+(sigma^2+omega^2))
Отсюда можно найти sigma omega g h сразу из дроби 2-го порядка.
Затем получить уже цифровую дробь 2-го порядка:
(2*g - exp(-sigma/Fd)*(2*g*cos(omega/Fd)-2*h*sin(omega/Fd))*z^-1)/(1 - 2*exp(-sigma/Fd)*cos(omega/Fd)*z^-1 + exp(-2*sigma/Fd)*z^-2)
Затем полученные дроби приводятся к общему знаменателю, суммируются. Ищутся нули - полюсы.
Комплексно сопряженные пары нулей-полюсов дают звенья 2-го порядка, объединяемые последовательно.
Либо реализовывать фильтр параллельным включением полученных биквадратных блоков.