![]() |
libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
|
Структуры данных | |
struct | fft_t |
Структура данных объекта быстрого преобразования Фурье Подробнее... | |
Функции | |
int | dft (double *x, int n, complex_t *y) |
Дискретное преобразование Фурье вещественного сигнала. Подробнее... | |
int | dft_cmplx (complex_t *x, int n, complex_t *y) |
Дискретное преобразование Фурье комплексного сигнала. Подробнее... | |
int | fft (double *x, int n, fft_t *pfft, complex_t *y) |
Быстрое преобразование Фурье вещественного сигнала Подробнее... | |
int | fft_cmplx (complex_t *x, int n, fft_t *pfft, complex_t *y) |
Быстрое преобразование Фурье комплексного сигнала Подробнее... | |
int | fft_create (fft_t *pfft, int n) |
Заполнение структуры fft_t для алгоритма БПФ Подробнее... | |
void | fft_free (fft_t *pfft) |
Очистить структуру fft_t алгоритма БПФ Подробнее... | |
int | fft_shift (double *x, int n, double *y) |
Перестановка спектральных отсчетов дискретного преобразования Фурье Подробнее... | |
int | fourier_series_dec (double *t, double *s, int nt, double period, int nw, double *w, complex_t *y) |
Расчет коэффициентов разложения в ряд Фурье Подробнее... | |
int | fourier_series_rec (double *w, complex_t *s, int nw, double *t, int nt, complex_t *y) |
Восстановление сигнала при усечении ряда Фурье Подробнее... | |
int | goertzel (double *x, int n, int *ind, int k, complex_t *y) |
Алгоритм Гёрцеля для расчета отдельных спектральных отсчетов дискретного преобразования Фурье вещественного сигнала x . Подробнее... | |
int | goertzel_cmplx (complex_t *x, int n, int *ind, int k, complex_t *y) |
Алгоритм Гёрцеля для расчета отдельных спектральных отсчетов дискретного преобразования Фурье комплексного сигнала x . Подробнее... | |
int | idft_cmplx (complex_t *x, int n, complex_t *y) |
Обратное дискретное преобразование Фурье комплексного спектра. Подробнее... | |
int | ifft_cmplx (complex_t *x, int n, fft_t *pfft, complex_t *y) |
Обратное быстрое преобразование Фурье Подробнее... | |
Подробное описание
Алгоритмы дискретного и быстрого преобразования Фурье.
Функции
◆ dft()
int dft | ( | double * | x, |
int | n, | ||
complex_t * | y | ||
) |
Дискретное преобразование Фурье вещественного сигнала.
Функция рассчитывает \( n \)-точечное дискретное преобразование Фурье вещественного сигнала \( x(m) \), \( m = 0 \ldots n-1 \).
\[ Y(k) = \sum_{m = 0}^{n-1} x(m) \exp \left( -j \frac{2\pi}{n} m k \right), \]
где \( k = 0 \ldots n-1 \).
- Аргументы
-
[in] x Указатель на вектор вещественного входного сигнала \(x(m)\), \( m = 0 \ldots n-1 \).
Размер вектора[n x 1]
.
[in] n Размер ДПФ \(n\) (размер векторов входного сигнала и результата ДПФ).
[out] y Указатель на комплексный вектор результата ДПФ \(Y(k)\), \( k = 0 \ldots n-1 \). Размер вектора [n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если ДПФ рассчитана успешно.
В противном случае код ошибки.
Пример использования функции dft
:
Результат работы программы:
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
- Заметки
- Данная функция выполняет расчет ДПФ наивным методом и требует \( n^2 \) комплексных умножений.
Для увеличения скорости расчета рекомендуется использовать алгоритмы быстрого преобразования Фурье.
◆ dft_cmplx()
Дискретное преобразование Фурье комплексного сигнала.
Функция рассчитывает \( n \)-точечное дискретное преобразование Фурье комплексного сигнала \( x(m) \), \( m = 0 \ldots n-1 \).
\[ Y(k) = \sum_{m = 0}^{n-1} x(m) \exp \left( -j \frac{2\pi}{n} m k \right), \]
где \( k = 0 \ldots n-1 \).
- Аргументы
-
[in] x Указатель на вектор комплексного входного сигнала \(x(m)\), \( m = 0 \ldots n-1 \).
Размер вектора[n x 1]
.
[in] n Размер ДПФ \(n\) (размер векторов входного сигнала и результата ДПФ).
[out] y Указатель на комплексный вектор результата ДПФ \(Y(k)\), \( k = 0 \ldots n-1 \).
Размер вектора[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если ДПФ рассчитана успешно.
В противном случае код ошибки.
Пример использования функции dft_cmplx
:
Результат работы программы:
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
- Заметки
- Данная функция выполняет расчет ДПФ наивным методом и требует \( n^2 \) комплексных умножений.
Для увеличения скорости расчета рекомендуется использовать алгоритмы быстрого преобразования Фурье.
См. определение в файле dft_cmplx.c строка 163
◆ fft()
Быстрое преобразование Фурье вещественного сигнала
Функция рассчитывает \( n \)-точечное быстрое преобразование Фурье вещественного сигнала \( x(m) \), \( m = 0 \ldots n-1 \).
\[ Y(k) = \sum_{m = 0}^{n-1} x(m) \exp \left( -j \frac{2\pi}{n} m k \right), \]
где \( k = 0 \ldots n-1 \).
Для расчета используется алгоритм БПФ составной длины.
- Аргументы
-
[in] x Указатель на вектор вещественного входного сигнала \(x(m)\), \( m = 0 \ldots n-1 \).
Размер вектора[n x 1]
.
[in] n Размер БПФ \(n\).
Размер БПФ может быть составным вида \(n = n_0 \times n_1 \times n_2 \times \ldots \times n_p \times m\), где \(n_i = 2,3,5,7\), а \(m \) – произвольный простой множитель не превосходящий 46340 (см. описание функции fft_create).
[in] pfft Указатель на структуру fft_t
.
Указатель не должен бытьNULL
.
Структура fft_t должна быть предварительно однократно заполнена функцией fft_create, и память должна быть очищена перед выходом функцией fft_free.
[out] y Указатель на комплексный вектор результата БПФ \(Y(k)\), \( k = 0 \ldots n-1 \).
Размер вектора[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если расчет произведен успешно.
В противном случае код ошибки.
Пример использования функцииfft
:
Результат работы программы:
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
См. определение в файле fft.c строка 173
Используется в xcorr() и xcorr_cmplx().
◆ fft_cmplx()
Быстрое преобразование Фурье комплексного сигнала
Функция рассчитывает \( n \)-точечное быстрое преобразование Фурье комплексного сигнала \( x(m) \), \( m = 0 \ldots n-1 \).
\[ Y(k) = \sum_{m = 0}^{n-1} x(m) \exp \left( -j \frac{2\pi}{n} m k \right), \]
где \( k = 0 \ldots n-1 \).
Для расчета используется алгоритм БПФ составной длины.
- Аргументы
-
[in] x Указатель на вектор комплексного входного сигнала \(x(m)\), \( m = 0 \ldots n-1 \).
Размер вектора[n x 1]
.
[in] n Размер БПФ \(n\).
Размер БПФ может быть составным вида \( n = n_0 \times n_1 \times n_2 \times n_3 \times \ldots \times n_p \times m \), где \(n_i = 2,3,5,7\), а \(m \) – произвольный простой множитель не превосходящий 46340 (см. описание функции fft_create).
[in] pfft Указатель на структуру fft_t
.
Указатель не должен бытьNULL
.
Структура fft_t должна быть предварительно однократно заполнена функцией fft_create, и память должна быть очищена перед выходом функцией fft_free.
[out] y Указатель на комплексный вектор результата БПФ \(Y(k)\), \( k = 0 \ldots n-1 \). Размер вектора [n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если расчет произведен успешно.
В противном случае код ошибки.
Пример использования функцииfft
:
Результат работы программы:
y[ 0] = -0.517 0.686 y[ 1] = -0.943 0.879 y[ 2] = -2.299 1.492 y[ 3] = 16.078 -6.820 y[ 4] = 2.040 -0.470 y[ 5] = 1.130 -0.059 y[ 6] = 0.786 0.097 y[ 7] = 0.596 0.183 y[ 8] = 0.470 0.240 y[ 9] = 0.375 0.283 y[10] = 0.297 0.318 y[11] = 0.227 0.350 y[12] = 0.161 0.380 y[13] = 0.094 0.410 y[14] = 0.023 0.442 y[15] = -0.059 0.479 y[16] = -0.161 0.525 y[17] = -0.300 0.588
См. определение в файле fft_cmplx.c строка 179
◆ fft_create()
int fft_create | ( | fft_t * | pfft, |
int | n | ||
) |
Заполнение структуры fft_t
для алгоритма БПФ
Функция производит выделение памяти и рассчет векторов поворотных коэффициентов n
-точечного БПФ для структуры fft_t
.
- Аргументы
-
[in,out] pfft Указатель на структуру fft_t
.
Указатель не должен бытьNULL
.
[in] n Размер БПФ \(n\).
Размер БПФ может быть составным вида \(n = n_0 \times n_1 \times n_2 \ldots \times n_p \times m\), где \(n_i = 2,3,5,7\), а \(m \) – произвольный простой множитель не превосходящий 46340.
Таким образом алгоритм БПФ поддерживает произвольные длины, равные целой степени чисел 2,3,5,7, а также различные их комбинации.
Так например, при \( n = 725760 \) структура будет успешно заполнена, потому что \(725760 = 2 \cdot 3 \cdot 4 \cdot 5 \cdot 6 \cdot 7 \cdot 9 \cdot 16 \), т.е. получается как произведение множителей 2,3,5,7.
При \( n = 172804 = 43201 \cdot 4 \) структура также будет успешно заполнена, потому что простой множитель входящий в \(n\) не превосходит 46340.
Для размера \( n = 13 \cdot 17 \cdot 23 \cdot 13 = 66079 \) функция вернет ошибку, поскольку 66079 больше 46340 и не является результатом произведения чисел 2,3,5,7.
- Возвращает
RES_OK
если структура заполнена успешно.
В противном случае код ошибки.
- Заметки
- Некоторые компиляторы при создании структуры не обнуляют ее содержимое. Поэтому рекомендуется произвести обнуление структуры после ее объявления: fft_t pfft = {0}; // объявляем объект fft_tint n = 64; // Размер БПФint err;// создаем объект для 64-точечного БПФerr = fft_create(&pfft, n);// ...................................// очистить память объекта БПФfft_free(&pfft);
Перед выходом из программы выделенную в структуре память необходимо очистить функцией fft_free .
- Заметки
- Магия числа 46340 заключается в том, что \(\sqrt{2^{31}} = 46340.95\).
См. определение в файле fft_create.c строка 161
Используется в fft(), fft_cmplx() и ifft_cmplx().
◆ fft_free()
void fft_free | ( | fft_t * | pfft | ) |
Очистить структуру fft_t
алгоритма БПФ
Функция производит очищение памяти промежуточных данных и векторов поворотных коэффициентов структуры fft_t
.
- Аргументы
-
[in] pfft Указатель на структуру fft_t
.
См. определение в файле fft_free.c строка 63
Используется в psd_bartlett(), psd_bartlett_cmplx(), psd_periodogram(), psd_periodogram_cmplx(), psd_welch(), psd_welch_cmplx(), xcorr() и xcorr_cmplx().
◆ fft_shift()
int fft_shift | ( | double * | x, |
int | n, | ||
double * | y | ||
) |
Перестановка спектральных отсчетов дискретного преобразования Фурье
Функция производит перестановку спектральных отсчетов ДПФ и переносит нулевую частоту в центр вектора ДПФ.
Данная функция обрабатывает вещественные входные и выходные вектора и может применяться для перестановки амплитудного или фазового спектра.
- Аргументы
-
[in] x Указатель на исходный вектор ДПФ.
Размер вектора[n x 1]
.
[in] n Размер ДПФ \(n\) (размер векторов до и после перестановки).
[out] y Указатель на вектор результата перестановки.
Размер вектора[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если перестановка произведена успешно.
В противном случае код ошибки.
См. определение в файле fft_shift.c строка 95
◆ fourier_series_dec()
int fourier_series_dec | ( | double * | t, |
double * | s, | ||
int | nt, | ||
double | period, | ||
int | nw, | ||
double * | w, | ||
complex_t * | y | ||
) |
Расчет коэффициентов разложения в ряд Фурье
Функция рассчитывает спектр периодического сигнала при усечении ряда Фурье
- Аргументы
-
[in] t Указатель на массив моментов времени дискретизации исходного сигнала s
.
Размер вектора вектора[nt x 1]
.
Память должна быть выделена.
[in] s Указатель на массив значений исходного сигнала s
.
Размер вектора[nt x 1]
.
Память должна быть выделена.
[in] nt Размер выборки исходного сигнала.
Значение должно быть положительным.
[in] period Период повторения сигнала.
[in] nw Размер усеченного ряда Фурье.
[out] w Указатель на массив частот спектра периодического сигнала.
Размер вектора[nw x 1]
.
Память должна быть выделена.
[out] y Указатель массив комплексных значений спектра периодического сигнала.
Размер вектора[nw x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
— коэффициенты ряда Фурье рассчитаны успешно.
В противном случае код ошибки.
- Заметки
- Для расчета спектра сигнала используется численное интегрирование исходного сигнала методом трапеций. Данная функция не является эффективной. Для увеличения скорости расчета спектра сигнала целесообразнее использовать алгоритмы дискретного и быстрого преобразования Фурье.
См. определение в файле fourier_series_dec.c строка 152
◆ fourier_series_rec()
Восстановление сигнала при усечении ряда Фурье
Функция рассчитывает восстановленный сигнал при усечении ряда Фурье:
\[ s(t) = \sum\limits_{n = 0}^{n_{\omega}-1} S(\omega_n) \exp(j\omega_n t) \]
- Аргументы
-
[in] w Указатель на массив частот \(\omega_n\) усеченного ряда Фурье.
Размер вектора[nw x 1]
.
Память должна быть выделена и заполнена.
[in] s Указатель на массив значений спектра \(S(\omega_n)\).
Размер вектора[nw x 1]
.
Память должна быть выделена и заполнена.
[in] nw Количество членов усеченного ряда Фурье.
Значение должно быть положительным.
[in] t Указатель на массив временных отсчетов восстановленного сигнала.
Размер вектора[nt x 1]
.
Память должна быть выделена и заполнена.
[in] nt Размер вектора времени и восстановленного сигнала.
[out] y Указатель на массив восстановленного сигнала.
Размер вектора[nt x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
— восстановление сигнала прошло успешно.
В противном случае код ошибки.
- Заметки
- Выходной восстановленный сигнал в общем случае является комплексным. Однако при соблюдении свойств симметрии векторов
w
иs
относительно нулевой частоты получим мнимую часть элементов вектораy
на уровне ошибок округления числа с двойной точностью. Ничтожно малую мнимую часть в этом случае можно игнорировать.
См. определение в файле fourier_series_rec.c строка 158
◆ goertzel()
int goertzel | ( | double * | x, |
int | n, | ||
int * | ind, | ||
int | k, | ||
complex_t * | y | ||
) |
Алгоритм Гёрцеля для расчета отдельных спектральных отсчетов дискретного преобразования Фурье вещественного сигнала x
.
Данный алгоритм позволяет рассчитать k
спектральных отсчетов n
-точечного ДПФ, заданных вектором индексов ind
.
- Аргументы
-
[in] x Указатель на вектор вещественного входного сигнала.
Размер вектора[n x 1]
.
[in] n Размер вектора входного сигнала.
[in] ind Указатель на вектор индексов спектральных отсчетов для расчета которых будет использоваться алгоритм Герцеля.
Размер вектора[k x 1]
.
[in] k Размер вектора индексов спектральных отсчетов ind
.
[out] y Указатель на вектор спектральных отсчетов, соответствующих номерам ind
.
Размер вектора[k x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
— расчёт выполнен успешно.
В противном случае код ошибки.
- Заметки
- Алгоритм Гёрцеля эффективен когда необходимо рассчитать несколько спектральных отсчетов сигнала большой длительности.
Однако, размерk
вектора индексовind
может быть произвольным, в том числе больше длины сигналаn
. В этом случае некоторые спектральные отсчеты будут повторяться, но это не повлечет за собой ошибки выполнения.
Значения индексов спектральных отсчетовind
также могут быть произвольными целыми, в том числе и отрицательными. В этом случае будут рассчитаны спектральные отсчеты с индексами по модулюn
.
См. определение в файле goertzel.c строка 125
◆ goertzel_cmplx()
Алгоритм Гёрцеля для расчета отдельных спектральных отсчетов дискретного преобразования Фурье комплексного сигнала x
.
Данный алгоритм позволяет рассчитать k
спектральных отсчетов n
-точечного ДПФ, заданных вектором индексов ind
.
- Аргументы
-
[in] x Указатель на вектор комплексного входного сигнала.
Размер вектора[n x 1]
.
[in] n Размер вектора входного сигнала.
[in] ind Указатель на вектор индексов спектральных отсчетов для расчета которых будет использоваться алгоритм Герцеля.
Размер вектора[k x 1]
.
[in] k Размер вектора индексов спектральных отсчетов ind
.
[out] y Указатель на вектор спектральных отсчетов, соответствующих номерам ind
.
Размер вектора[k x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
— функция выполнена успешно.
В противном случае код ошибки.
- Заметки
- Алгоритм Герцеля эффективен когда необходимо рассчитать несколько спектральных отсчетов сигнала большой длительности.
Однако, размерk
вектора индексовind
может быть произвольным, в том числе больше длины сигналаn
. В этом случае некоторые спектральные отсчеты будут повторяться, но это не повлечет за собой ошибки выполнения.
Значения индексов спектральных отсчетовind
также могут быть произвольными целыми, в том числе и отрицательными. В этом случае будут рассчитаны спектральные отсчеты с индексами по модулюn
.
См. определение в файле goertzel_cmplx.c строка 127
◆ idft_cmplx()
Обратное дискретное преобразование Фурье комплексного спектра.
Функция рассчитывает \( n \)-точечное обратное дискретное преобразование Фурье комплексного спектра \( x(m) \), \( m = 0 \ldots n-1 \).
\[ y(k) = \sum_{m = 0}^{n-1} x(m) \exp \left( j \frac{2\pi}{n} m k \right), \]
где \( k = 0 \ldots n-1 \).
- Аргументы
-
[in] x Указатель на вектор входного комплексного спектра сигнала \(x(m)\), \( m = 0 \ldots n-1 \).
Размер вектора[n x 1]
.
[in] n Размер ОДПФ \(n\) (размер векторов входного спектра и результата ОДПФ).
[out] y Указатель на комплексный вектор результата ОДПФ \(y(k)\), \( k = 0 \ldots n-1 \). Размер вектора [n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если ОДПФ рассчитана успешно.
В противном случае код ошибки.
Пример использования функции dft_cmplx
:
Результат работы программы:
x[ 0] = 0.000 +0.000j, z[ 0] = 0.000 -0.000 x[ 1] = 1.000 +0.000j, z[ 1] = 1.000 -0.000 x[ 2] = 2.000 +0.000j, z[ 2] = 2.000 -0.000 x[ 3] = 3.000 +0.000j, z[ 3] = 3.000 -0.000 x[ 4] = 4.000 +0.000j, z[ 4] = 4.000 -0.000 x[ 5] = 5.000 +0.000j, z[ 5] = 5.000 -0.000 x[ 6] = 6.000 +0.000j, z[ 6] = 6.000 -0.000 x[ 7] = 7.000 +0.000j, z[ 7] = 7.000 -0.000 x[ 8] = 8.000 +0.000j, z[ 8] = 8.000 -0.000 x[ 9] = 9.000 +0.000j, z[ 9] = 9.000 -0.000 x[10] = 10.000 +0.000j, z[10] = 10.000 -0.000 x[11] = 11.000 +0.000j, z[11] = 11.000 +0.000 x[12] = 12.000 +0.000j, z[12] = 12.000 +0.000 x[13] = 13.000 +0.000j, z[13] = 13.000 +0.000 x[14] = 14.000 +0.000j, z[14] = 14.000 +0.000 x[15] = 15.000 +0.000j, z[15] = 15.000 -0.000
- Заметки
- Данная функция выполняет расчет ОДПФ наивным методом и требует \( n^2 \) комплексных умножений.
Для увеличения скорости расчета рекомендуется использовать алгоритмы быстрого преобразования Фурье.
См. определение в файле idft_cmplx.c строка 163
◆ ifft_cmplx()
Обратное быстрое преобразование Фурье
Функция рассчитывает \( n \)-точечное обратное быстрое преобразование Фурье от \( x(m) \), \( m = 0 \ldots n-1 \).
\[ Y(k) = \frac{1}{N} \sum_{m = 0}^{n-1} x(m) \exp \left( j \frac{2\pi}{n} m k \right), \]
где \( k = 0 \ldots n-1 \).
Для расчета используется алгоритм БПФ составной длины.
- Аргументы
-
[in] x Указатель на входной комплексный вектор \(x(m)\), \( m = 0 \ldots n-1 \).
Размер вектора[n x 1]
.
[in] n Размер ОБПФ \(n\).
Размер ОБПФ может быть составным вида \(n = n_0 \times n_1 \times n_2 \times \ldots \times n_p \times m\), где \(n_i = 2,3,5,7\), а \(m \) – произвольный простой множитель не превосходящий 46340 (см. описание функции fft_create).
[in] pfft Указатель на структуру fft_t
.
Указатель не должен бытьNULL
.
Структура fft_t должна быть предварительно однократно заполнена функцией fft_create, и память должна быть очищена перед выходом функцией fft_free.
[out] y Указатель на вектор результата ОБПФ \(Y(k)\), \( k = 0 \ldots n-1 \). Размер вектора [n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если расчет произведен успешно.
В противном случае код ошибки.
Пример использования функцииfft
:
Результат работы программы:
| x[ 0] = 1.000 0.000 | y[ 0] = -0.517 0.686 | z[ 0] = 1.000 0.000 | | x[ 1] = 0.540 0.841 | y[ 1] = -0.943 0.879 | z[ 1] = 0.540 0.841 | | x[ 2] = -0.416 0.909 | y[ 2] = -2.299 1.492 | z[ 2] = -0.416 0.909 | | x[ 3] = -0.990 0.141 | y[ 3] = 16.078 -6.820 | z[ 3] = -0.990 0.141 | | x[ 4] = -0.654 -0.757 | y[ 4] = 2.040 -0.470 | z[ 4] = -0.654 -0.757 | | x[ 5] = 0.284 -0.959 | y[ 5] = 1.130 -0.059 | z[ 5] = 0.284 -0.959 | | x[ 6] = 0.960 -0.279 | y[ 6] = 0.786 0.097 | z[ 6] = 0.960 -0.279 | | x[ 7] = 0.754 0.657 | y[ 7] = 0.596 0.183 | z[ 7] = 0.754 0.657 | | x[ 8] = -0.146 0.989 | y[ 8] = 0.470 0.240 | z[ 8] = -0.146 0.989 | | x[ 9] = -0.911 0.412 | y[ 9] = 0.375 0.283 | z[ 9] = -0.911 0.412 | | x[10] = -0.839 -0.544 | y[10] = 0.297 0.318 | z[10] = -0.839 -0.544 | | x[11] = 0.004 -1.000 | y[11] = 0.227 0.350 | z[11] = 0.004 -1.000 | | x[12] = 0.844 -0.537 | y[12] = 0.161 0.380 | z[12] = 0.844 -0.537 | | x[13] = 0.907 0.420 | y[13] = 0.094 0.410 | z[13] = 0.907 0.420 | | x[14] = 0.137 0.991 | y[14] = 0.023 0.442 | z[14] = 0.137 0.991 | | x[15] = -0.760 0.650 | y[15] = -0.059 0.479 | z[15] = -0.760 0.650 | | x[16] = -0.958 -0.288 | y[16] = -0.161 0.525 | z[16] = -0.958 -0.288 | | x[17] = -0.275 -0.961 | y[17] = -0.300 0.588 | z[17] = -0.275 -0.961 |
См. определение в файле ifft_cmplx.c строка 179
Документация по libdspl-2.0. Последние изменения: Ср 5 Янв 2022 12:44:34. Создано системой