#include <mimo-pcs-encoder.h>
Inheritance diagram for mimo::PCSEncoder:
Public Member Functions | |
PCSEncoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl) | |
Constructor. | |
~PCSEncoder () | |
Destructor. | |
virtual void | updateInputLengths () |
virtual void | updateOutputLengths () |
int | getDataLength (int codedLength) const |
int | getCodeLength (int rawLength) const |
void | Encode (const simth::ModSeq &modulation_symbols, CVectorSeq &output_vectors) |
void | process () |
Static Public Member Functions | |
static void | mult_UpqH (const CMatrix &A, CMatrix &C, unsigned p, unsigned q, double phi, double sigma, unsigned nr_tx, bool from_left=false, bool hermitian=false) |
static void | mult_UpqH (CMatrix &A, unsigned p, unsigned q, double phi, double sigma, unsigned nr_tx, CVector &workspace1, CVector &workspace2, bool from_left=false, bool hermit=false) |
static CMatrix | generate_UpqH (unsigned p, unsigned q, double phi, double sigma, unsigned nr_tx) |
static void | generate_UpqH (CMatrix &U, unsigned p, unsigned q, double phi, double sigma, unsigned nr_tx) |
static CMatrix | extract_parameter (const CMatrix &chanest, const CMatrix &U_old, bool diff_extr) |
static CMatrix | extract_parameter_correctly (const CMatrix &chanest, const CMatrix &U_old, bool diff_extr) |
static CMatrix | generate_approx_U (const CMatrix &Param, const CMatrix &U_elder, bool diff_extr) |
static void | generate_approx_U (CMatrix &U, const CMatrix &Param, const CMatrix &U_elder, bool diff_extr, CMatrix &workspace1, CMatrix &workspace2) |
static void | get_best_parameters (CMatrix &Param, unsigned nr_param) |
Public Attributes | |
CMatrixSeq::storage_type * | U_old |
Protected Attributes | |
unsigned | nr_param |
bool | diff_extr |
unsigned | num_carrier |
bool | easy_alg |
Related Functions | |
(Note that these are not member functions.) | |
propertylist_PCSEncoder (not_a_function) |
|
Constructor.
|
|
Destructor.
|
|
Multiply the given matrix A by the base unitary matrix U_pq that is specified by the given arguments and writes the result into C. This method calculates one out of the following four different calculations:
|
|
Multiply the given matrix A by the base unitary matrix U_pq that is specified by the given arguments and writes the result back into A. This method calculates one out of the following four different calculations:
|
|
Generates the basic unitary matrices needed by the algorithm. |
|
Generates the basic unitary matrices needed by the algorithm, writing it into the given matrix U. The previous content of U is overwritten. If U is not of the appropriate dimension nr_tx times nr_tx, an exception is thrown. |
|
Extract parameter for construction of U. Actually this has only to be done in the decoder. But for Simulation it is much more easier to do it here, otherwise we would have to introduce a backward channel which could result in timing problems. easy realisation |
|
Extract parameter for construction of U. Actually this has only to be done in the decoder. But for Simulation it is much more easier to do it here, otherwise we would have to introduce a backward channel which could result in timing problems. mathematical 100% correct following Murnaghan |
|
Recomposition of transmit matrix U by means of retransmitted parameters and function generate_UpqH. |
|
Recomposition of transmit matrix U by means of retransmitted parameters and function generate_UpqH. |
|
Identify the nr_param parameters with highest absolute value and set all others equal zero inside the given matrix. |
|
Implementation of methods of simth::Device. Reimplemented from mimo::Encoder. |
|
Implementation of methods of simth::Device. Reimplemented from mimo::Encoder. |
|
Unused. Implements mimo::Encoder. |
|
Unused. Implements mimo::Encoder. |
|
Encodes the given sequence of symbols into the given output sequence of vectors. Implements mimo::Encoder. |
|
Implementation of methods of simth::Device. Reimplemented from mimo::Encoder. |
|
These are the properties of class PCSEncoder . This list is auto-generated from the XML-Devicelist of this device by means of an XSLT transformation script. Description of this device in the XML file: Partial Channel State Information Mimo Encoder The Decoder/Encoder pair is a close relative to the SVD- and a BLAST (Spatial mux with zero forcing) encoder. The special feature is, that you can vary the performance in-between those borders by choosing the proper number of parameters. These parameters are extracted from the optimal transmission matrix produced by the SVD-scheme. In the encoder these parameters are used to build up a transmission matrix which approximates the optimal one depending on the number of parameters that have been given to the encoder by the decoder. In Simthetic a backward channel necessary for such a system is not possible so you have to give the encoder its own source of channel knowledge by connecting the channel estimator. Note that this class also has the Properties of its base classes. The direct base class is mimo::Encoder ; direct link to its propertylist should be propertylist_Encoder(). The list below usually includes the properties that have been inherited from the base classes; the properties which belong only to this class can be found at the end of this list.
|
|
|
|
|
|
|
|
|
|
|