libdspl-2.0/dspl/dox/ru/dft.dox

136 wiersze
5.6 KiB
Plaintext
Czysty Zwykły widok Historia

2018-03-13 20:46:25 +00:00
/*! *************************************************************************************************
\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),
2018-03-13 20:46:25 +00:00
\f]
где \f$ k = 0 \ldots n-1 \f$.
\param[in] x Указатель на вектор вещественного входного сигнала \f$x(m)\f$,
2018-03-20 20:02:35 +00:00
\f$ m = 0 \ldots n-1 \f$. <BR>
Размер вектора `[n x 1]`. <BR><BR>
2018-03-13 20:46:25 +00:00
\param[in] n Размер ДПФ \f$n\f$ (размер векторов входного сигнала и результата ДПФ).<BR><BR>
\param[out] y Указатель на комплексный вектор результата ДПФ \f$Y(k)\f$,
2018-03-20 20:02:35 +00:00
\f$ k = 0 \ldots n-1 \f$. Размер вектора `[n x 1]`. <BR>
Память должна быть выделена.<BR><BR>
2018-03-13 20:46:25 +00:00
\return
`RES_OK` если ДПФ рассчитана успешно. <BR>
2018-03-20 20:02:35 +00:00
В противном случае \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
2018-03-13 20:46:25 +00:00
\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),
2018-03-13 20:46:25 +00:00
\f]
где \f$ k = 0 \ldots n-1 \f$.
\param[in] x Указатель на вектор комплексного входного сигнала \f$x(m)\f$,
2018-03-20 20:02:35 +00:00
\f$ m = 0 \ldots n-1 \f$. <BR>
Размер вектора `[n x 1]`. <BR><BR>
2018-03-13 20:46:25 +00:00
\param[in] n Размер ДПФ \f$n\f$ (размер векторов входного сигнала и результата ДПФ).<BR><BR>
2018-03-20 20:02:35 +00:00
\param[out] y Указатель на комплексный вектор результата ДПФ \f$Y(k)\f$,
\f$ k = 0 \ldots n-1 \f$. Размер вектора `[n x 1]`. <BR>
Память должна быть выделена.<BR><BR>
2018-03-13 20:46:25 +00:00
\return
`RES_OK` если ДПФ рассчитана успешно. <BR>
2018-03-20 20:02:35 +00:00
В противном случае \ref ERROR_CODE_GROUP "код ошибки".
2018-04-07 12:17:30 +00:00
2018-03-20 20:02:35 +00:00
Пример использования функции `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
2018-03-13 20:46:25 +00:00
\author
Бахурин Сергей.
www.dsplib.org
\note
Данная функция выполняет расчет ДПФ наивным методом
и требует \f$ n^2 \f$ комплексных умножений.<BR>
Для увеличения скорости расчета рекомендуется
использовать алгоритмы быстрого преобразования Фурье.
**************************************************************************************************** */