INET Framework for OMNeT++/OMNEST
Modulation.h
Go to the documentation of this file.
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