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];

Дополнительные материалы

  1. Сергиенко А.Б. Цифровая обработка сигналов. СПб, Питер, 2011, 768 стр.