-
Notifications
You must be signed in to change notification settings - Fork 170
/
fastddc.h
29 lines (27 loc) · 868 Bytes
/
fastddc.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <math.h>
#include "libcsdr.h"
#include "libcsdr_gpl.h"
typedef struct fastddc_s
{
int pre_decimation;
int post_decimation;
int taps_length;
int taps_min_length;
int overlap_length; //it is taps_length - 1
int fft_size;
int fft_inv_size;
int input_size;
int post_input_size;
float pre_shift;
int startbin; //for pre_shift
int v; //step for pre_shift
int offsetbin;
float post_shift;
int output_scrape;
int scrap;
shift_addition_data_t dsadata;
} fastddc_t;
int fastddc_init(fastddc_t* ddc, float transition_bw, int decimation, float shift_rate);
decimating_shift_addition_status_t fastddc_inv_cc(complexf* input, complexf* output, fastddc_t* ddc, FFT_PLAN_T* plan_inverse, complexf* taps_fft, decimating_shift_addition_status_t shift_stat);
void fastddc_print(fastddc_t* ddc, char* source);
void fft_swap_sides(complexf* io, int fft_size);