00001
00002
00003
00004
00005
00006 #ifndef MIMO_LSD_ENCODER_H
00007 #define MIMO_LSD_ENCODER_H
00008
00009
00010 #include <mimo-encoder.h>
00011
00012 namespace mimo
00013 {
00014
00015
00016
00017
00018 class LsdEncoder : public mimo::Encoder
00019 {
00020 public:
00021 LsdEncoder(int deviceID, simth::DeviceSystemIntf* system,
00022 const simth::PropertyList& pl);
00023
00024 virtual ~LsdEncoder();
00025
00026 virtual int getDataLength(int codedLength) const;
00027 virtual int getCodeLength(int rawLength) const;
00028
00029 virtual void Encode(const simth::ModSeq& modulation_symbols,
00030 CVectorSeq& output_vectors);
00031
00035 static void calcCodeMatrix(unsigned M, int xcc,
00036 unsigned nu, unsigned ns,
00037 CMatrixSeq& codeMatrices);
00038
00039 };
00040
00041
00042 }
00043
00044 #endif // MIMO_LSD_ENCODER_H
00045
00046
00047