This makes Amplitude Modulated Pulse Train, which can be regarded as the discretized wave of the signal. Pulse Train can be defined by frequency and duty cycle, which can be temporarily changed, referring to PWM.

Dependents:   Interference_Simple

Revision:
2:b01e84ce3ae0
Parent:
0:6400e338266f
Child:
3:5e9675a0c08c
--- a/DSinGenerator.cpp	Wed Nov 27 23:03:42 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-#include "DSinGenerator.h"
-
-DSinGenerator::DSinGenerator(
-    uint16_t const arg_resolution_ofsin
-):
-    ampl_max(10),
-    freq_max(5000),
-    resolution_ofsin(arg_resolution_ofsin)
-{
-    init();
-    setParam(0, 4000);
-}
-
-DSinGenerator::DSinGenerator(
-    float const arg_ampl,
-    uint16_t const arg_freq,
-    uint16_t const arg_resolution_ofsin
-): 
-    ampl_max(10),
-    freq_max(5000),
-    resolution_ofsin(arg_resolution_ofsin)
-{
-    init();
-    setParam(arg_ampl, arg_freq);
-}
-
-void DSinGenerator::setParam(
-    float const arg_ampl,
-    uint16_t const arg_freq
-)
-{
-    setAmplitude(arg_ampl);
-    setFrequency(arg_freq);
-}
-
-void DSinGenerator::setAmplitude(
-    float const arg_ampl
-)
-{
-    ampl = arg_ampl;
-    for(int i = 0; i < resolution_ofsin; i++){
-        discretized_sin_p16m16[i] = static_cast<int32_t>(4095.0 / ampl_max * ampl * discretized_sin[i] );
-    }
-}
-
-void DSinGenerator::setFrequency(
-    uint16_t const arg_freq
-)
-{
-    freq = arg_freq;
-    pwth = 1000000 / freq / resolution_ofsin;
-}
-
-void DSinGenerator::init()
-{
-    discretized_sin = new float[resolution_ofsin];
-    discretized_sin_p16m16 = new int32_t[resolution_ofsin];
-    
-    for(int i = 0; i < resolution_ofsin; i++){
-        discretized_sin[i] = sin( 2.0 * M_PI * static_cast<float>(i) / static_cast<float>(resolution_ofsin));
-    }
-}
-
-float DSinGenerator::getValue()
-{
-    static int itr = 0;
-    return ampl * discretized_sin[itr++ % resolution_ofsin];
-}
-
-int32_t DSinGenerator::getValue_p16m16()
-{
-    static int itr = 0;
-    return discretized_sin_p16m16[itr++ % resolution_ofsin];
-}
-
-void DSinGenerator::getValueofSamplePoints(float arg_dsin[])
-{
-    memcpy(arg_dsin, discretized_sin, sizeof(float) * resolution_ofsin);
-}
\ No newline at end of file