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 стр.