Функция расчета фазовой задержки цифрового фильтра.
phasedelay(num, respsize, resparr). phasedelay(num, den, respsize, resparr).
Имя | Тип данных | Описание |
---|---|---|
num | array | Массив коэффициентов числителя фильтра |
den | array | Массив коэффициентов знаменателя фильтра |
respsize | integer | Размер массива значений фазовой задержки, задается в промежутке от 1 до 16384 |
resparr | array | Выходной массив значений фазовой задержки фильтра |
phasedelay(num, respsize, resparr) – функция расcчитывает значения фазовой задержки для фильтра в классе КИХ цепей на основе коэффициентов числителя;
phasedelay(num, den, respsize, resparr) – функция рассчитывает значения фазовой задержки для фильтра в классе БИХ цепей на основе коэффициентов числителя и знаменателя;
Алгоритм расчета состоит из следующих ключевых операций:
Подробное описание фазовой задержки представлено в [1].
Имя | Тип данных | Описание |
---|---|---|
resparr | array | Массив значений фазовой задержки фильтра |
var Order: Integer, // Порядок фильтра Type: String, // Тип фильтра Cutoff: Double, // Частота среза фильтра RespSize: Double, // Размер массива фазовой задержки Num: Array = 10#0, // Числитель Den: Array = 10#0; // Знаменатель output RespArr: Array = 10#0;// Результирующий массив значений фазовой задержки Order = 9; Cutoff = 0.3; Type = "low"; RespSize = 10; butter(Num, Den, Order, Cutoff, Type); phasedelay(Num, Den, RespSize, RespArr);
В результате в массивах Num и Den будут записаны коэффициенты числителя и знаменателя цифрового НЧ-фильтра Баттерворта 9-го порядка с нормированной частотой среза 0.3, которые будет использованы для расчёта фазовой задержки, значения которой в свою очередь будут записаны в массив RespArr
Результат выполнения функции:
RespArr = [0 5.76429207639863 6.17871803046954 7.49862308627215 7.80163239976092 7.07000700967438 6.35100151232904 5.74421027215441 5.24532116494361 4.83632104054139];