libdspl-2.0/dspl/dox/ru/filter_iir.dox

90 wiersze
4.3 KiB
Plaintext
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*! ****************************************************************************
\ingroup IIR_FILTER_DESIGN_GROUP
\fn int bilinear(double* bs, double* as, int ord, double* bz, double* az)
\brief Билинейное преобразование передаточной характеристики
аналогового фильтра \f$H(s)\f$, в передаточную характеристику
цифрового фильтра \f$H(z)\f$.
Функция рассчитывает коэффициенты передаточной характеристики \f$H(z)\f$
цифрового фильтра путем дробно-рациональной подстановки вида
\f[
s \leftarrow \frac{1 - z^{-1}}{1 - z^{-1}}.
\f]
Порядок цифрового фильтра при этом остается равным порядку аналогового фильтра,
а ось частот \f$\Omega\f$ аналогового фильтра связана c осью частот
\f$\omega\f$ цифрового фильтра соотношением:
\f[
\Omega = \tan(\omega / 2).
\f]
\param[in] bs Указатель на вектор коэффициентов
числителя передаточной функции \f$H(s)\f$
исходного аналогового фильтра. \n
Размер вектора `[ord+1 x 1]`. \n
Память должна быть выделена. \n \n
\param[in] as Указатель на вектор коэффициентов
знаменателя передаточной функции \f$H(s)\f$
исходного аналогового фильтра. \n
Размер вектора `[ord+1 x 1]`. \n
Память должна быть выделена. \n \n
\param[in] ord Порядок фильтра. \n
Количество коэффициентов числителя и знаменателя
передаточных функций \f$H(s)\f$ и \f$H(z)\f$
аналогового и цифрового фильтров равно `ord+1`. \n \n
\param[out] bz Указатель на вектор коэффициентов
числителя передаточной функции \f$H(z)\f$
полученного цифрового фильтра. \n
Размер вектора `[ord+1 x 1]`. \n
Память должна быть выделена. \n \n
\param[out] az Указатель на вектор коэффициентов
знаменателя передаточной функции \f$H(z)\f$
полученного цифрового фильтра. \n
Размер вектора `[ord+1 x 1]`. \n
Память должна быть выделена. \n \n
\return
`RES_OK` Фильтр рассчитан успешно. \n \n
В противном случае \ref ERROR_CODE_GROUP "код ошибки". \n
<h3>Пример использования функции `bilinear`</h3>
\include bilinear_test.c
Данная программа производит расчет передаточной характеристики аналогового
фильтра Чебышева первого рода, с частотой среза равной 1 рад/с, и производит
билинейное преобразование в цифровой, с частотой среза равной 0.5.
Результат работы программы:
\verbatim
bz[0] = 0.246 az[0] = 4.425
bz[1] = 0.983 az[1] = -3.318
bz[2] = 1.474 az[2] = 4.746
bz[3] = 0.983 az[3] = -2.477
bz[4] = 0.246 az[4] = 1.034
err = 0
\endverbatim
Кроме этого производится расчет АЧХ полученного цифрового фильтра и строится
график АЧХ пакетом GNUPLOT
\image html bilinear.png
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */