LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
fft.h 文件参考
#include <stddef.h>
#include "lmmc/config.h"
#include "lmmc/status.h"
fft.h 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

函数

lmmc_status_t lmmc_fft_radix4_next_size (size_t n, size_t *out_nfft)
 计算不小于 n 的最小 4 的幂,用于 FFT 长度对齐。
lmmc_status_t lmmc_fft_radix4 (lmmc_real_t *real, lmmc_real_t *imag, size_t n, int inverse)
 对长度为 4 的幂的复数序列执行就地 radix-4 FFT。
lmmc_status_t lmmc_fft_radix4_forward (lmmc_real_t *real, lmmc_real_t *imag, size_t n)
 等价于 ::lmmc_fft_radix4(real, imag, n, 0) .
lmmc_status_t lmmc_fft_radix4_inverse (lmmc_real_t *real, lmmc_real_t *imag, size_t n)
 等价于 ::lmmc_fft_radix4(real, imag, n, 1) .
lmmc_status_t lmmc_fft_radix4_pad_into (const lmmc_real_t *real_in, const lmmc_real_t *imag_in, size_t n, lmmc_real_t *real_out, lmmc_real_t *imag_out, size_t *out_nfft)
 将长度 n 的输入零填充至不小于它的最小 4 的幂。
lmmc_status_t lmmc_fft (lmmc_real_t *real, lmmc_real_t *imag, size_t n, int inverse)
 计算任意长度 N 点 DFT(正变换或逆变换).
lmmc_status_t lmmc_fft_forward (lmmc_real_t *real, lmmc_real_t *imag, size_t n)
 等价于 ::lmmc_fft(real, imag, n, 0) .
lmmc_status_t lmmc_fft_inverse (lmmc_real_t *real, lmmc_real_t *imag, size_t n)
 等价于 ::lmmc_fft(real, imag, n, 1) .

函数说明

◆ lmmc_fft_radix4_next_size()

lmmc_status_t lmmc_fft_radix4_next_size ( size_t n,
size_t * out_nfft )

计算不小于 n 的最小 4 的幂,用于 FFT 长度对齐。

在文件 fft_radix4.c 第 18 行定义.

引用了 lmmc_fft_radix4_next_size(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_fft_radix4_next_size() , 以及 lmmc_fft_radix4_pad_into().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_fft_radix4()

lmmc_status_t lmmc_fft_radix4 ( lmmc_real_t * real,
lmmc_real_t * imag,
size_t n,
int inverse )

对长度为 4 的幂的复数序列执行就地 radix-4 FFT。

参数
[in,out]real实部数组,长度 n ;变换后就地覆盖为频域实部.
[in,out]imag虚部数组,长度 n ;变换后就地覆盖为频域虚部.
[in]nFFT 长度,必须为 4 的幂.
[in]inverse非 0 时执行逆变换并归一化(除以 n).
返回
LMMC_STATUS_OK 表示成功; LMMC_STATUS_INVALID_ARGUMENT 表示 n 位于 4 的幂集合之外、指针为 NULL、数组重叠或数组存储范围的地址计算溢出.
注解
不分配堆内存;两数组各覆写 n 个元素,写入前检查并拒绝重叠。

在文件 fft_radix4.c 第 115 行定义.

引用了 lmmc_fft_radix4() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_fft(), lmmc_fft_radix4(), lmmc_fft_radix4_forward() , 以及 lmmc_fft_radix4_inverse().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_fft_radix4_forward()

lmmc_status_t lmmc_fft_radix4_forward ( lmmc_real_t * real,
lmmc_real_t * imag,
size_t n )

等价于 ::lmmc_fft_radix4(real, imag, n, 0) .

在文件 fft_radix4.c 第 136 行定义.

引用了 lmmc_fft_radix4() , 以及 lmmc_fft_radix4_forward().

被这些函数引用 lmmc_fft_radix4_forward().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_fft_radix4_inverse()

lmmc_status_t lmmc_fft_radix4_inverse ( lmmc_real_t * real,
lmmc_real_t * imag,
size_t n )

等价于 ::lmmc_fft_radix4(real, imag, n, 1) .

在文件 fft_radix4.c 第 140 行定义.

引用了 lmmc_fft_radix4() , 以及 lmmc_fft_radix4_inverse().

被这些函数引用 lmmc_fft_radix4_inverse().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_fft_radix4_pad_into()

lmmc_status_t lmmc_fft_radix4_pad_into ( const lmmc_real_t * real_in,
const lmmc_real_t * imag_in,
size_t n,
lmmc_real_t * real_out,
lmmc_real_t * imag_out,
size_t * out_nfft )

将长度 n 的输入零填充至不小于它的最小 4 的幂。

参数
[in]real_in输入实部数组,长度 n .
[in]imag_in输入虚部数组,长度 n .
[in]n输入长度.
[out]real_out输出实部数组,调用方需预分配至少由 lmmc_fft_radix4_next_size 得到的元素数.
[out]imag_out输出虚部数组,容量要求同 real_out.
[out]out_nfft写入实际填充后的长度(4 的幂).
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若参数无效、存储范围计算溢出, 或任一输出与输入、另一输出、out_nfft 重叠.

所有参数和存储关系均在写入前验证;两个只读输入可以相互重叠。

在文件 fft.c 第 327 行定义.

引用了 lmmc_fft_radix4_next_size(), lmmc_fft_radix4_pad_into(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_fft_radix4_pad_into().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_fft()

lmmc_status_t lmmc_fft ( lmmc_real_t * real,
lmmc_real_t * imag,
size_t n,
int inverse )

计算任意长度 N 点 DFT(正变换或逆变换).

N 为 4 的幂时使用 radix-4,其余 2 的幂使用 radix-2 Cooley-Tukey, 其他长度使用 Bluestein chirp-z 算法。

参数
[in,out]real实部数组,长度 n ;变换后就地覆盖.
[in,out]imag虚部数组,长度 n ;变换后就地覆盖.
[in]nFFT 长度,任意正整数.
[in]inverse非 0 时执行逆变换并归一化(除以 n).
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 n == 0、指针为 NULL、数组重叠 或数组存储范围的地址计算溢出; LMMC_STATUS_ALLOCATION_FAILED 若 Bluestein 路径内存分配失败.
注解
两数组各覆写 n 个元素,写入前检查并拒绝重叠。 Bluestein 路径分配临时缓冲区并在返回前释放。

在文件 fft.c 第 266 行定义.

引用了 lmmc_fft(), lmmc_fft_radix4(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_fft(), lmmc_fft_forward() , 以及 lmmc_fft_inverse().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_fft_forward()

lmmc_status_t lmmc_fft_forward ( lmmc_real_t * real,
lmmc_real_t * imag,
size_t n )

等价于 ::lmmc_fft(real, imag, n, 0) .

在文件 fft.c 第 293 行定义.

引用了 lmmc_fft() , 以及 lmmc_fft_forward().

被这些函数引用 lmmc_fft_forward().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_fft_inverse()

lmmc_status_t lmmc_fft_inverse ( lmmc_real_t * real,
lmmc_real_t * imag,
size_t n )

等价于 ::lmmc_fft(real, imag, n, 1) .

在文件 fft.c 第 297 行定义.

引用了 lmmc_fft() , 以及 lmmc_fft_inverse().

被这些函数引用 lmmc_fft_inverse().

函数调用图:
这是这个函数的调用关系图: