grpdelay
Функция расчета группового времени задержки цифрового фильтра.
Синтаксис
grpdelay(num, den, size, resp); Для БИХ-фильтров.
grpdelay(num, size, resp); для КИХ-фильтров.
Аргументы
| Имя | Тип данных | Описание |
|---|---|---|
| num | array |
Массив коэффициентов числителя фильтра |
| den | array |
Массив коэффициентов знаменателя фильтра |
| size | integer |
Размер рассчитываемой характеристики |
| resp | array |
Выходные коэффициенты группового времени задержки фильтра |
Описание
grpdelay(num, den, size, resp) – функция рассчитывает групповое время задержки (ГВЗ) цифрового БИХ-фильтра.
Точность расчета определяется количеством точек характеристики, которое задается параметром size (должно быть больше нуля);
grpdelay(num, size, resp) – функция рассчитывает групповое время задержки цифрового КИХ-фильтра.
В данном случае, поскольку КИХ-фильтр всегда устойчив, для расчета достаточно коэффициентов числителя фильтра. Точность
расчета определяется количеством точек характеристики, которое задается параметром size (должно быть больше нуля).
Если параметр size не соответствует размерности результирующего массива resp, размерность массива будет изменена в соответствии с параметром size.
Важно. В связи с особенностями расчета ГВЗ, размерность результирующего массива не должна превышать 16384 отсчета.
Алгоритм расчета группового времени задержки для цифрового фильтра можно найти в [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);
grpdelay(Num, Size, Resp);
В результате в массиве Resp будут записаны коэффициенты ГВЗ цифрового НЧ-фильтра 10-го порядка с нормированной частотой среза 0.3, рассчитанного с использованием оконной функции Блэкмана и масштабированием.
Результат выполнения функции:
Resp = [0 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5];
Пример 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);
grpdelay(Num, Den, Size, Resp);
В результате в массиве Resp будут записаны коэффициенты ГВЗ цифрового НЧ-фильтра Баттерворта 9-го порядка с нормированной частотой среза 0.3.
Результат выполнения функции:
Resp = [5.6511117 , 6.0004102 , 7.4958522 , 13.139547 , 5.3966128 , 3.2579572 , 2.3599304 , 1.8938622 , 1.6380904 , 1.5075202]
Сопутствующие материалы
- Сергиенко А.Б. Цифровая обработка сигналов. СПб, БХВ-Петербург, 2011, 768с.