diff --git a/dspl/dox/ru/fft.dox b/dspl/dox/ru/fft.dox
index 6c9033a..51a8f58 100644
--- a/dspl/dox/ru/fft.dox
+++ b/dspl/dox/ru/fft.dox
@@ -90,6 +90,82 @@ www.dsplib.org
+
+/*! ****************************************************************************
+\ingroup DFT_GROUP
+\fn int fft(double* x, int n, fft_t* pfft, complex_t* y)
+\brief Быстрое преобразование Фурье вещественного сигнала
+
+Функция рассчитывает \f$ n \f$-точечное быстрое преобразование Фурье
+вещественного сигнала \f$ x(m) \f$, \f$ m = 0 \ldots n-1 \f$.
+\f[
+ Y(k) = \sum_{m = 0}^{n-1} x(m) \exp
+ \left( -j \frac{2\pi}{n} m k \right),
+\f]
+где \f$ k = 0 \ldots n-1 \f$.
+
+Для расчета используется алгоритм БПФ составной длины.
+
+\param[in] x Указатель на вектор вещественного
+ входного сигнала \f$x(m)\f$,
+ \f$ m = 0 \ldots n-1 \f$.
+ Размер вектора `[n x 1]`.
+
+\param[in] n Размер БПФ \f$n\f$.
+ Размер БПФ может быть составным вида
+ \f$n = n_0 \times n_1 \times n_2 \times n_3 \times \ldots \times n_p \times m\f$,
+ где \f$n_i = 2,3,5,7\f$, а \f$m \f$ --
+ произвольный простой множитель не превосходящий 46340
+ (см. описание функции \ref fft_create).
+
+
+\param[in] pfft Указатель на структуру `fft_t`.
+ Указатель не должен быть `NULL`.
+ Структура \ref fft_t должна быть предварительно однократно
+ заполнена функцией \ref fft_create, и память должна быть
+ очищена перед выходом функцией \ref fft_free.
+
+
+\param[out] y Указатель на комплексный вектор
+ результата БПФ \f$Y(k)\f$,
+ \f$ k = 0 \ldots n-1 \f$.
+ Размер вектора `[n x 1]`.
+ Память должна быть выделена.
+
+\return
+`RES_OK` если расчет произведен успешно.
+ В противном случае \ref ERROR_CODE_GROUP "код ошибки".
+
+Пример использования функции `fft`:
+
+\include fft_test.c
+
+Результат работы программы:
+
+\verbatim
+y[ 0] = 91.000 0.000
+y[ 1] = -7.000 30.669
+y[ 2] = -7.000 14.536
+y[ 3] = -7.000 8.778
+y[ 4] = -7.000 5.582
+y[ 5] = -7.000 3.371
+y[ 6] = -7.000 1.598
+y[ 7] = -7.000 0.000
+y[ 8] = -7.000 -1.598
+y[ 9] = -7.000 -3.371
+y[10] = -7.000 -5.582
+y[11] = -7.000 -8.778
+y[12] = -7.000 -14.536
+y[13] = -7.000 -30.669
+\endverbatim
+
+\author
+Бахурин Сергей.
+www.dsplib.org
+***************************************************************************** */
+
+
+
/*! ****************************************************************************
\ingroup DFT_GROUP
\fn int fft_create(fft_t *pfft, int n)
diff --git a/dspl/dox/ru/fourier_series.dox b/dspl/dox/ru/fourier_series.dox
index 077fe6a..ea777d0 100644
--- a/dspl/dox/ru/fourier_series.dox
+++ b/dspl/dox/ru/fourier_series.dox
@@ -51,7 +51,6 @@
\author
Бахурин Сергей
www.dsplib.org
-
***************************************************************************** */
@@ -114,5 +113,4 @@ s(t) = \sum\limits_{n = 0}^{n_{\omega}-1} S(\omega_n) \exp(j\omega_n t)
\author
Бахурин Сергей
www.dsplib.org
-
***************************************************************************** */
diff --git a/examples/src/fft_test.c b/examples/src/fft_test.c
index 3541e52..3d7d8ee 100644
--- a/examples/src/fft_test.c
+++ b/examples/src/fft_test.c
@@ -3,34 +3,34 @@
#include
#include "dspl.h"
-#define N 16
+#define N 14
+
int main()
{
- void* handle; // DSPL handle
- handle = dspl_load(); // Load DSPL function
+ void* handle; // DSPL handle
+ handle = dspl_load(); // Загрузка DSPL
- double x[N]; // real input signal
- complex_t y[N]; // DFT
- fft_t pfft; // FFT object
-
- //clear fft object
- memset(&pfft, 0, sizeof(fft_t));
-
- // Create FFT object
- fft_create(&pfft, N);
-
- for(int k = 0; k < N; k++)
- x[k] = (double)k;
-
- //FFT
- fft(x, N, &pfft, y);
+ double x[N]; // массив входного сигнала
+ complex_t y[N]; // массив результата БПФ
+ fft_t pfft; // FFT объект
+
+ memset(&pfft, 0, sizeof(fft_t)); // Заполняем FFT структуру нулями
+
+ fft_create(&pfft, N); // Создаем FFT структуру для длины N
+
+ // заполняем массив входного сигнала
+ for(int k = 0; k < N; k++)
+ x[k] = (double)k;
+
+ fft(x, N, &pfft, y); // FFT
- for(int k = 0; k < N; k++)
- printf("y[%2d] = %9.3f%9.3f\n", k, RE(y[k]), IM(y[k]));
+ // Печать результата
+ for(int k = 0; k < N; k++)
+ printf("y[%2d] = %9.3f%9.3f\n", k, RE(y[k]), IM(y[k]));
- fft_free(&pfft); // clear FFT object
- dspl_free(handle); // free dspl handle
- return 0;
+ fft_free(&pfft); // Очищаем структуру fft_t
+ dspl_free(handle); // Очищаем dspl handle
+ return 0;
}