|
INET Framework for OMNeT++/OMNEST
|
00001 // 00002 // Copyright (C) 2006 Andras Varga 00003 // Based on the Mobility Framework's SnrEval by Marc Loebbers 00004 // 00005 // This program is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU General Public License 00007 // as published by the Free Software Foundation; either version 2 00008 // of the License, or (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program; if not, see <http://www.gnu.org/licenses/>. 00017 // 00018 00019 #ifndef MODULATION_H 00020 #define MODULATION_H 00021 00022 #include "IModulation.h" 00023 00027 class INET_API NullModulation : public IModulation 00028 { 00029 public: 00030 virtual const char *getName() {return "no bit errors";} 00031 virtual double calculateBER(double snir, double bandwidth, double bitrate); 00032 }; 00033 00037 class INET_API BPSKModulation : public IModulation 00038 { 00039 public: 00040 virtual const char *getName() {return "BPSK";} 00041 virtual double calculateBER(double snir, double bandwidth, double bitrate); 00042 }; 00043 00047 class INET_API QAM16Modulation : public IModulation 00048 { 00049 public: 00050 virtual const char *getName() {return "16-QAM";} 00051 virtual double calculateBER(double snir, double bandwidth, double bitrate); 00052 }; 00053 00057 class INET_API QAM256Modulation : public IModulation 00058 { 00059 public: 00060 virtual const char *getName() {return "256-QAM";} 00061 virtual double calculateBER(double snir, double bandwidth, double bitrate); 00062 }; 00063 00064 00065 #endif 00066