kopia lustrzana https://github.com/Dsplib/libdspl-2.0
99 wiersze
5.8 KiB
Plaintext
99 wiersze
5.8 KiB
Plaintext
|
||
/*! **************************************************************************************************
|
||
\ingroup DFT_GROUP
|
||
\fn int goertzel(double *x, int n, int *ind, int k, complex_t *y)
|
||
\brief Алгоритм Герцеля для расчета отдельных спектральных отсчетов
|
||
дискретного преобразования Фурье вещественного сигнала `x`.
|
||
|
||
Данный алгоритм позволяет рассчитать `k` спектральных отсчетов `n`-точечного ДПФ,
|
||
заданных вектором индексов `ind`.
|
||
|
||
\param[in] x Указатель на вектор вещественного входного сигнала.<BR>
|
||
Размер вектора `[n x 1]`.<BR><BR>
|
||
|
||
\param[in] n Размер вектора входного сигнала.<BR><BR>
|
||
|
||
\param[in] ind Указатель на вектор индексов спектральных отсчетов для расчета которых
|
||
будет использоваться алгоритм Герцеля.<BR>
|
||
Размер вектора `[k x 1]`.<BR><BR>
|
||
|
||
\param[in] k Размер вектора индексов спектральных отсчетов `ind`.<BR><BR>
|
||
|
||
|
||
\param[out] y Указатель на вектор спектральных отсчетов,
|
||
соответствующих номерам `ind`.<BR>
|
||
Размер вектора `[k x 1]`.<BR>
|
||
Память должна быть выделена.<BR><BR>
|
||
|
||
\return
|
||
`RES_OK` Функция выполнена успешно. <BR>
|
||
В противном случае \ref ERROR_CODE_GROUP "код ошибки".<BR>
|
||
|
||
\note
|
||
Алгоритм Герцеля эффективен когда необходимо рассчитать несколько спектральных отсчетов
|
||
сигнала большой длительности. <BR>
|
||
Однако, размер `k` вектора индексов `ind` может быть произвольным,
|
||
в том числе больше длины сигнала `n`. В этом случае некоторые спектральные отсчеты
|
||
будут повторяться, но это не повлечет за собой ошибки выполнения.<BR>
|
||
Значения индексов спектральных отсчетов `ind` также могут быть произвольными целыми,
|
||
в том числе и отрицательными. В этом случае будут рассчитаны спектральные отсчеты с индексами
|
||
по модулю `n`.<BR>
|
||
|
||
|
||
\author
|
||
Бахурин Сергей.
|
||
www.dsplib.org
|
||
|
||
**************************************************************************************************** */
|
||
|
||
|
||
|
||
|
||
|
||
/*! **************************************************************************************************
|
||
\ingroup DFT_GROUP
|
||
\fn int goertzel_cmplx(complex_t *x, int n, int *ind, int k, complex_t *y)
|
||
\brief Алгоритм Герцеля для расчета отдельных спектральных отсчетов
|
||
дискретного преобразования Фурье комплексного сигнала `x`.
|
||
|
||
Данный алгоритм позволяет рассчитать `k` спектральных отсчетов `n`-точечного ДПФ,
|
||
заданных вектором индексов `ind`.
|
||
|
||
\param[in] x Указатель на вектор комплексного входного сигнала.<BR>
|
||
Размер вектора `[n x 1]`.<BR><BR>
|
||
|
||
\param[in] n Размер вектора входного сигнала.<BR><BR>
|
||
|
||
\param[in] ind Указатель на вектор индексов спектральных отсчетов для расчета которых
|
||
будет использоваться алгоритм Герцеля.<BR>
|
||
Размер вектора `[k x 1]`.<BR><BR>
|
||
|
||
\param[in] k Размер вектора индексов спектральных отсчетов `ind`.<BR><BR>
|
||
|
||
|
||
\param[out] y Указатель на вектор спектральных отсчетов,
|
||
соответствующих номерам `ind`.<BR>
|
||
Размер вектора `[k x 1]`.<BR>
|
||
Память должна быть выделена.<BR><BR>
|
||
|
||
\return
|
||
`RES_OK` Функция выполнена успешно. <BR>
|
||
В противном случае \ref ERROR_CODE_GROUP "код ошибки".<BR>
|
||
|
||
\note
|
||
Алгоритм Герцеля эффективен когда необходимо рассчитать несколько спектральных отсчетов
|
||
сигнала большой длительности. <BR>
|
||
Однако, размер `k` вектора индексов `ind` может быть произвольным,
|
||
в том числе больше длины сигнала `n`. В этом случае некоторые спектральные отсчеты
|
||
будут повторяться, но это не повлечет за собой ошибки выполнения.<BR>
|
||
Значения индексов спектральных отсчетов `ind` также могут быть произвольными целыми,
|
||
в том числе и отрицательными. В этом случае будут рассчитаны спектральные отсчеты с индексами
|
||
по модулю `n`.<BR><BR>
|
||
|
||
|
||
\author
|
||
Бахурин Сергей.
|
||
www.dsplib.org
|
||
|
||
**************************************************************************************************** */
|