Содержание
Введение
В данной статье
мы рассмотрим численное решение задачи
дробно-рациональной подстановки для
пересчета передаточных функций аналоговых
и цифровых фильтров. Дробно-рациональная
подстановка применяется для частотного
преобразования передаточных характеристик
аналоговых и цифровых фильтров
(преобразует передаточную характеристику
ФНЧ в передаточную характеристику ФНЧ,
но с другой частотой среза, а также ФНЧ
в ФВЧ, полосовой или режекторный фильтр),
а также для билинейного преобразования
аналогового фильтра в цифровой. Алгоритм
численного расчета дробно-рациональной
подстановки необходим для программной
реализации функций синтеза аналоговых
и цифровых фильтров.
Постановка задачи
Пусть имеется
некоторая дробно-рациональная функция

(например передаточная характеристика
некоторого аналогового фильтра):
|
(1)
|
И пусть нам
необходимо рассчитать другую
дробно-рациональную функцию (пересчитать
характеристику фильтра)
|
(2)
|
|
(3)
|
Другими словами,
вместо переменной

в выражение (1) мы должны подставить

возвести в степень и привести подобные
как в числителе, так и в знаменателе и
получим искомую дробно-рациональную
функцию
 .
Например
|
(4)
|
Тогда
|
(5)
|
В приведенном
примере мы подставили вместо

дробь

и получили 4-этажную дробь, которую
аккуратно упростили. Разумеется данный
пример очень простой и решился в две
строчки, но если полиномы будут более
высокой степени (например 8 или 10), то
можно исписать несколько тетрадок и не
довести расчет подстановки до конца
(потому что на 20-ой странице одной из
тетрадок мы потеряем минус).
Везде
далее мы будем полагать, что порядки
полиномов числителя и знаменателя
исходной дробно-рациональной функции 
равны, т.е.
 .
Аналогично будем полагать,
что порядки полиномов числителя и
знаменателя функции

также равны, т.е.
.
В данных положениях нет ничего
противоречивого, поскольку всегда можно
считать недостающие коэффициенты
числителя или знаменателя нулевыми.
Алгоритм численного расчета дробно-рациональной подстановки
Пусть

и

- вектора коэффициентов
полиномов числителя и знаменателя
 ,
а вектора
 и
- вектора коэффициентов
полиномов числителя и знаменателя
дробно-рациональной функции
 .
При подстановке дробно-рациональную
функцию

требуется возводить в степень. Для
возведения в степень полинома, его
необходимо умножить на себя заданное
количество раз. Мы знаем, что численное
умножение полиномов производится путем
линейной свертки векторов коэффициентов
умножаемых полиномов (это было очень
подробно рассмотрено здесь). При этом
важно отметить, что возведение полинома
в нулевую степень всегда равно единице.
Введем обозначения:
|
(6)
|
где
- полином степени

числителя

с вектором коэффициентов
 ,
а
- полином степени

знаменателя

с вектором коэффициентов
 .
Тогда подстановку можно записать:
|
(7)
|
Таким образом
нам необходимо для расчета подстановки
произвести расчет векторов коэффициентов
всех

полиномов
 ,

Обратим внимание,
что

и
- полиномы степени
 ,
которые возводятся в степень от 0 до
 .
После возведения полиномов степени
 в
степень
 ,
степень полученного полинома станет
равной
 ,
а количество коэффициентов
 .
Рассмотрим матрицу

размером

строк на

столбцов. Тогда
 -ая
строка матрицы

может представлять собой вектор
коэффициентов полинома
 ,
при этом
 -ая
строка матрицы

может быть расчитана через
 -ую
строку как:
|
(8)
|
где
- оператор линейной
свертки. Элемент матрицы

(результат возведения полинома в нулевую
степень). Сразу приведем пример для того
чтобы пояснить заполнение матрицы
 .
Пусть
|
(9)
|
тогда полином
 ,
вектор
 ,
порядок
 ,
порядок
 .
Таким образом, матрица будет иметь

строк и

столбцов. Заполним матрицу
 .
Исходная матрица заполняется нулями,
кроме элемента
 :
|
(10)
|
Заполним матрицу
согласно (8):
|
(11)
|
Таким образом,
заполненная матрица равна:
|
(12)
|
На строке с
номером 2 располагается вектор
коэффициентов полинома

(возведение в первую степень), на третьей
строке

и т.д.
Таким образом,
получили треугольную матрицу
 .
Из матрицы видно, что вектор коэффициентов
 ,
действительно:
|
(13)
|
Аналогичным
образом, можно построить матрицу

размером

строк на

столбцов. Тогда
 -ая
строка матрицы

может представлять собой вектор
коэффициентов полинома
 ,
при этом
 -ая
строка матрицы

может быть расчитана через
 -ую
строку как:
|
(14)
|
Для приведенного
примера построим матрицу
 :
|
(15)
|
Заполним матрицу
согласно (14):
|
(16)
|
Таким образом,
заполненная матрица равна:
|
(17)
|
Действительно:
|
(18)
|
Таким образом,
мы получили, что матрица

хранит в строках коэффициенты полиномов
 ,
а матрица

- коэффициенты полиномов
 .
Тогда произведение

можно рассчитать как:
|
(19)
|
Все возможные
произведения полиномов

можно представить в матрицу

содержащую

строку и

столбцов. Тут надо сделать замечание.
Формально матрицы

и

содержат по

столбцов, и если делать линейную свертку
для перемножения полиномов
 ,
то надо иметь 
столбец в матрице
 .
Но поскольку матрицы

и
 являются
треугольными, то половина коэффициентов
будет равна нулю. Это можно понять если
вспомнить, что

и
- полиномы степени
 ,
тогда
- полином степени
 ,
а
- полином степени
 .
При произведении, степени полиномов
складываются, тогда полученный полином

при любых

будет иметь степень

и для его представления достаточно

столбцов матрицы
 .
Таким образом
 -ая
строка матрицы

равна:
|
(20)
|
Так например
коэффициенты произведения

будут в строке номер 1 и равны:
|
(21)
|
Заполним матрицу
до конца:
|
(22)
|
Окончательно
матрица

равна:
|
(23)
|
Ну и теперь мы
можем рассчитать коэффициенты полиномов
результата подстановки.
Для этого
воспользуемся выражением (7) и учтем что
матрица

хранит в строках коэффициенты произведений
 .
Выражение (7) можно представить:
|
(24)
|
Другими словами
мы должны матрицу

построчно умножить на коэффициенты

и

и сложить по столбцам. Умножим полученную
матрицу

построчно на вектор коэффициентов
 .
В результате строки номер 2 и 4 будут
нулевыми, строки 1 и 3 останутся без
изменений, а строка номер 5 умножится
на 2 и получим матрицу
 :
|
(25)
|
Тогда коэффициенты
полинома числителя результата подстановки
расчитываются как сумма по столбцам
матрицы
 :
|
(26)
|
Умножим полученную
матрицу

построчно на вектор коэффициентов

и получим матрицу
 :
|
(27)
|
Тогда коэффициенты
полинома знаменателя результата
подстановки расчитываются как сумма
по столбцам матрицы
 :
|
(28)
|
Окончательно
результат подстановки можно записать:
|
(29)
|
Вы можете
набравшись терпения произвести
подстановку вручную и убедиться в
правильности полученного результата.
Выводы
Таким образом
мы рассмотрели вопрос дробно-рациональной
подстановки и получили алгоритм
численного расчета коэффициентов
полиномов результата подстановки.
Задавая нужные вектора исходной
дробно-рациональной функции и
дробно-рациональной функции подстановки
мы сможем применить данный алгоритм
для пересчета передаточных характеристик
аналоговых фильтров и цифровых фильтров,
а также для билинейного преобразования
аналогового фильтра прототипа в цифровой
фильтр.
Любые вопросы и пожелания вы можете оставить в
гостевой книге, на форуме,
или прислать по электронной почте admin@dsplib.ru
|