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

channelestim.h

Go to the documentation of this file.
00001 
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 
00029 #ifndef CHANNELESTIM_H
00030 #define CHANNELESTIM_H
00031 
00032 #include "basicdevice.h"
00033 #include "phbib.h"
00034 #include "signals.h"
00035 #include "matrixseq.h"
00036 #include "arith.h"
00037 
00038 namespace mimo {
00039 
00040 using namespace simth;
00041 
00042 class MIMOChannel;
00043 
00054 class ChannelEstim : public Device
00055 {
00056    protected:
00057       ChannelEstim(int deviceID, DeviceSystemIntf* system,
00058            const simth::PropertyList& pl);
00059       const size_t nr_rx;
00060       const size_t nr_tx;
00061       size_t output_length;
00062       const MIMOChannel* channel;
00063 
00064       // Assert that the connection setup was correct
00065       void assert_connections() const;
00066       void assert_matrix_dim(const cs::CMatrix &testvec,
00067                  const std::string& which = "output vector")
00068      const;
00069   public:
00070       virtual void updateInputLengths();
00071       virtual void updateOutputLengths();
00072       
00073       void print(std::ostream &os) const;
00074 
00075       static void init(const std::string& fileName, 
00076                Device** dev, 
00077                DeviceSystemIntf* sysPtr, 
00078                int ID,
00079                const std::string& regionQualifier);
00080 };
00081 
00082 class EstimSingleCarrier : public ChannelEstim
00083 {
00084    public:
00085       EstimSingleCarrier(int deviceID, DeviceSystemIntf* system,
00086              const simth::PropertyList& pl);
00087       void process();
00088 };
00089 
00090 class EstimOFDM : public ChannelEstim
00091 {
00092    private:
00093       double delta_f;
00094       unsigned num_carrier;
00095    public:
00096       EstimOFDM(int deviceID, DeviceSystemIntf* system,
00097         const simth::PropertyList& pl);
00098       void process();
00099 };
00100 
00101 } // namespace
00102 
00103 #endif /* EQUALIZER_H */

Generated on Fri Jul 23 16:27:46 2004 for mimolib by doxygen 1.3.2