/* * File: interleaver.h */ #ifndef INTERLEAVER_H #define INTERLEAVER_H #define ARPHY_INTERLEAVER_TYPE_NONE 0 #define ARPHY_INTERLEAVER_TYPE_HELIX 1 #define ARPHY_INTERLEAVER_TYPE_MAX 1 typedef struct { uint8_t type; uint8_t net_bit_size; // dati contenuti in un blocco di interleaver al netto del FEC uint8_t fec_blocks_size; // blocchi FEC contenuti in un blocco di interleaver uint16_t symbols_size; // simboli contenuti in un blocco di interleaver uint16_t size; // dimensione del blocco di interleaving } interleaver_params; extern interleaver_params interleaver; void arphy_set_up_interleaver(interleaver_params* interleaver_parameters); uint16_t arphy_index_interleave(uint16_t in, uint8_t x, uint16_t y); uint16_t arphy_index_deinterleave(uint16_t in, uint8_t x, uint16_t y); #endif /* INTERLEAVER_H */