KT24-1110_65E-HA-651B/include_lib/media/media_develop/media/hw_fft.h
2024-11-10 18:44:17 +08:00

58 lines
2.2 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef HW_FFT_H
#define HW_FFT_H
typedef struct {
unsigned int fft_config;
const int *in;
int *out;
} pi32v2_hw_fft_ctx;
/*********************************************************************
* Make_FFT_Config
* Description: 根据配置生成 FFTconfig
* Arguments :N 运算数据量(min:64)log2N 运算数据量的对数值
same_addr 输入输出是否同一个地址是则写1否则写0
is_ifft IFFT运算写1FFT运算写0
is_real 实数运算写1, 复数运算写0
* Return :FFTN_CON 写入FFT寄存器
* Note(s) : None.
*********************************************************************/
unsigned int make_fft_config(int N, int log2N, int same_addr, int is_forward, int is_real);
/*********************************************************************
* _fixfft_wrap
* Description: fft/ifft运算函数
* Arguments :ctx fft数据结构
in 输入地址
out 输出地址
* Return : void
* Note(s) : None.
*********************************************************************/
void _fixfft_wrap(pi32v2_hw_fft_ctx *ctx, const int *in, int *out);
/*********************************************************************
* hw_fft_config
* Description: 根据配置生成 FFT_config
* Arguments :N 运算数据量;
log2N 运算数据量的对数值
is_same_addr 输入输出是否同一个地址0:否1:是
is_ifft 运算类型 0:FFT运算, 1:IFFT运算
is_real 运算数据的类型 1:实数, 0:复数
* Return :ConfgPars 写入FFT寄存器
* Note(s) : None.
*********************************************************************/
extern unsigned int hw_fft_config(int N, int log2N, int same_addr, int is_ifft, int is_real);
/*********************************************************************
* hw_fft_run
* Description: fft/ifft运算函数
* Arguments :fft_config FFT运算配置寄存器值
in 输入数据地址
out 输出数据地址
* Return : void
* Note(s) : None.
*********************************************************************/
extern void hw_fft_run(unsigned int cfg, const int *in, int *out);
#endif/*HW_FFT_H*/