libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
|
Функции | |
int | freqs (double *b, double *a, int ord, double *w, int n, complex_t *h) |
Расчет комплексного коэффициента передачи ![]() | |
int | filter_freq_resp (double *b, double *a, int ord, double *w, int n, int flag, double *mag, double *phi, double *tau) |
Расчет амплитудно-частотной (АЧХ), фазочастотной характеристик (ФЧХ), а также группового времени запаздывания (ГВЗ) цифрового или аналогового или фильтра. Подробнее... | |
int | freqz (double *b, double *a, int ord, double *w, int n, complex_t *h) |
Расчет комплексного коэффициента передачи ![]() | |
Подробное описание
Функции анализа аналоговых и цифровых фильтров
Функции
◆ filter_freq_resp()
int filter_freq_resp | ( | double * | b, |
double * | a, | ||
int | ord, | ||
double * | w, | ||
int | n, | ||
int | flag, | ||
double * | mag, | ||
double * | phi, | ||
double * | tau | ||
) |
Расчет амплитудно-частотной (АЧХ), фазочастотной характеристик (ФЧХ), а также группового времени запаздывания (ГВЗ) цифрового или аналогового или фильтра.
Функция рассчитывает АЧХ, ФЧХ и ГВЗ аналогового или цифрового фильтра, заданного передаточной характеристикой , или
соответственно
- Аргументы
-
[in] b Указатель на вектор коэффициентов числителя передаточной функции .
Размер вектора[ord+1 x 1]
.
[in] a Указатель на вектор коэффициентов знаменателя передаточной функции .
Размер вектора[ord+1 x 1]
.
[in] ord Порядок фильтра. Количество коэффициентов числителя и знаменателя передаточной функции равно
ord+1
.
[in] w Указатель на вектор значений циклической частоты (рад/с), для которого будет рассчитаны АЧХ, ФЧХ и ГВЗ аналогового фильтра, если установлен флаг
DSPL_FLAG_ANALOG
.
Размер вектора[n x 1]
.
В случае если флагDSPL_FLAG_ANALOG
не установлен, то вектор частотыw
используется как нормированная частота комплексного коэффициента передачицифрового фильтра.
В этом случае характеристика цифрового фильтра является-периодической, и вектор частоты может содержать произвольные значения, однако целесообразно задавать его от 0 до
, а такжет от 0 до
, или от
до
.
[in] n Размер вектора циклической частоты w
.
[in] flag Комбинация флагов, которые задают расчет параметров:
DSPL_FLAG_ABALOG Коэффициенты относятся к аналоговому фильтру DSPL_FLAG_LOGMAG АЧХ рассчитывать в логарифмическом масштабе DSPL_FLAG_UNWRAP раскрывать периодичность ФЧХ
[out] mag Указатель на вектор АЧХ.
Размер вектора[n x 1]
.
Память должна быть выделена.
Если указательNULL
, то расчет АЧХ не производится.
[out] phi Указатель на вектор ФЧХ.
Размер вектора[n x 1]
.
Память должна быть выделена.
Если указательNULL
, то расчет ФЧХ не производится.
[out] tau Указатель на вектор ГВЗ.
Размер вектора[n x 1]
.
Память должна быть выделена.
Если указательNULL
, то расчет ГВЗ не производится.
- Возвращает
RES_OK
Параметры фильтра рассчитаны успешно.
В противном случае код ошибки.
Пример использования функции filter_freq_resp
:
Результат работы программы:
b[ 0] = 1.002 a[ 0] = 1.002 b[ 1] = 0.000 a[ 1] = 2.618 b[ 2] = 0.000 a[ 2] = 3.418 b[ 3] = 0.000 a[ 3] = 2.615 b[ 4] = 0.000 a[ 4] = 1.000
В каталоге dat
будут созданы три файла:
butter_ap_test_mag.txt АЧХ фильтра butter_ap_test_phi.txt ФЧХ фильтра butter_ap_test_tau.txt ГВЗ фильтра
Кроме того программа GNUPLOT произведет построение следующих графиков по сохраненным в файлах данным:

См. определение в файле filter_an.c строка 35
◆ freqs()
int freqs | ( | double * | b, |
double * | a, | ||
int | ord, | ||
double * | w, | ||
int | n, | ||
complex_t * | h | ||
) |
Расчет комплексного коэффициента передачи аналогового фильтра.
Функция рассчитывает значения комплексного коэффициента передачи аналогового фильтра, заданного коэффициентами передаточной функции
:
где - порядок фильтра (параметр
ord
).
Комплексный коэффициент передачи рассчитывается путем подстановки .
- Аргументы
-
[in] b Указатель на вектор коэффициентов числителя передаточной функции .
Размер вектора[ord+1 x 1]
.
[in] a Указатель на вектор коэффициентов знаменателя передаточной функции .
Размер вектора[ord+1 x 1]
.
[in] ord Порядок фильтра. Количество коэффициентов числителя и знаменателя передаточной функции равно
ord+1
.
[in] w Указатель на вектор значений циклической частоты (рад/с), для которого будет рассчитан комплексный коэффициент передачи
.
Размер вектора[n x 1]
.
[in] n Размер вектора циклической частоты w
.
[out] h Указатель на вектор комплексного коэффициента передачи , рассчитанного для циклической частоты
w
.
Размер вектора[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
Комплексноый коэффициент передачи рассчитан успешно.
В противном случае код ошибки.
См. определение в файле filter_an.c строка 140
Используется в filter_freq_resp().
◆ freqz()
int freqz | ( | double * | b, |
double * | a, | ||
int | ord, | ||
double * | w, | ||
int | n, | ||
complex_t * | h | ||
) |
Расчет комплексного коэффициента передачи цифрового фильтра.
Функция рассчитывает значения комплексного коэффициента передачи цифрового фильтра, заданного коэффициентами передаточной функции
:
где - порядок фильтра (параметр
ord
).
Комплексный коэффициент передачи рассчитывается путем подстановки .
- Аргументы
-
[in] b Указатель на вектор коэффициентов числителя передаточной функции .
Размер вектора[ord+1 x 1]
.
[in] a Указатель на вектор коэффициентов знаменателя передаточной функции .
Размер вектора[ord+1 x 1]
.
[in] ord Порядок фильтра. Количество коэффициентов числителя и знаменателя передаточной функции равно
ord+1
.
[in] w Указатель на вектор значений нормированной циклической частоты , для которого будет рассчитан комплексный коэффициент передачи
.
Размер вектора[n x 1]
.
[in] n Размер вектора нормированной циклической частоты w
.
[out] h Указатель на вектор комплексного коэффициента передачи , рассчитанного для циклической частоты
w
.
Размер вектора[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
Комплексный коэффициент передачи расcчитан успешно.
В противном случае код ошибки.
- Заметки
- Комплексный коэффициент передачи
цифрового фильтра представляет собой
периодическую функцию нормированной циклической частоты
. Поэтому анализ цифровых фильтров целесообразно вести на одном периоде повторения
, т.е. в интервале
от 0 до
, или от
до
.
Кроме того известно, что для фильтра с вещественными коэффициентами, а значит, анализ цифрового фильтра с вещественными коэффициентами достаточно вести для нормированной частоты
от 0 до
.
См. определение в файле filter_an.c строка 445
Используется в filter_freq_resp().
Документация по libdspl-2.0. Последние изменения: Пн 4 Ноя 2019 18:20:39. Создано системой
