How to generate armBitRevIndexTable16[] ?

14 Sep 2018

Hi

I am trying to extend the CMSIS floating point CFFT to 8192 points but don't know how to generate the bit reversal table.

1) const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH] = { radix 4, size 12 8,64, 16,32, 24,96, 40,80, 56,112, 88,104 };

I can generate/extend this table for 8192 points using a standard bit reversal algorithm (example showing the 16 point one as reference due to size).

2) But the CFFT floating point output uses a different one called

const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE16_TABLE_LENGTH] = { 8x2, size 20 8,64, 24,72, 16,64, 40,80, 32,64, 56,88, 48,72, 88,104, 72,96, 104,112 };

which has more entries and no explanation of how it was derived.

Does anyone know how this table was generated ?

Regards

Mark