Функции

int dspl_conv_cmplx (double *aR, double *aI, int na, double *bR, double *bI, int nb, double *cR, double *cI)
 Линейная свертка двух комплексных векторов Подробнее...
 
int dspl_filter_iir (double *b, double *a, int ord, double *x, int n, double *y)
 Фильтрация вещественного сигнала вещественным БИХ-фильтром Подробнее...
 

Подробное описание

Функции для расчета циклической и линейной сверток, а также цифровой КИХ и БИХ фильтрации.

Функции

◆ dspl_conv_cmplx()

int dspl_conv_cmplx ( double *  aR,
double *  aI,
int  na,
double *  bR,
double *  bI,
int  nb,
double *  cR,
double *  cI 
)

Линейная свертка двух комплексных векторов

Функция рассчитывает линейную свертку двух векторов \( c = a * b\).

Аргументы
[in]aRУказатель вектор реальной части первого вектора \(a\).
Размер вектора [na x 1].

[in]aIУказатель вектор мнимой части первого вектора \(a\).
Размер вектора [na x 1].
Указатель может быть NULL, если первый вектор \(a\) чисто вещественный.

[in]naРазмер первого вектора.

[in]bRУказатель вектор реальной части второго вектора \(b\).
Размер вектора [nb x 1].

[in]bIУказатель вектор мнимой части второго вектора \(b\).
Размер вектора [nb x 1].
Указатель может быть NULL, если первый вектор \(b\) чисто вещественный.

[in]nbРазмер второго вектора.

[out]cRУказатель на вектор реальной части свертки \( c = a * b\).
Размер вектора [na + nb - 1 x 1].
Память должна быть выделена.

[out]cIУказатель на вектор мнимой части свертки \( c = a * b\).
Размер вектора [na + nb - 1 x 1].
Этот указатель может быть NULL только в случае если aI == NULL и bI == NULL (оба входных вектора чисто вещественные).
В противном случае если хотя бы один входной вектор имеет мнимую часть, то память должна быть выделена и указатель не может быть NULL.

Возвращает
DSPL_OK если свертка расчитана успешно.
В противном случае код ошибки:
DSPL_ERROR_PTR Ошибка указателя.
DSPL_ERROR_SIZE Размеры входных векторов некорректные na<1 или nb < 1.

Автор
Бахурин Сергей www.dsplib.org

◆ dspl_filter_iir()

int dspl_filter_iir ( double *  b,
double *  a,
int  ord,
double *  x,
int  n,
double *  y 
)

Фильтрация вещественного сигнала вещественным БИХ-фильтром

Функция рассчитывает выход фильтра заданного выражением

\[ H(z) = \frac{\sum_{n = 0}^{N-1} b_n \cdot z^{-n}} {1+{\frac{1}{a_0}}\sum_{m = 1}^{M-1} a_m \cdot z^{-n}}, \]

где \(a_0\) не может быть 0, \(N=M=\)ord.

Аргументы
[in]bУказатель на вектор коэффициентов числителя передаточной функции БИХ-фильтра.
Размер вектора [ord + 1 x 1].

[in]aУказатель на вектор коэффициентов знаменателя передаточной функции фильтра IIR.
Размер вектора [ord + 1 x 1].
Этот указатель может быть NULL, тогда фильтрация производится без использования рекурсивной части.

[in]ordПорядок фильтра. Количество коэффициентов числителя и знаменателя передаточной функции БИХ-фильтра равно ord + 1.

[in]xУказатель на вектор отсчетов входного сигнала.
Размер вектора [n x 1].

[in]nДлина входного сигнала.

[out]yУказатель на вектор выходных отсчетов фильтра.
Размер вектора [n x 1].
Память должна быть выделена заранее.

Возвращает
DSPL_OK Если фильтрация произведена успешно.
В противном случае код ошибки:
DSPL_ERROR_PTR Ошибка указателя: b==NULL или x==NULL или y==NULL.
DSPL_ERROR_SIZE Ошибка порядка фильтра ord < 1 или n < 1.
DSPL_ERROR_FILTER_A0 Ошибка a[0] == 0 .
Автор
Бахурин Сергей www.dsplib.org

Oбнаружили ошибку в тексте? Выделите ее мышкой и нажмите
Описание (необязательно)
Закрыть Х