impz

Функция расчета импульсной характеристики цифрового фильтра.

Синтаксис:

impz(num, den, size, resp);  Для БИХ-фильтров.
impz(num, size, resp);  для КИХ-фильтров.

Аргументы:

Имя Тип данных Описание
num array Массив коэффициентов числителя фильтра
den array Массив коэффициентов знаменателя фильтра
size integer Размер рассчитываемой характеристики
resp array Выходные коэффициенты импульсной характеристики фильтра

Описание:

impz(num, den, size, resp) – функция рассчитывает импульсную характеристику цифрового БИХ-фильтра. Точность расчета определяется количеством точек характеристики, которое задается параметром size (должно быть больше нуля);

impz(num, size, resp) – функция рассчитывает импульсную характеристику цифрового КИХ-фильтра. В данном случае, поскольку КИХ-фильтр всегда устойчив, для расчета достаточно коэффициентов числителя фильтра. Точность расчета определяется количеством точек характеристики, которое задается параметром size (должно быть больше нуля).

Если параметр size не соответствует размерности результирующего массива resp, размерность массива будет изменена в соответствии с параметром size. Важно. Для КИХ-фильтра размерность массива импульсной характеристики должна быть больше порядка фильтра.

Процедура расчета заключается в получении отклика фильтра на единичный импульс [1].

Результат:

Имя Тип данных Описание
resp array Массив коэффициентов импульсной характеристики цифрового фильтра

Пример 1:

var   Order: integer, // Порядок фильтра
   Type: string, // Тип фильтра   
   Cutoff: double, // Частота среза фильтра
   WinType: string, // Вид оконной функции
   ScalingFLag: string, // Флаг масштабирования   
   Num: array = 11#0, // Числитель   
   Resp: array = 11#0,   // Импульсная характеристика
   Size: integer;   // Размер характеристики   
Order = 10;
Cutoff = 0.3;
Type = "low";
WinType = "blackman";
ScalingFlag = "scale";
Size = 11;
fir1(Num, Order, Cutoff, Type, WinType, ScalingFlag);
impz(Num, Size, Resp);

В результате в массиве Resp будут записаны коэффициенты импульсной характеристики цифрового НЧ-фильтра 10-го порядка с нормированной частотой среза 0.3, рассчитанного с использованием оконной функции Блэкмана и масштабированием.

Результат выполнения функции:

Resp = [9.8043687E-19, -0.0020873, 0.0073051, 0.085631, 0.2426902, 0.3329204, 0.2426902, 0.085631, 0.0073051, -0.0020873, 9.043687E-19];

Пример 2:

var   Order: integer, // Порядок фильтра
   Type: string, // Тип фильтра   
   Cutoff: double, // Частота среза фильтра   
   Num: array = 10#0, // Числитель
   Den: array = 10#0; // Знаменатель   
   Resp: array = 10#0,   // Импульсная характеристика
   Size: integer;   // Размер характеристики
Order = 9;
Cutoff = 0.3;
Type = "low";
Size = 10;
butter(Num, Den, Order, Cutoff, Type);
impz(Num, Den, Size, Resp);

В результате в массиве Resp будут записаны коэффициенты импульсной характеристики цифрового НЧ-фильтра Баттерворта 9-го порядка с нормированной частотой среза 0.3.

Результат выполнения функции:

Resp = [0.00013, 0.0017, 0.0099, 0.0369, 0.0957, 0.1837, 0.2672, 0.2923, 0.2246, 0.0853];

Сопутствующие материалы

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