|
| SISO () |
| SISO class constructor More...
|
|
void | set_map_metric (const std::string &in_MAP_metric) |
| Sets the metric for MAP algorithm (convolutional codes and multipath channels) More...
|
|
void | set_precoder_generator (const itpp::bvec &in_prec_gen) |
| Sets the precoder generator polynomial for turbo equalizer. More...
|
|
void | set_precoder_generator (const int &in_prec_gen, const int &constraint_length) |
|
void | set_generators (const itpp::bmat &in_gen) |
| Sets convolutional code generator polynomials. More...
|
|
void | set_generators (const itpp::ivec &in_gen, const int &constraint_length) |
|
void | set_tail (const bool &in_tail) |
| Signals whether the trellis used in the MAP algorithm is terminated or not (only for convolutional codes and multipath channels) More...
|
|
void | set_viterbi_win_len (const int &win_len) |
| Sets the length of the trellis used by the SOVA.
|
|
void | set_sova_scaling_factor (const double &scaling_factor) |
| Sets the scaling factor used to normalize the reliability value computed by the SOVA.
|
|
void | set_sova_threshold (const double &threshold) |
| Sets the threshold value used to limit the reliability value computed by SOVA.
|
|
void | set_viterbi_scaling_factors (const double &matching_scaling_factor, const double &nonmatching_scaling_factor) |
| Sets the Viterbi algorithm scaling factors. More...
|
|
void | set_viterbi_hard_output_flag (const bool &flag) |
| Sets the Viterbi algorithm hard output flag (true when only the hard output is needed)
|
|
void | set_noise (const double &in_sigma2) |
| Sets Additive White Gaussian Noise variance for each dimension.
|
|
void | set_impulse_response (const itpp::vec &h) |
| Sets channel impulse response for equalizer. More...
|
|
void | set_impulse_response (const itpp::mat &H) |
| Sets channel impulse response for Multi-User Detectors. More...
|
|
void | set_impulse_response (const itpp::cvec &h) |
| Sets the channel attenuations for demappers (when only a modulator is used) More...
|
|
void | set_impulse_response (const itpp::cmat &cH) |
| Sets channel attenuations for demappers (when Space-Time codes are used) More...
|
|
void | set_scrambler_pattern (const itpp::vec &phi) |
| Sets scrambler pattern. More...
|
|
void | set_scrambler_pattern (const itpp::bvec &phi) |
|
void | set_mud_method (const std::string &method) |
| Sets Multi-User Detector method. More...
|
|
void | set_constellation (const int &in_nb_bits_symb, const itpp::cvec &in_constellation, const itpp::bmat &in_bin_constellation) |
| Sets symbol constellation. More...
|
|
void | set_constellation (const int &in_nb_bits_symb, const itpp::cvec &in_constellation, const itpp::ivec &in_int_constellation) |
|
void | set_st_block_code (const int &Q, const itpp::cmat &A, const itpp::cmat &B, const int &N) |
| Sets Space-Time block code parameters. More...
|
|
void | set_demapper_method (const std::string &method) |
| Sets demapper method. More...
|
|
void | rsc (itpp::vec &extrinsic_coded, itpp::vec &extrinsic_data, const itpp::vec &intrinsic_coded, const itpp::vec &apriori_data) |
| SISO decoder for RSC codes More...
|
|
void | rsc (itpp::vec &extrinsic_coded, itpp::vec &extrinsic_data, const itpp::vec &intrinsic_coded, const itpp::vec &apriori_data, const bool &tail) |
| SISO decoder for RSC codes (tail is set through input) More...
|
|
void | nsc (itpp::vec &extrinsic_coded, itpp::vec &extrinsic_data, const itpp::vec &intrinsic_coded, const itpp::vec &apriori_data) |
| SISO decoder for NSC codes More...
|
|
void | nsc (itpp::vec &extrinsic_coded, itpp::vec &extrinsic_data, const itpp::vec &intrinsic_coded, const itpp::vec &apriori_data, const bool &tail) |
| SISO decoder for NSC codes (tail is set through input) More...
|
|
void | equalizer (itpp::vec &extrinsic_data, const itpp::vec &rec_sig, const itpp::vec &apriori_data) |
| SISO equalizer More...
|
|
void | equalizer (itpp::vec &extrinsic_data, const itpp::vec &rec_sig, const itpp::vec &apriori_data, const bool &tail) |
| SISO equalizer (tail is set through input) More...
|
|
void | descrambler (itpp::vec &extrinsic_coded, itpp::vec &extrinsic_data, const itpp::vec &intrinsic_coded, const itpp::vec &apriori_data) |
| SISO descrambler More...
|
|
void | mud (itpp::mat &extrinsic_data, const itpp::vec &rec_sig, const itpp::mat &apriori_data) |
| SISO Multi-User Detector More...
|
|
void | demapper (itpp::vec &extrinsic_data, const itpp::cvec &rec_sig, const itpp::vec &apriori_data) |
| SISO demapper (when only a modulator is used) More...
|
|
void | demapper (itpp::vec &extrinsic_data, const itpp::cmat &rec_sig, const itpp::vec &apriori_data) |
| SISO demapper (when Space-Time codes are used) More...
|
|
Soft Input Soft Output (SISO) modules.
The following SISO modules are implemented:
- decoder for an
Recursive Systematic Convolutional (RSC) code
- decoder for an
Non-recursive non-Systematic Convolutional (NSC) code
- equalizer (without and with precoding)
- descrambler used in Interleave Division Multiple Access (IDMA) systems
- Multi User Detectors (MUDs) for IDMA systems
- demappers for Bit Interleaved Coded Modulation (BICM) systems
- demappers for Space Time (ST) BICM systems
- Note
- BPSK mapping is realized as follows: 0 -> +1 and 1 -> -1. Thus the xor truth table is preserved when multiplying BPSK symbols.
-
There is some overlap in functionality between the SISO class and the Modulator_ND class as follows:
- When used for ST-BICM systems, both SISO and Modulator_ND classes can be used for iterative (turbo reception), but the for the SISO class the emitter part is implemented by the STC class, while for the Modulator_ND class the emitter is implemented by the same class.
- When used for reception, the SISO class is more generic than the Modulator_ND class since it allows the use of several ST codes following Hassibi's model (see STC class) and several reception algorithms.
- The SISO demapper for ST-BICM systems when using V-BLAST as ST code can be replaced by the ND demodulator (see Modulator_ND class). The best performance could be achieved with the ND demodulator using FULL_ENUM_LOGMAP algorithm followed by the SISO demapper with Hassibi_maxlogMAP algorithm (less complex than FULL_ENUM_LOGMAP). There is no configuration in which the ND demodulator and the SISO demapper can be considered completely equivalent (from an implementation point of view).
Definition at line 71 of file siso.h.