kopia lustrzana https://github.com/Dsplib/libdspl-2.0
200 wiersze
8.9 KiB
Plaintext
200 wiersze
8.9 KiB
Plaintext
|
/*! ****************************************************************************
|
|||
|
\ingroup IIR_FILTER_DESIGN_GROUP
|
|||
|
\fn int low2high (double* b, double* a, int ord, double w0, double w1,
|
|||
|
double* beta, double* alpha)
|
|||
|
\brief Частотное преобразование ФНЧ-ФВЧ
|
|||
|
|
|||
|
Функция производит перобразование передаточной функции \f$ H(s) \f$
|
|||
|
аналогового ФНЧ с частотой среза `w0` рад/c
|
|||
|
в передаточную функцию \f$ F(s) \f$ аналоговго ФВЧ с частотой среза `w1` рад/c.
|
|||
|
|
|||
|
Неравномерность АЧХ в полосе пропускания, уровень подавления в полосе
|
|||
|
заграждения и порядок фильтра остаются неизменными.
|
|||
|
|
|||
|
\param[in] b Указатель на вектор коэффициентов
|
|||
|
числителя передаточной функции \f$H(s)\f$
|
|||
|
исходного аналогового ФНЧ.<BR>
|
|||
|
Размер вектора `[ord+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in] a Указатель на вектор коэффициентов знаменателя
|
|||
|
передаточной функции \f$H(s)\f$
|
|||
|
исходного аналогового ФНЧ.<BR>
|
|||
|
Размер вектора `[ord+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in] ord Порядок исходного фильтра и
|
|||
|
фильтра после переобразования.<BR><BR>
|
|||
|
|
|||
|
\param[in] w0 Частота среза исходного ФНЧ.<BR><BR>
|
|||
|
|
|||
|
\param[in] w1 Требуемая частота среза ФВЧ
|
|||
|
после преобразования.<BR><BR>
|
|||
|
|
|||
|
|
|||
|
\param[in,out] beta Указатель на вектор коэффициентов
|
|||
|
числителя передаточной функции \f$F(s)\f$
|
|||
|
ФВЧ после преобразования.<BR>
|
|||
|
Размер вектора `[ord+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in,out] alpha Указатель на вектор коэффициентов знаменателя
|
|||
|
передаточной функции \f$F(s)\f$
|
|||
|
аналогового ФВЧ после преобразования.<BR>
|
|||
|
Размер вектора `[ord+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
|
|||
|
\return
|
|||
|
`RES_OK` Преоборазование расчитано успешно.<BR><BR>
|
|||
|
В противном случае
|
|||
|
\ref ERROR_CODE_GROUP "код ошибки".<BR>
|
|||
|
|
|||
|
\author
|
|||
|
Бахурин Сергей
|
|||
|
www.dsplib.org
|
|||
|
***************************************************************************** */
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*! ****************************************************************************
|
|||
|
\ingroup IIR_FILTER_DESIGN_GROUP
|
|||
|
\fn int low2low(double* b, double* a, int ord, double w0, double w1,
|
|||
|
double* beta, double* alpha)
|
|||
|
\brief Частотное преобразование ФНЧ-ФНЧ
|
|||
|
|
|||
|
Функция производит перобразование передаточной функции \f$ H(s) \f$
|
|||
|
аналогового ФНЧ с частотой среза `w0` рад/c
|
|||
|
в передаточную функцию \f$ F(s) \f$ аналоговго ФНЧ с частотой среза `w1` рад/c.
|
|||
|
|
|||
|
Неравномерность АЧХ в полосе пропускания, уровень подавления в полосе
|
|||
|
заграждения и порядок фильтра остаются неизменными.
|
|||
|
|
|||
|
\param[in] b Указатель на вектор коэффициентов
|
|||
|
числителя передаточной функции \f$H(s)\f$
|
|||
|
исходного аналогового ФНЧ.<BR>
|
|||
|
Размер вектора `[ord+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in] a Указатель на вектор коэффициентов знаменателя
|
|||
|
передаточной функции \f$H(s)\f$
|
|||
|
исходного аналогового ФНЧ.<BR>
|
|||
|
Размер вектора `[ord+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in] ord Порядок исходного фильтра и
|
|||
|
фильтра после переобразования.<BR><BR>
|
|||
|
|
|||
|
\param[in] w0 Частота среза исходного ФНЧ.<BR><BR>
|
|||
|
|
|||
|
\param[in] w1 Требуемая частота среза ФНЧ
|
|||
|
после преобразования.<BR><BR>
|
|||
|
|
|||
|
|
|||
|
\param[in,out] beta Указатель на вектор коэффициентов
|
|||
|
числителя передаточной функции \f$F(s)\f$
|
|||
|
ФНЧ после преобразования.<BR>
|
|||
|
Размер вектора `[ord+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in,out] alpha Указатель на вектор коэффициентов знаменателя
|
|||
|
передаточной функции \f$F(s)\f$
|
|||
|
аналогового ФНЧ после преобразования.<BR>
|
|||
|
Размер вектора `[ord+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
|
|||
|
\return
|
|||
|
`RES_OK` Преоборазование расчитано успешно.<BR><BR>
|
|||
|
В противном случае
|
|||
|
\ref ERROR_CODE_GROUP "код ошибки".<BR>
|
|||
|
|
|||
|
\author
|
|||
|
Бахурин Сергей
|
|||
|
www.dsplib.org
|
|||
|
***************************************************************************** */
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*! ****************************************************************************
|
|||
|
\ingroup IIR_FILTER_DESIGN_GROUP
|
|||
|
\fn int ratcompos( double* b, double* a, int n,
|
|||
|
double* c, double* d, int p,
|
|||
|
double* beta, double* alpha)
|
|||
|
\brief Рациональная композиця
|
|||
|
|
|||
|
Функция рассчитывает композицию вида \f$Y(s) = (H \circ F)(s) = H(F(s))\f$, где
|
|||
|
|
|||
|
\f[
|
|||
|
H(s) = \frac{\sum\limits_{m = 0}^{n} b_m s^m}
|
|||
|
{\sum\limits_{k = 0}^{n} a_k s^k}, \ \ \ \
|
|||
|
F(s) = \frac{\sum\limits_{m = 0}^{p} d_m s^m}
|
|||
|
{\sum\limits_{k = 0}^{p} с_k s^k}, \ \ \ \
|
|||
|
Y(s) = \frac{\sum\limits_{m = 0}^{n \cdot p} \beta_m s^m}
|
|||
|
{\sum\limits_{k = 0}^{n \cdot p} \alpha_k s^k}
|
|||
|
\f]
|
|||
|
|
|||
|
Функция рациональной композиции необходима для произведения частотных
|
|||
|
преобразований передаточных характеристик аналоговых и цифровых фильтров,
|
|||
|
а также для билинейного преобразования передаточных характеристик аналоговых
|
|||
|
фильтров в соответствующие передаточные характеристики цифровых фильтров.
|
|||
|
|
|||
|
\param[in] b Указатель на вектор коэффициентов
|
|||
|
числителя функции \f$H(s)\f$.<BR>
|
|||
|
Размер вектора `[n+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in] a Указатель на вектор коэффициентов знаменателя
|
|||
|
функции \f$H(s)\f$.<BR>
|
|||
|
Размер вектора `[n+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in] n Порядок полиномов рациональной
|
|||
|
функции \f$H(s)\f$.<BR><BR>
|
|||
|
|
|||
|
|
|||
|
\param[in] c Указатель на вектор коэффициентов
|
|||
|
числителя функции \f$F(s)\f$.<BR>
|
|||
|
Размер вектора `[p+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in] d Указатель на вектор коэффициентов знаменателя
|
|||
|
функции \f$F(s)\f$.<BR>
|
|||
|
Размер вектора `[p+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in] p Порядок полиномов рациональной
|
|||
|
функции \f$F(s)\f$.<BR><BR>
|
|||
|
|
|||
|
\param[in,out] beta Указатель на вектор коэффициентов
|
|||
|
числителя функции \f$Y(s) = (H \circ F)(s)\f$.<BR>
|
|||
|
Размер вектора `[n*p+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
\param[in,out] alpha Указатель на вектор коэффициентов знаменателя
|
|||
|
функции \f$Y(s) = (H \circ F)(s)\f$.<BR>
|
|||
|
Размер вектора `[n*p+1 x 1]`.<BR>
|
|||
|
Память должна быть выделена.<BR><BR>
|
|||
|
|
|||
|
|
|||
|
\return
|
|||
|
`RES_OK` Рациональная композиция рассчитана успешно.<BR><BR>
|
|||
|
В противном случае
|
|||
|
\ref ERROR_CODE_GROUP "код ошибки".<BR>
|
|||
|
|
|||
|
\author
|
|||
|
Бахурин Сергей
|
|||
|
www.dsplib.org
|
|||
|
***************************************************************************** */
|
|||
|
|