Почему это ручное билинейное преобразование дает результаты, отличные от результатов Matlab?


10

У меня есть фильтр Баттерворта первого порядка с частотой среза . Его передаточная функция тогдаωc

H(s)=ωcs+ωc

Используя билинейное преобразование, чтобы найти (как называется эта функция?), Я получаюH(z)

H(z)=ωc2Tz1z+1+ωc=ωcz+ωc(2T+ωc)z+ωc2T

Однако я не могу согласовать этот результат с тем, что делает Matlab. Это кажется неправильным, независимо от того , какое значение . Я предполагаю, что и ниже находятся коэффициенты .H ( z )TBAH(z)

>> [B,A] = butter(1,0.5)
B = 0.5000    0.5000
A = 1.0000   -0.0000
>> [B,A] = butter(1,0.6)
B = 0.5792    0.5792
A = 1.0000    0.1584
>> [B,A] = butter(1,0.7)
B = 0.6625    0.6625
A = 1.0000    0.3249
>> [B,A] = butter(1,0.8)
B = 0.7548    0.7548
A = 1.0000    0.5095

Что я недопонимаю?


MATLAB не использует аналого-цифровое преобразование. Он проектирует фильтр в цифровой форме, поэтому идея билинейного преобразования может быть неприменима.
Фонон

1
@Phonon: этот ответ, кажется, указывает на то, что Matlab каким-то образом использует билинейное преобразование.
Андреас

В конце игры, но все заглавные функции H в z / s / \ omega обычно называются передаточной функцией. Когда аргументом является время или выборка, он называется импульсным откликом и обычно в нижнем регистре, h. Таким образом, передаточная функция - это преобразование (Z, Фурье, Лапласа в зависимости от приложения) импульсной характеристики.
Эмануэль Ландехольм

Ответы:


10

Пара вещей:

Перед выполнением подстановки необходимо предварительно обрезать частоту среза, выполнив подстановку:s=2Tz1z+1

ωc,w=2Ttan(ωcT2)

где - деформированная частота среза. Это необходимо, потому что билинейное преобразование отображает левую полуплоскость в области Лапласа (используется в конструкции аналогового фильтра) в единичную окружность в -домене нелинейным образом. Поэтому при приближении к скорости Найквиста (цифровые частоты ) приближение к прототипу аналогового фильтра становится неточным. z ± πωc,wz±π

Кроме того, вторым параметром, который вы передаете в butterфункцию, является нормализованная частота среза, а не интервал выборки . Нормализованная частота, используемая этой функцией, находится в интервале и равна отношению желаемой частоты среза к скорости Найквиста:( 0 , 1 )T(0,1)

ωn=ωc2πfs2

ωn=ωcπfs

ωn=ωcTπ

ωcomegac,wH(z)H(s)

H(s)

sz

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.