mirror of
https://github.com/xdsopl/robot36.git
synced 2025-12-06 07:12:07 +01:00
made cic cascade order flexible, normalize comb output from cascade gain
This commit is contained in:
parent
968fea3bed
commit
409edeb489
|
|
@ -21,11 +21,6 @@ typedef struct {
|
|||
int prev_comb, prev_int;
|
||||
} cic_t;
|
||||
|
||||
static const int cic_cascade_order = 5;
|
||||
typedef struct {
|
||||
cic_t cic[cic_cascade_order];
|
||||
} cic_cascade_t;
|
||||
|
||||
static int cic_comb(cic_t *cic, int input)
|
||||
{
|
||||
int output = input - cic->prev_comb;
|
||||
|
|
@ -38,17 +33,17 @@ static int cic_int(cic_t *cic, int input)
|
|||
return cic->prev_int = input + cic->prev_int;
|
||||
}
|
||||
|
||||
static int cic_comb_cascade(cic_cascade_t *cascade, int input)
|
||||
static int cic_comb_cascade(cic_t *cascade, int input, int order)
|
||||
{
|
||||
for (int i = 0; i < cic_cascade_order; ++i)
|
||||
input = cic_comb(cascade->cic + i, input);
|
||||
for (int i = 0; i < order; ++i)
|
||||
input = cic_comb(cascade + i, input);
|
||||
return input;
|
||||
}
|
||||
|
||||
static int cic_int_cascade(cic_cascade_t *cascade, int input)
|
||||
static int cic_int_cascade(cic_t *cascade, int input, int order)
|
||||
{
|
||||
for (int i = 0; i < cic_cascade_order; ++i)
|
||||
input = cic_int(cascade->cic + i, input);
|
||||
for (int i = 0; i < order; ++i)
|
||||
input = cic_int(cascade + i, input);
|
||||
return input;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,12 +57,14 @@ static void spectrum_analyzer(int amplitude)
|
|||
static complex_t output[radix2_N];
|
||||
|
||||
#if 1
|
||||
static cic_cascade_t cascade;
|
||||
int tmp = cic_int_cascade(&cascade, amplitude);
|
||||
const int order = 5;
|
||||
const int gain = pown(M, order);
|
||||
static cic_t cascade[order];
|
||||
int tmp = cic_int_cascade(&cascade, amplitude, order);
|
||||
if (++m < M)
|
||||
return;
|
||||
m = 0;
|
||||
amplitude = cic_comb_cascade(&cascade, tmp);
|
||||
amplitude = cic_comb_cascade(&cascade, tmp, order) / gain;
|
||||
#else
|
||||
static int sum;
|
||||
sum += amplitude;
|
||||
|
|
|
|||
Loading…
Reference in a new issue