00001 /*************************************************************************** 00002 ofdmreceiverbce.h - description 00003 ------------------- 00004 begin : Mit Mai 22 2002 00005 copyright : (C) 2002 by Peter Haase 00006 email : mail@p-haase.de 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 OFDMRECEIVERBCE_HEADER 00029 #define OFDMRECEIVERBCE_HEADER 00030 00031 00032 #include "ofdmreceiver.h" 00033 00034 00035 namespace simthlib 00036 { 00037 00038 00039 00045 class OfdmReceiverBce : public OfdmReceiver 00046 { 00047 private: 00048 00049 protected: 00050 00051 //obviously, it's pointless to use BCE without channel estimation: 00052 bool useChannelEstimation() const {return true;} 00053 00081 virtual void blindChannelEstimation(const simth::ModSeq& modSymbols, simth::ModSeq* transfer) const = 0; 00082 00083 00084 virtual void channelEstimation(const simth::ModSeq& modSymbols, 00085 simth::ModSeq* transfer) const 00086 {blindChannelEstimation(modSymbols,transfer);} 00087 00088 public: 00089 00090 OfdmReceiverBce(int deviceID, simth::DeviceSystemIntf* system, 00091 const simth::PropertyList& pl, 00092 int oversampling, int carr, double guardTime, 00093 double dist, ofdm::FillUpScheme diffScheme); 00094 00095 void print(std::ostream &os) const; 00096 }; 00097 00098 00099 } 00100 00101 #endif