IA_CoMP
Interference Alignment and Coordinated Multipoint
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes
IA2_node Class Reference

This is a class which defines the behaviour of the nodes as need for the implemementations described in the paper: "An Experimental Investigation of SIMO, MIMO, Interference-Alignment (IA) and Coordinated Multi-Point (CoMP)", by Per Zetterberg and Nima N Moghadam, presented at the 19th International Conference on Systems, Signals and Image Processing (IWSSIP) 2012. The IA2 class is descendant class of four_multi_node which is defined in the four_multi project. More...

#include <IA2_node.hpp>

List of all members.

Public Member Functions

 IA2_node (uint32_t no_ant1, uint32_t no_ant2, uint32_t skip_ant, float start_gain, uint32_t node_ix, double frequency, bool use_same_antenna, std::vector< std::string > IP_addresses, bool simulate, int receiver_delay_samples, int seed, bool run_decoder, int scenario)
 Constructor.
uint32_t frame_ix (void)
double get_gain (void)

Public Attributes

int codec_ix
int modulation_order
double offset_time
std::vector< OFDM2 > ai
uint32_t num_streams_per_bs
uint32_t num_streams_per_ms
uint32_t num_antennas_in_system
cmat waveform_rx
cvec waveform_tx
cvec waveform_tx_temp
vec BERraw
 The raw bit error rates of the bursts.
vec BER
 The bit error rate after LDPC decoding.
vec EVM
vec SINR
double SINR_temp
int ber_i
bvec input
bvec transmitted
bvec message_hat
bvec decoded_bits
bvec transmitted_hat
vec soft_bit
cmat H [8][20]
double time_between_frames
uint32_t MIMO_active_tx_node_tx
 Only the node with index MIMO_active_tx_node_tx is transmitting, requires MIMO_all_active=false.
bool MIMO_closed_loop
 Set false, because closed loop MIMO is not implemented.
bool MIMO_all_active
 When set to true, all BS nodes are transmitting all the time.

Protected Member Functions

virtual frame_settings node_init (void)
virtual frame_settings node_process (void)
virtual void end_of_run (void)
void calculate_beamformers (void)
void iteration (const cmat v_old, int subcarrier_ix_start, int subcarrier_ix_stop, int increment)
void normalize_columns (cmat &M)
void calculate_v (void)
void format_tx_symbols (uint32_t codec_ix, uint32_t modulation_order, int stream_ix)
void decode_rx_symbols (uint32_t codec_ix, uint32_t modulation_order, int stream_ix)

Protected Attributes

double scaling_tx_signal
ivec demodulation_position
uint32_t d_frame_ix
uint32_t d_no_frames
uint32_t scenario
bool do_calculate_beamformers
double d_gain_rx
double d_gain_tx
double d_frequency
ivec interleaver_sequence
std::string metric
double logmax_scale_factor
bool adaptive_stop
ivec gen
BERC berc
ivec nrof_used_iterations
double target_rx_base_band_rms_ampl
ivec reorder_all [10]
uint32_t num_links
uint32_t num_bs
uint32_t num_ms
uint32_t num_ant_ms
uint32_t num_ant_bs
cmat v [10]
cmat Vbig [10]
cvec symbols
std::complex< int16_t > * feedback_buffer
std::complex< int16_t > * feedback_buffer0
std::complex< int16_t > * feedback_buffer1
std::complex< int16_t > * feedback_buffer2
std::vector< uint32_t > other_node_ixs
std::vector< void * > pointers_to_data
std::vector< uint32_t > num_bytess
int feedback_buffer_size
int feedback_buffer_size_tx
ivec antenna_pilot_position
ivec antenna_pilot_position_this_bs
ivec known_pos_all
bool is_bs
uint32_t shift_transmit_signal_samples
uint32_t replicas_start
uint32_t replicas_spacing
ivec replica_positions_this_bs
ivec replica_positions
ivec stream_ix_this_node
imat bs_to_stream_ix
ivec stream_ix_to_ms_ix
int d_seed
uint32_t num_streams
AMC amc
int word_length
double noise_variance_norm
double noise_variance
bool d_run_decoder
uint64_t temp_seed
bool use_old_rand
Real_Timer timer

Static Protected Attributes

static const int iterations = 5
static const uint32_t block_length = 400
static const uint32_t noise_estimation_start = 1000
static const uint32_t noise_estimation_length = 800
static const uint32_t constraint_length = 3

Detailed Description

This is a class which defines the behaviour of the nodes as need for the implemementations described in the paper: "An Experimental Investigation of SIMO, MIMO, Interference-Alignment (IA) and Coordinated Multi-Point (CoMP)", by Per Zetterberg and Nima N Moghadam, presented at the 19th International Conference on Systems, Signals and Image Processing (IWSSIP) 2012. The IA2 class is descendant class of four_multi_node which is defined in the four_multi project.

Definition at line 50 of file IA2_node.hpp.


Constructor & Destructor Documentation

IA2_node::IA2_node ( uint32_t  no_ant1,
uint32_t  no_ant2,
uint32_t  skip_ant,
float  start_gain,
uint32_t  node_ix,
double  frequency,
bool  use_same_antenna,
std::vector< std::string >  IP_addresses,
bool  simulate,
int  receiver_delay_samples,
int  seed,
bool  run_decoder,
int  scenario 
)

Constructor.

Parameters:
no_ant1Number of USRPs in node.
no_ant2Set to zero except special cases.
skip_antThe USRPs are assumed to have 192.168.10*(1+skip_ant).2, 192.168.10*(2+skip_ant).2,....
start_gainThe gain applied to the received in the first frame on all USRPs (in fact, never changed).
node_ixIndex of the node. Determines the node behaviour. For all schemes except CoMP: node_ix=0,1,2 = base-station, 3,4,5 mobile-station. For CoMP: node_ix=0 base-station, 1,2,3=mobile-station.
frequencyThe upconversion/downconversion frequency used in TX/RX.
use_same_antenna.If XCVR2450 is used, setting this value to true makes the J1 antenna connector be used for both TX and RX. Setting it to false makes J1 being used for RX and J2 for TX.
node_ixEach node needs a unique number. Use the range from 0 to number_of_nodes_in_system-1.
IP_addressesSet to the IP address of the back-bone of all nodes in the system. Use dummy string, e.g. "xxx", in nodes without backbone not used.
simulateSet this parameter to true if you are going to do simulations using the simulate functions or if the node is one of several to be used with the super_node class, otherwise set to false. When set to false, the node will not initialize any USRPs and no USRPs are needed.
simulateSet this parameter to true if you are going to do simulations using the simulate functions or if the node is one of several to be used with the super_node class, otherwise set to false. When set to false, the node will not initialize any USRPs and no USRPs are needed.
received_delay_samples.The number of samples of delay between the transmitter and receiver. We set to 6 for simulated data and 60 for real data.
seedSeeds the randomization of bits in order to avoid all users transmitting the same information, always.
run_decoder.If true then the LDPC decoder is run, see "only_raw_bits" of the four_multi user manual.
scenario.Determines the behaviour of the nodes =1 IA, 2=CoMP, 3=MIMO, 4=SIMO. For MIMO there are additional parameters (public members prefixed MIMO) determining the behaviour of the nodde.

Definition at line 22 of file IA2_node.cpp.


The documentation for this class was generated from the following files:
 All Classes Functions Variables