Spectrum Simulation
Table of contents
Introduction
Spectrum Simulation generates synthetic Raman-like spectra with configurable peak structure, optional baseline, optional noise, and downloadable output.
How to use
- Open Toolbox Page.
- In Select Tool, choose Spectrum Simulation.
- Set Number of Spectra to Generate, Scale, and Select Spectra Structure.
- Configure the structure-specific controls for Distinct, Joint, or Consecutive peaks.
- Optionally enable Use Baseline and choose Polynomial, Exponential, Gaussian, or Sigmoidal baseline controls.
- Optionally enable Use Noise and set Noise Amplifier.
- Click Generate Spectra and download the result with Download Simulated data as CSV.
Behavior
Spectrum Simulation creates synthetic Raman-like spectra over the default Raman shift range. Peaks are generated as random Gaussian peaks, optionally arranged as separated peaks, paired regions, or consecutive overlapping regions. The output page shows an interactive line chart and a downloadable CSV.
Method
Each simulated peak is Gaussian:
\[g(x)=a\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)\]After peak generation, SpectraGuru normalizes and scales the spectra:
\[y_{\text{out}} = s\frac{y-\min(y)}{\max(y)-\min(y)}\]| Parameter | Tunable or fixed | Implementation |
|---|---|---|
| Number of Spectra to Generate | Tunable | Default 1, range 1-50 |
| Scale | Tunable | Default 1.0, range 0.01-10000.0 |
| Select Spectra Structure | Tunable | Distinct, Joint, or Consecutive |
| Distinct controls | Tunable | Average Number of Peaks, Peak Number Variance, Separation Factor |
| Joint controls | Tunable | Average Number of Regions, Region Number Variance, Clustering Factor |
| Consecutive controls | Tunable | Average Peaks per Region, Per Region Peak Variance, Clustering Factor |
| Baseline | Tunable | Optional Polynomial, Exponential, Gaussian, or Sigmoidal baseline |
| Noise | Tunable | Optional Gaussian noise with Noise Amplifier |
| Raman shift range | Fixed | 400 to 2000 |
| Resolution | Fixed | 1601 points |
| Peak amplitude range | Fixed | 5 to 100 before normalization |
| Peak width range | Fixed | 10 to 40 |
References
- SpectraGuru implementation,
generate_spectra, self-implemented synthetic Gaussian spectra generator. - NumPy Developers. Random sampling routines. https://numpy.org/doc/stable/reference/random/index.html