libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
Базовые функции и работа с массивами данных

Функции

int log_cmplx (complex_t *x, int n, complex_t *y)
 Натуральный логарифм комплексного аргумента x. Подробнее...
 
int sinc (double *x, int n, double a, double *y)
 Функция \( \textrm{sinc}(x,a) = \frac{\sin(ax)}{ax}\). Подробнее...
 
int sqrt_cmplx (complex_t *x, int n, complex_t *y)
 Квадратный корень из комплексного вектора x (поэлементный). Подробнее...
 

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

Функции

◆ log_cmplx()

int log_cmplx ( complex_t x,
int  n,
complex_t y 
)

Натуральный логарифм комплексного аргумента x.


Функция рассчитывает значения натурального логарифма комплексного аргумента, заданного вектором x длины n:

\[ \textrm{Ln}(x) = j \varphi + \ln(|x|), \]

где \(\varphi\) — фаза комплексного числа.

Аргументы
[in]xУказатель на комплексный вектор аргумента логарифма.
Размер вектора [n x 1].

[in]nРазмер входного и выходного векторов x и y.

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

Возвращает
RES_OK если значение функции рассчитано успешно.
В противном случае код ошибки:
Например при выполнении следующего кода
complex_t x[3] = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};
complex_t y[3];
int k;
log_cmplx(x, 3, y);
for(k = 0; k < 3; k++)
printf("log_cmplx(%.1f%+.1fj) = %.3f%+.3fj\n",
RE(x[k]), IM(x[k]), RE(y[k]), IM(y[k]));
int log_cmplx(complex_t *x, int n, complex_t *y)
Натуральный логарифм комплексного аргумента x.
Definition: log_cmplx.c:139
#define RE(x)
Макрос определяющий реальную часть комплексного числа.
Definition: dspl.h:420
double complex_t[2]
Описание комплексного типа данных.
Definition: dspl.h:86
#define IM(x)
Макрос определяющий мнимую часть комплексного числа.
Definition: dspl.h:478

Результатом работы будет
log_cmplx(1.0+2.0j) = 0.805+1.107j
log_cmplx(3.0+4.0j) = 1.609+0.927j
log_cmplx(5.0+6.0j) = 2.055+0.876j
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле log_cmplx.c строка 139

Используется в asin_cmplx().

◆ sinc()

int sinc ( double *  x,
int  n,
double  a,
double *  y 
)

Функция \( \textrm{sinc}(x,a) = \frac{\sin(ax)}{ax}\).


Функция рассчитывает значения функции для вещественного вектора x.

Аргументы
[in]xУказатель на вектор переменной \( x \).
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер входного вектора x.

[in]aПараметр функции \( \textrm{sinc}(x,a) = \frac{\sin(ax)}{ax}\).

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

Возвращает
RES_OK — расчёт произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле sinc.c строка 88

◆ sqrt_cmplx()

int sqrt_cmplx ( complex_t x,
int  n,
complex_t y 
)

Квадратный корень из комплексного вектора x (поэлементный).


Функция рассчитывает значения квадратного корня комплексного аргумента, заданного вектором x длины n:

\[ y(k) = \sqrt{x(k)}, \qquad k = 0 \ldots n-1. \]

Аргументы
[in]xУказатель на вектор аргумента квадратного корня.
Размер вектора [n x 1].

[in]nРазмер входного и выходного векторов x и y.

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

Возвращает
RES_OK если значение функции рассчитано успешно .
В противном случае код ошибки:
Например при выполнении следующего кода
complex_t x[3] = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};
complex_t y[3];
int k;
sqrt_cmplx(x, 3, y);
for(k = 0; k < 3; k++)
printf("sqrt_cmplx(%.1f%+.1fj) = %.3f%+.3fj\n",
RE(x[k]), IM(x[k]), RE(y[k]), IM(y[k]));
int sqrt_cmplx(complex_t *x, int n, complex_t *y)
Квадратный корень из комплексного вектора x (поэлементный).
Definition: sqrt_cmplx.c:136

Результатом работы будет
sqrt_cmplx(1.0+2.0j) = 1.272+0.786j
sqrt_cmplx(3.0+4.0j) = 2.000+1.000j
sqrt_cmplx(5.0+6.0j) = 2.531+1.185j
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле sqrt_cmplx.c строка 136

Используется в asin_cmplx(), ellip_acd_cmplx() и ellip_asn_cmplx().