kopia lustrzana https://github.com/Dsplib/libdspl-2.0
136 wiersze
5.6 KiB
Plaintext
136 wiersze
5.6 KiB
Plaintext
|
||
/*! *************************************************************************************************
|
||
\ingroup DFT_GROUP
|
||
\fn int dft(double* x, int n, complex_t *y)
|
||
\brief Дискретное преобразование Фурье вещественного сигнала.
|
||
|
||
Функция рассчитывает \f$ n \f$-точечное дискретное преобразование Фурье
|
||
вещественного сигнала \f$ x(m) \f$, \f$ m = 0 \ldots n-1 \f$.<BR>
|
||
\f[
|
||
Y(k) = \sum_{m = 0}^{n-1} x(m) \cdot \exp \left( -j \cdot \frac{2\pi}{n} \cdot m \cdot k \right),
|
||
\f]
|
||
где \f$ k = 0 \ldots n-1 \f$.
|
||
|
||
\param[in] x Указатель на вектор вещественного входного сигнала \f$x(m)\f$,
|
||
\f$ m = 0 \ldots n-1 \f$. <BR>
|
||
Размер вектора `[n x 1]`. <BR><BR>
|
||
|
||
\param[in] n Размер ДПФ \f$n\f$ (размер векторов входного сигнала и результата ДПФ).<BR><BR>
|
||
|
||
\param[out] y Указатель на комплексный вектор результата ДПФ \f$Y(k)\f$,
|
||
\f$ k = 0 \ldots n-1 \f$. Размер вектора `[n x 1]`. <BR>
|
||
Память должна быть выделена.<BR><BR>
|
||
|
||
|
||
\return
|
||
`RES_OK` если ДПФ рассчитана успешно. <BR>
|
||
В противном случае \ref ERROR_CODE_GROUP "код ошибки".
|
||
|
||
Пример использования функции `dft`:
|
||
|
||
\include dft_test.c
|
||
|
||
Результат работы программы:
|
||
|
||
\verbatim
|
||
y[ 0] = 120.000 0.000
|
||
y[ 1] = -8.000 40.219
|
||
y[ 2] = -8.000 19.314
|
||
y[ 3] = -8.000 11.973
|
||
y[ 4] = -8.000 8.000
|
||
y[ 5] = -8.000 5.345
|
||
y[ 6] = -8.000 3.314
|
||
y[ 7] = -8.000 1.591
|
||
y[ 8] = -8.000 0.000
|
||
y[ 9] = -8.000 -1.591
|
||
y[10] = -8.000 -3.314
|
||
y[11] = -8.000 -5.345
|
||
y[12] = -8.000 -8.000
|
||
y[13] = -8.000 -11.973
|
||
y[14] = -8.000 -19.314
|
||
y[15] = -8.000 -40.219
|
||
\endverbatim
|
||
|
||
|
||
\author
|
||
Бахурин Сергей.
|
||
www.dsplib.org
|
||
\note
|
||
Данная функция выполняет расчет ДПФ наивным методом
|
||
и требует \f$ n^2 \f$ комплексных умножений.<BR>
|
||
Для увеличения скорости расчета рекомендуется
|
||
использовать алгоритмы быстрого преобразования Фурье.
|
||
|
||
**************************************************************************************************** */
|
||
|
||
|
||
|
||
/*! *************************************************************************************************
|
||
\ingroup DFT_GROUP
|
||
\fn int dft_cmplx(complex_t* x, int n, complex_t *y)
|
||
\brief Дискретное преобразование Фурье комплексного сигнала.
|
||
|
||
Функция рассчитывает \f$ n \f$-точечное дискретное преобразование Фурье
|
||
комплексного сигнала \f$ x(m) \f$, \f$ m = 0 \ldots n-1 \f$.<BR>
|
||
\f[
|
||
Y(k) = \sum_{m = 0}^{n-1} x(m) \cdot \exp \left( -j \cdot \frac{2\pi}{n} \cdot m \cdot k \right),
|
||
\f]
|
||
где \f$ k = 0 \ldots n-1 \f$.
|
||
|
||
\param[in] x Указатель на вектор комплексного входного сигнала \f$x(m)\f$,
|
||
\f$ m = 0 \ldots n-1 \f$. <BR>
|
||
Размер вектора `[n x 1]`. <BR><BR>
|
||
|
||
\param[in] n Размер ДПФ \f$n\f$ (размер векторов входного сигнала и результата ДПФ).<BR><BR>
|
||
|
||
\param[out] y Указатель на комплексный вектор результата ДПФ \f$Y(k)\f$,
|
||
\f$ k = 0 \ldots n-1 \f$. Размер вектора `[n x 1]`. <BR>
|
||
Память должна быть выделена.<BR><BR>
|
||
|
||
|
||
\return
|
||
`RES_OK` если ДПФ рассчитана успешно. <BR>
|
||
В противном случае \ref ERROR_CODE_GROUP "код ошибки".
|
||
|
||
|
||
|
||
|
||
Пример использования функции `dft_cmplx`:
|
||
|
||
\include dft_cmplx_test.c
|
||
|
||
Результат работы программы:
|
||
|
||
\verbatim
|
||
y[ 0] = 120.000 0.000
|
||
y[ 1] = -8.000 40.219
|
||
y[ 2] = -8.000 19.314
|
||
y[ 3] = -8.000 11.973
|
||
y[ 4] = -8.000 8.000
|
||
y[ 5] = -8.000 5.345
|
||
y[ 6] = -8.000 3.314
|
||
y[ 7] = -8.000 1.591
|
||
y[ 8] = -8.000 0.000
|
||
y[ 9] = -8.000 -1.591
|
||
y[10] = -8.000 -3.314
|
||
y[11] = -8.000 -5.345
|
||
y[12] = -8.000 -8.000
|
||
y[13] = -8.000 -11.973
|
||
y[14] = -8.000 -19.314
|
||
y[15] = -8.000 -40.219
|
||
\endverbatim
|
||
|
||
\author
|
||
Бахурин Сергей.
|
||
www.dsplib.org
|
||
\note
|
||
Данная функция выполняет расчет ДПФ наивным методом
|
||
и требует \f$ n^2 \f$ комплексных умножений.<BR>
|
||
Для увеличения скорости расчета рекомендуется
|
||
использовать алгоритмы быстрого преобразования Фурье.
|
||
|
||
**************************************************************************************************** */
|
||
|
||
|
||
|