26 lines
859 B
C
26 lines
859 B
C
|
|
/*
|
||
|
|
* 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 */
|