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
|
|||
|
|
|||
|
**************************************************************************************************** */
|