Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

mimo-lsd-decoder.h

Go to the documentation of this file.
00001 /*-*-c++-*-*****************************************************************
00002                           mimo-lsd-decoder.h  -  description
00003                              -------------------
00004     begin                : Feb 2004
00005     copyright            : (C) 2004 by Xin Qi
00006     email                : 
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This library is free software; you can redistribute it and/or         *
00012  *   modify it under the terms of the GNU Lesser General Public            *
00013  *   License as published by the Free Software Foundation; either          *
00014  *   version 2.1 of the License, or (at your option) any later version.    *
00015  *                                                                         *
00016  *   This library is distributed in the hope that it will be useful,       *
00017  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00018  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
00019  *   Lesser General Public License for more details.                       *
00020  *                                                                         *
00021  *   You should have received a copy of the GNU Lesser General Public      *
00022  *   License along with this library; if not, write to the Free Software   *
00023  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston,                 *
00024  *   MA  02111-1307  USA                                                   *
00025  *                                                                         *
00026  ***************************************************************************/
00027 
00028 #ifndef MIMO_LSD_DECODER_H
00029 #define MIMO_LSD_DECODER_H
00030 
00031 // Mimolib includes
00032 #include <mimo-decoder.h>
00033 
00034 namespace mimo
00035 {
00036 
00040 class LsdDecoder : public mimo::Decoder
00041 {
00042    private:
00043       double noise;
00044       double SNR;
00045 
00046    public:
00047       LsdDecoder(int deviceID, simth::DeviceSystemIntf* system, 
00048          const simth::PropertyList& pl);
00049       
00050       virtual ~LsdDecoder();
00051 
00052       virtual int getDataLength(int codedLength) const;
00053       virtual int getCodeLength(int rawLength) const;
00054 
00055       virtual void Decode(const CVectorSeq& input_vectors,
00056               const MatrixFreqSignal& channel_estimation, 
00057               simth::ModSeq& output_symbols,
00058               simth::ModSeq* output_softout);
00059 
00062       virtual void decodeOut(CVector& invec,
00063                  CMatrix& IsIMatrix, CVector& alpha);
00064 
00067       virtual CMatrix calcGmmse(CMatrix& IsIMatrix, CMatrix& Lambda);
00068 
00072       void setSNR(double snr);
00073 };
00074 
00075 
00076 
00077 } // namespace
00078 
00079 #endif // MIMO_LSD_DECODER_H
00080 
00081 
00082 

Generated on Tue Aug 9 14:43:10 2005 for mimolib by  doxygen 1.4.1