/*! ****************************************************************************
\ingroup DFT_GROUP
\fn int fourier_series_dec(double* t, double* s, int nt,
double period, int nw, double* w, complex_t* y)
\brief Расчет коэффициентов разложения в ряд Фурье
Функция рассчитывает спектр периодического сигнала при усечении ряда Фурье
\param[in] t Указатель на массив моментов времени дискретизации
исходного сигнала `s`
размер вектора вектора `[nt x 1]`.
Память должна быть выделена.
\param[in] s Указатель на массив значений исходного сигнала`s`
размер вектора вектора `[nt x 1]`.
Память должна быть выделена.
\param[in] nt размер выборки исходного сигнала.
Значение должно быть положительным.
\param[in] period Период повторения сигнала.
\param[in] nw Размер усеченного ряда Фурье.
\param[out] w Указатель на массив частот спектра
периодического сигнала.
Размер вектора `[nw x 1]`.
Память должна быть выделена.
\param[out] y Указатель массив комплексных значений спектра
периодического сигнала.
Размер вектора `[nw x 1]`.
Память должна быть выделена.
\return
`RES_OK` Массивы нулей и полюсов рассчитаны успешно.
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".
\note
Для расчета спектра сигнала используется численное интегрирование
исходного сигнала методом трапеций. Данная функция не является
эффективной. Для увеличения скорости расчета спектра сигнала
целесообразнее использовать алгоритмы дискретного
и быстрого преобразования Фурье.
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup DFT_GROUP
\fn int fourier_series_rec(double* w, complex_t* s, int nw,
double *t, int nt, complex_t* y)
\brief Восстановление сигнала при усечении ряда Фурье
Функция рассчитывает восстановленный сигнал при усечении ряда Фурье:
\f[
s(t) = \sum\limits_{n = 0}^{n_{\omega}-1} S(\omega_n) \exp(j\omega_n t)
\f]
\param[in] w Указатель на массив частот \f$\omega_n\f$
усеченного ряда Фурье.
Размер вектора `[nw x 1]`.
Память должна быть выделена и заполнена.
\param[in] s Указатель на массив значений спектра
\f$S(\omega_n)\f$.
Размер вектора `[nw x 1]`.
Память должна быть выделена и заполнена.
\param[in] nw Количество членов усеченного ряда Фурье.
Значение должно быть положительным.
\param[in] t Указатель на массив временных отсчетов
восстановленного сигнала.
Размер вектора `[nt x 1]`.
Память должна быть выделена и заполнена.
\param[in] nt Размер вектора времени и восстановленного сигнала.
\param[out] y Указатель на массив восстановленного сигнала.
Размер вектора `[nt x 1]`.
Память должна быть выделена.
\return
`RES_OK` Массивы нулей и полюсов рассчитаны успешно.
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".
\note
Выходной восстановленный сигнал в общем случае является комплексным.
Однако при соблюдении свойств симметрии векторов `w` и `s` относительно
нулевой частоты получим мнимую часть элементов вектора `y` на уровне ошибок
округления числа с двойной точностью. Ничтожно малую мнимую часть в этом случае
можно игнорировать.
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */