Функция расчета переходной характеристики цифрового фильтра.
stepz(num, den, size, resp); Для БИХ-фильтров. stepz(num, size, resp); Для КИХ-фильтров.
Имя | Тип данных | Описание |
---|---|---|
num | array | Массив коэффициентов числителя фильтра |
den | array | Массив коэффициентов знаменателя фильтра |
size | integer | Размер рассчитываемой характеристики |
resp | array | Выходной массив значений переходной характеристики фильтра |
stepz(num, den, size, resp) – функция расчитывает значения переходной характеристики для фильтра в классе БИХ цепей. Точность расчета определяется количеством точек характеристики, которое задается параметром size (должно быть больше нуля);
stepz(num, size, resp) – функция расчитывает значения переходной характеристики для фильтра в классе КИХ цепей. Точность расчета определяется количеством точек характеристики, которое задается параметром size (должно быть больше нуля).
Алгоритм основан на расчете коэффициентов полинома, определяемого коэффициентами числителя и знаменателя фильтра. Подробное описание алгоритма представлено в [1].
Имя | Тип данных | Описание |
---|---|---|
resp | array | Массив значений переходной характеристики фильтра |
var Order: Integer, // Порядок фильтра Type: String, // Тип фильтра Cutoff: Double, // Частота среза фильтра RespSize: Double, // Размер рассчитываемой характеристики Num: Array = 10#0, // Числитель Den: Array = 10#0, // Знаменатель Resp: Array = 10#0;// Результирующий массив значений переходной характеристики фильтра Order = 9; Cutoff = 0.8; Type = "low"; RespSize = 10; butter(Num, Den, Order, Cutoff, Type); stepz(Num, Den, RespSize, Resp);
В результате в массиве Resp будут записаны коэффициенты переходной характеристики цифрового НЧ-фильтра Баттерворта 9-го порядка с нормированной частотой среза 0.8.
Результат выполнения функции:
Resp = [0.15736915 , 0.72606647 , 1.2228553 , 1.0163507 , 0.87046374 , 1.1032779 , 0.98226536 , 0.94659216 , 1.0762825 , 0.9458201];
var Order: Integer, // Порядок фильтра Type: String, // Тип фильтра Cutoff: Double, // Частота среза фильтра RespSize: Double, // Размер рассчитываемой характеристики WinType: String, // Вид оконной функции ScalingFLag: String, // Флаг масштабирования Num: Array = 10#0, // Числитель Den: Array = 10#0, // Знаменатель Resp: Array = 10#0;// Результирующий массив значений переходной характеристики фильтра Order = 9; Cutoff = 0.8; Type = "low"; WinType = "blackman"; ScalingFlag = "scale"; RespSize = 10; fir1(Num, Order, Cutoff, Type, WinType, ScalingFlag); stepz(Num, RespSize, Resp);
В результате в массив Resp будут записаны коэффициенты переходной характеристики цифрового НЧ-фильтра 9-го порядка с нормированной частотой среза 0.8, рассчитанного с использованием оконной функции Блэкмана с масштабированием.
Результат выполнения функции:
Resp = [9.3358735E-19 , 0.0027192563 , 0.0027192563 , -0.075860175 , 0.5 , 1.0758602 , 0.99728074 , 0.99728074 , 1 , 1];