DFT

计算任意长度实数序列、复数序列的正向/逆向傅里叶变换。

正向变换:

逆向变换:

DFT(Discrete Fourier Transform)函数调用流程如下:

  1. 调用Init初始化HmppsDFTPolicy结构体。
  2. 调用CToC、RToC、CToR等主函数。
  3. 最后调用Release释放。HmppsDFTPolicy函数所包含内存。

函数接口声明如下:

参数

参数名

描述

取值范围

输入/输出

len

FFT序列输入信号长度。

(0, 227]

输入

direction

direction=1表示FFT正变换。

direction=-1表示FFT逆变换。

用于CToC模式。

±1

输入

flag

结果正规化模式。

HMPP_FFT_DIV_FWD_BY_N、HMPP_FFT_DIV_BWD_BY_N、HMPP_FFT_DIV_BY_SQRTN、HMPP_FFT_NODIV_BY_ANY

输入

policy(init函数中)

双重指针,指向HmppsDFTPolicy结构体,结构体内包含DFT计算需要的一些信息和缓存块的首地址。

非空

输出

policy(主函数和release函数)

指针,指向HmppsDFTPolicy结构体。

非空

输入

src

指向源序列的指针。

非空

输入

dst

指向输出序列的指针。

非空

输出

srcDst

指向原址操作序列的指针。

非空

输入/输出

表1 参数flag取值的说明

取值

描述

HMPP_FFT_DIV_FWD_BY_N

正向变换,1/N正规化模式。

HMPP_FFT_DIV_BWD_BY_N

反向变换,1/N正规化模式。

HMPP_FFT_DIV_BY_SQRTN

正向或反向变换,1/N1/2正规化模式。

HMPP_FFT_NODIV_BY_ANY

正向或反向变换,不做特殊处理。

返回值

错误码

错误码

描述

HMPP_STS_NULL_PTR_ERR

指针参数为空。

HMPP_STS_SIZE_ERR

len小于0。

HMPP_STS_MALLOC_FAILED

所需的额外内存申请失败。

HMPP_STS_FFT_FLAG_ERR

flag的值不在[1,4]范围内。

注意

示例