https://github.com/gagniuc/mix-two-signals-in-ruby
This is an implementation designed in Ruby. This implementation is able to mix two signals/vectors (A and B) in arbitrary proportions. This source code uses a novel mathematical model published in the journal Chaos. The model is called Spectral Forecast.
https://github.com/gagniuc/mix-two-signals-in-ruby
algorithm algorithms code mix numerical-analysis numerical-methods ruby signal signal-processing source waveform
Last synced: 7 months ago
JSON representation
This is an implementation designed in Ruby. This implementation is able to mix two signals/vectors (A and B) in arbitrary proportions. This source code uses a novel mathematical model published in the journal Chaos. The model is called Spectral Forecast.
- Host: GitHub
- URL: https://github.com/gagniuc/mix-two-signals-in-ruby
- Owner: Gagniuc
- License: mit
- Created: 2022-03-04T22:18:50.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-03-16T20:45:22.000Z (over 3 years ago)
- Last Synced: 2025-01-15T07:31:52.906Z (9 months ago)
- Topics: algorithm, algorithms, code, mix, numerical-analysis, numerical-methods, ruby, signal, signal-processing, source, waveform
- Language: Ruby
- Homepage:
- Size: 9.77 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Mix two signals in Ruby
This is an implementation designed in Python that is able to blend two signals in arbitrary proportions. This source code uses a novel mathematical model published in the journal [Chaos](https://aip.scitation.org/doi/10.1063/1.5120818). The model is called Spectral Forecast. The Mix-two-signals implementation is a demo that is able to mix two signals (A and B) in arbitrary proportions. Different cases can be seen, with two different waveform signals that are combined depending on a value d, called a distance. The value of d can be arbitrary chosen between zero and a value Max(d), which is defined as the maximum value found above the two vectors that represent these signals. In this specific case d = 33. The output is the M signal calculated from the two signals A and B, such as:
M = 15.37,35.12,51.12,57.17,47.89,43.08,60.35,67.91,63.72,48.03,33.99
The Spectral Forecast equation adapted to signals can be observed below:

What can you expect from the code above? The effect of the above source code in the case of longer signals can be seen in a [graphical form](https://gagniuc.github.io/Waveform-mixing-with-Spectral-Forecast-in-JS/) below:
.gif?raw=true)
.gif?raw=true)
.gif?raw=true)
# References
- Paul A. Gagniuc et al. Spectral forecast: A general purpose prediction model as an alternative to classical neural networks. Chaos 30, 033119 (2020).
- Paul A. Gagniuc. Algorithms in Bioinformatics: Theory and Implementation. John Wiley & Sons, Hoboken, NJ, USA, 2021, ISBN: 9781119697961.