Added a Gaussian noise generator
This commit is contained in:
@@ -59,6 +59,7 @@ public class RealSensor: Sensor {
|
||||
private var _meanNoise: Float
|
||||
private var _stdNoise: Float
|
||||
private let _quantizationBits: Int
|
||||
//private var gaussianNoise:
|
||||
|
||||
public init(
|
||||
sensorID: Int,
|
||||
@@ -87,6 +88,10 @@ public class RealSensor: Sensor {
|
||||
super.init(id: sensorID, sensorType: sensorType)
|
||||
}
|
||||
|
||||
// TODO: Override and implement read with Vincenzo lib here
|
||||
override public func read(_ environment: PhysicalEnvironment) -> PhysicalData {
|
||||
let value: PhysicalData = super.read(environment)
|
||||
|
||||
return value
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
|
||||
|
||||
32
Sources/RandomCpp/NormalGenerator.cpp
Normal file
32
Sources/RandomCpp/NormalGenerator.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
#include <random>
|
||||
#include <chrono>
|
||||
#include <GaussianRNG.h>
|
||||
|
||||
|
||||
GaussianRNG::
|
||||
GaussianRNG(
|
||||
float mean,
|
||||
float std_dev,
|
||||
unsigned seed
|
||||
) {
|
||||
this->seed = seed;
|
||||
this->generator = std::default_random_engine(this->seed);
|
||||
this->distribution = std::normal_distribution<float>(mean, std_dev);
|
||||
}
|
||||
|
||||
GaussianRNG
|
||||
::GaussianRNG(
|
||||
float mean,
|
||||
float std_dev
|
||||
) {
|
||||
this->seed = std::chrono::system_clock::now().time_since_epoch().count();
|
||||
this->generator = std::default_random_engine(this->seed);
|
||||
this->distribution = std::normal_distribution<float>(mean, std_dev);
|
||||
}
|
||||
|
||||
float GaussianRNG
|
||||
::generate() {
|
||||
return distribution(generator);
|
||||
}
|
||||
|
||||
|
||||
17
Sources/RandomCpp/include/GaussianRNG.h
Normal file
17
Sources/RandomCpp/include/GaussianRNG.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#include <random>
|
||||
|
||||
#pragma once
|
||||
|
||||
class GaussianRNG {
|
||||
|
||||
private:
|
||||
unsigned seed;
|
||||
std::default_random_engine generator;
|
||||
std::normal_distribution<float> distribution;
|
||||
|
||||
public:
|
||||
GaussianRNG(float mean, float std_dev, unsigned seed);
|
||||
GaussianRNG(float mean, float std_dev);
|
||||
|
||||
float generate();
|
||||
};
|
||||
1
Sources/RandomCpp/include/RandomCpp.h
Normal file
1
Sources/RandomCpp/include/RandomCpp.h
Normal file
@@ -0,0 +1 @@
|
||||
#include <GaussianRNG.h>
|
||||
Reference in New Issue
Block a user