NoiseWhite.cc
Go to the documentation of this file.
1 #include <utl/MathConstants.h>
2 #include <utl/NoiseWhite.h>
3 #include <utl/RandomEngine.h>
4 #include <CLHEP/Random/RandFlat.h>
5 
6 using namespace std;
7 using namespace utl;
8 
9 using CLHEP::RandFlat;
10 
11 NoiseWhite::NoiseWhite(double parTemperature, RandomEngine* parRandomEngine)
12 : Noise(parRandomEngine),
13  fNoiseTemperature(parTemperature)
14 {
15 }
16 
18 {
19 }
20 
21 complex<double> NoiseWhite::GetSpectralFieldNoiseAtFrequency(double parFrequency, double parBandwidth) const
22 {
23  double phase = RandFlat::shoot(&fRandomEngine->GetEngine(), 0, 2*kPi); // random phase
24  double amp = SpectralFieldAmplitudeOfNoiseTemperature(fNoiseTemperature, parFrequency, parBandwidth);
25  return amp*exp(complex<double>(0,1)*phase);
26 }
Abstract base class for noise profiles.
Definition: Noise.h:26
RandomEngineType & GetEngine()
Definition: RandomEngine.h:32
Wraps the random number engine used to generate distributions.
Definition: RandomEngine.h:27
RandomEngine * fRandomEngine
Definition: Noise.h:37
constexpr double kPi
Definition: MathConstants.h:24
double fNoiseTemperature
Definition: NoiseWhite.h:36
virtual std::complex< double > GetSpectralFieldNoiseAtFrequency(double parFrequency, double parBandwidth) const
Returns the noise (complex value representing amplitude and phase) at a given frequency.
Definition: NoiseWhite.cc:21
virtual ~NoiseWhite()
Definition: NoiseWhite.cc:17
virtual double SpectralFieldAmplitudeOfNoiseTemperature(double parTemperature, double parFrequency, double parBandwidth) const
Definition: Noise.cc:20

, generated on Tue Sep 26 2023.