Edge AI Add-on API 2.3.0
Loading...
Searching...
No Matches
nrf_dsp_fft_i16.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
15#ifndef _NRF_DSP_TRANSFORM_FFT_I16_H_
16#define _NRF_DSP_TRANSFORM_FFT_I16_H_
17
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24typedef struct nrf_dsp_cfft_i16_s {
25 uint16_t len;
27 const uint16_t *p_bitrev_table;
28 const int16_t *p_twiddle;
30
36
41typedef void (*nrf_dsp_cfft_radix_func_i16_t)(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input);
42
56 uint16_t len,
57 const int16_t *p_twiddle_rfft,
58 const int16_t *p_twiddle_cfft,
59 const uint16_t *p_bitrev_table,
60 uint16_t bitrev_table_len);
61
75void nrf_dsp_rfft_i16(const nrf_dsp_rfft_i16_t *p_rfft, int16_t *p_input, int16_t *p_output);
76
93 int16_t *p_input,
94 int16_t *p_output,
96
109 uint16_t len,
110 const int16_t *p_twiddle_cfft,
111 const uint16_t *p_bitrev_table,
112 uint16_t bitrev_table_len);
113
126void nrf_dsp_cfft_i16(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input, uint8_t bitreverse_flag);
127
143 int16_t *p_input,
144 uint8_t bitreverse_flag,
146
160void nrf_dsp_cfft_radix4_i16(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input);
161
175void nrf_dsp_cfft_radix4by2_i16(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input);
176
187uint16_t nrf_dsp_rfft_twiddle_factors_i16(int16_t *p_twiddle_rfft, uint16_t fft_len);
188
200uint16_t nrf_dsp_cfft_twiddle_factors_i16(int16_t *p_twiddle_cfft, uint16_t fft_len);
201
202#ifdef __cplusplus
203}
204#endif
205
206#endif /* _NRF_DSP_TRANSFORM_FFT_I16_H_ */
207
void nrf_dsp_rfft_i16(const nrf_dsp_rfft_i16_t *p_rfft, int16_t *p_input, int16_t *p_output)
The fixed-point 16-bit real FFT function Real FFT algorithms take advantage of the symmetry propertie...
void(* nrf_dsp_cfft_radix_func_i16_t)(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input)
Complex FFT 16-bit radix function type.
Definition nrf_dsp_fft_i16.h:41
void nrf_dsp_rfft_init_i16(nrf_dsp_rfft_i16_t *p_rfft, uint16_t len, const int16_t *p_twiddle_rfft, const int16_t *p_twiddle_cfft, const uint16_t *p_bitrev_table, uint16_t bitrev_table_len)
Initialize real FFT instance structure.
void nrf_dsp_cfft_rdx_i16(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input, uint8_t bitreverse_flag, nrf_dsp_cfft_radix_func_i16_t radix_func)
The fixed-point 16-bit complex FFT function with custom radix function to use.
void nrf_dsp_cfft_init_i16(nrf_dsp_cfft_i16_t *p_cfft, uint16_t len, const int16_t *p_twiddle_cfft, const uint16_t *p_bitrev_table, uint16_t bitrev_table_len)
Initialize complex FFT instance structure.
struct nrf_dsp_cfft_i16_s nrf_dsp_cfft_i16_t
uint16_t nrf_dsp_cfft_twiddle_factors_i16(int16_t *p_twiddle_cfft, uint16_t fft_len)
Generate fixed-point 16 bit complex twiddle factors buffer.
void nrf_dsp_cfft_radix4_i16(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input)
The fixed-point 16-bit complex FFT uses a radix algorithm. Single radix-8 1-stage,...
uint16_t nrf_dsp_rfft_twiddle_factors_i16(int16_t *p_twiddle_rfft, uint16_t fft_len)
Generate fixed-point 16 bit real twiddle factors buffer:
struct nrf_dsp_rfft_i16_s nrf_dsp_rfft_i16_t
void nrf_dsp_cfft_i16(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input, uint8_t bitreverse_flag)
The fixed-point 16-bit complex FFT function.
void nrf_dsp_rfft_rdx_i16(const nrf_dsp_rfft_i16_t *p_rfft, int16_t *p_input, int16_t *p_output, nrf_dsp_cfft_radix_func_i16_t radix_func)
The fixed-point 16-bit real FFT function with custom radix function to use. Real FFT algorithms take ...
void nrf_dsp_cfft_radix4by2_i16(const nrf_dsp_cfft_i16_t *p_cfft, int16_t *p_input)
The fixed-point 16-bit complex FFT uses a mixed-radix algorithm. Multiple radix-4 stages are performe...
const uint16_t * p_bitrev_table
Definition nrf_dsp_fft_i16.h:27
uint16_t len
Definition nrf_dsp_fft_i16.h:25
const int16_t * p_twiddle
Definition nrf_dsp_fft_i16.h:28
uint16_t bitrev_table_len
Definition nrf_dsp_fft_i16.h:26
Definition nrf_dsp_fft_i16.h:24
uint16_t len
Definition nrf_dsp_fft_i16.h:33
const int16_t * p_twiddle_rfft
Definition nrf_dsp_fft_i16.h:34
nrf_dsp_cfft_i16_t cfft
Definition nrf_dsp_fft_i16.h:32
Definition nrf_dsp_fft_i16.h:31