RENEWLab
1.1.0
RENEW project
|
Go to the documentation of this file.
30 #if __STDC_VERSION__ >= 199901L
31 #define MUFFT_RESTRICT restrict
34 #define MUFFT_RESTRICT
43 #define MUFFT_FORWARD (-1)
44 #define MUFFT_INVERSE (1)
51 #define MUFFT_FLAG_CPU_ANY (0)
52 #define MUFFT_FLAG_CPU_NO_SIMD ((1 << 16) - 1)
54 #define MUFFT_FLAG_CPU_NO_AVX (1 << 0)
56 #define MUFFT_FLAG_CPU_NO_SSE3 (1 << 1)
58 #define MUFFT_FLAG_CPU_NO_SSE (1 << 2)
60 #define MUFFT_FLAG_FULL_R2C (1 << 16)
62 #define MUFFT_FLAG_ZERO_PAD_UPPER_HALF (1 << 17)
132 #define MUFFT_CONV_METHOD_FLAG_MONO_MONO 0
138 #define MUFFT_CONV_METHOD_FLAG_STEREO_MONO 1
141 #define MUFFT_CONV_METHOD_FLAG_ZERO_PAD_UPPER_HALF_FIRST (1 << 2)
144 #define MUFFT_CONV_METHOD_FLAG_ZERO_PAD_UPPER_HALF_SECOND (1 << 3)
148 #define MUFFT_CONV_BLOCK_FIRST 0
151 #define MUFFT_CONV_BLOCK_SECOND 1
182 void* output,
const void* input);
199 const void* input_first,
200 const void* input_second);
207 float normalization,
unsigned samples);
void mufft_execute_plan_2d(mufft_plan_2d *plan, void *output, const void *input)
Executes a 2D FFT plan.
Modulation order N
Definition: mod_demod.m:14
struct mufft_plan_conv mufft_plan_conv
Opaque type representing a plan to convolve data.
Definition: fft.h:154
mufft_plan_conv * mufft_create_plan_conv(unsigned N, unsigned flags, unsigned method)
Create a plan to convolve zero-padded input data of length N with zero-padded input data of length N.
void mufft_execute_conv_output(mufft_plan_conv *plan, void *output, const void *input_first, const void *input_second)
Multiply together FFTs of the two input arrays obtained from mufft_execute_conv_input and perform a n...
mufft_plan_2d * mufft_create_plan_2d_c2r(unsigned Nx, unsigned Ny, unsigned flags)
Create a plan for a 2D complex-to-real inverse FFT.
a
Definition: iris_py.m:254
mufft_plan_2d * mufft_create_plan_2d_c2c(unsigned Nx, unsigned Ny, int direction, unsigned flags)
Create a plan for a 2D complex-to-complex inverse or forward FFT.
end Another correlation method(similar performance to code above)... if 0 lts_rep_dl
mufft_convolve_func mufft_get_convolve_func(unsigned flags)
Gets a function pointer which implements complex multiplication (convolution in frequency domain).
void * mufft_calloc(size_t size)
Allocate zeroed out aligned storage suitable for muFFT. Same as calloc(), but aligned....
struct mufft_plan_2d mufft_plan_2d
Opaque type representing a 2D FFT.
Definition: fft.h:226
void mufft_free_plan_1d(mufft_plan_1d *plan)
Free a previously allocated 1D FFT plan.
void(* mufft_convolve_func)(void *output, const void *a, const void *b, float normalization, unsigned samples)
Vector complex multiply routine signature.
Definition: fft.h:206
mufft_plan_2d * mufft_create_plan_2d_r2c(unsigned Nx, unsigned Ny, unsigned flags)
Create a plan for a 2D real-to-complex forward FFT.
mufft_plan_1d * mufft_create_plan_1d_r2c(unsigned N, unsigned flags)
Create a plan for real-to-complex forward transform.
void mufft_free_plan_2d(mufft_plan_2d *plan)
Free a previously allocated 2D FFT plan.
mufft_plan_1d * mufft_create_plan_1d_c2r(unsigned N, unsigned flags)
Create a plan for complex-to-real inverse transform.
end Rx payload processing Extract the payload samples(integral number of OFDM symbols following preamble) payload_vec
void * mufft_alloc(size_t size)
Allocate aligned storage suitable for muFFT. Must be freed with mufft_free.
void mufft_execute_conv_input(mufft_plan_conv *plan, unsigned block, void *output, const void *input)
Applies forward FFT of either first or second input block.
struct mufft_plan_1d mufft_plan_1d
Opaque type representing a 1D FFT.
Definition: fft.h:77
void mufft_execute_plan_1d(mufft_plan_1d *plan, void *output, const void *input)
Executes a 1D FFT plan.
void mufft_free_plan_conv(mufft_plan_conv *plan)
Free a previously allocated convolution plan obtained from mufft_create_plan_conv.
mufft_plan_1d * mufft_create_plan_1d_c2c(unsigned N, int direction, unsigned flags)
Create a plan for a 1D complex-to-complex inverse or forward FFT.
void mufft_free(void *ptr)
Free previously allocated storage obtained from mufft_alloc or mufft_calloc.
size_t mufft_conv_get_transformed_block_size(mufft_plan_conv *plan)
Queries the buffer size for intermediate FFT blocks.
#define MUFFT_RESTRICT
Portable variant of C99 restrict keyword.
Definition: fft.h:35