LogNormalShadowing.h

00001 //
00002 // This program is free software: you can redistribute it and/or modify
00003 // it under the terms of the GNU Lesser General Public License as published by
00004 // the Free Software Foundation, either version 3 of the License, or
00005 // (at your option) any later version.
00006 //
00007 // This program is distributed in the hope that it will be useful,
00008 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00009 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00010 // GNU Lesser General Public License for more details.
00011 //
00012 // You should have received a copy of the GNU Lesser General Public License
00013 // along with this program.  If not, see http://www.gnu.org/licenses/.
00014 //
00015 
00016 #ifndef LOGNORMALSHADOWING_H_
00017 #define LOGNORMALSHADOWING_H_
00018 
00019 #include "AnalogueModel.h"
00020 
00042 class LogNormalShadowing: public AnalogueModel {
00043 protected:
00045   static DimensionSet dimensions;
00046 
00048   double mean;
00049 
00051   double stdDev;
00052 
00054   simtime_t interval;
00055 
00056 protected:
00062   double randomLogNormalGain() const;
00063 
00064 public:
00070   LogNormalShadowing(double mean, double stdDev, simtime_t interval);
00071 
00072   virtual ~LogNormalShadowing();
00073 
00077   virtual void filterSignal(Signal& s);
00078 };
00079 
00080 #endif /* LOGNORMALSHADOWING_H_ */