#include <comm/interleave.h>
Public Member Functions | |
Block_Interleaver (void) | |
Block_Interleaver constructor. | |
Block_Interleaver (int in_rows, int in_cols) | |
Block_Interleaver constructor. | |
Vec< T > | interleave (const Vec< T > &input) |
Function for block interleaving. May add some zeros. | |
void | interleave (const Vec< T > &input, Vec< T > &output) |
Function for block interleaving. May add some zeros. | |
Vec< T > | deinterleave (const Vec< T > &input, short keepzeros=0) |
Function for block deinterleaving. Removes additional zeros if keepzeros = 0. | |
void | deinterleave (const Vec< T > &input, Vec< T > &output, short keepzeros=0) |
Function for block deinterleaving. Removes additional zeros if keepzeros = 0. | |
void | set_rows (int in_rows) |
Set the number of rows for block interleaving. | |
void | set_cols (int in_cols) |
Set the number of columns for block interleaving. | |
int | get_rows (void) |
Get the number of rows for block interleaving. | |
int | get_cols (void) |
Get the number of columns for block interleaving. |
Data is written row-wise and read column-wise when interleaving.
BPSK bpsk;
bvec bits = "0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1";
vec symbols = bpsk.modulate_bits(bits);
Block_Interleaver<double> block_interleaver(4,4);
vec interleaved_symbols = block_interleaver.interleave(symbols);