Note: This code is not currently compiling.
NOISE
is a lattice random walker simulator. The implementation allows arbitrary number of random walkers and dimension. The system consists of a concentric pair of hypercubes with the bigger one forming the bounding box and obeys periodic boundary conditions. This implementation cross-compiles on an Arduino compatible microcontroller as well as a PC system. When compiled on a microcontroller, the code can be used to generate Poisson Noise signals on any available digital pin. The compiled PC system can be used as an emulator or a stand alone application.
The random walkers in the HyperCube
emit a HIGH
signal, whenever a random walker passes through the smaller concentric cube. The inspiration behind this model was to crudely simulate diffusive fluorescent particles passing through a confocal volume. Outside the confocal volume (or the smaller hypercube), the signal emitted by the random walkers is LOW
.
The file macros.hpp
contains the macros the are used to enable/disable features and control the build environment.
→ For PC Systems, build using gcc
:
g++ -std=c++11 main.cpp -o noise
Execute:
./noise <optional-name>
main.cpp
- Executor code for PC System .
NOISE.ino
- Executor for Arduino compatible microcontrollers.
hypercube_engine.hpp
- Describes the simulation box.
minmax.hpp
- Describes the utility class used for controlling boundary conditions.
rand.hpp
- Random number generation interface.
pulse.hpp
- Describes the pulsing mechanism.
macros.hpp
- Describes the macros that control the features and the build.
utilities.hpp
- Generic utility functions.