stepz
Функция расчета переходной характеристики цифрового фильтра.
Синтаксис
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 |
Массив значений переходной характеристики фильтра |
Пример 1
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];
Пример 2
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];
Дополнительные материалы
- Сергиенко А.Б. Цифровая обработка сигналов. СПб, Питер, 2011, 768 стр.