diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-04-11 16:22:04 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-04-11 16:22:04 +0200 |
commit | eed7072d6336a3cfdc8b52eb20166529a4de4d81 (patch) | |
tree | 1505819a1216406e6f15c4315bed93750c7ed68d /src/tone-test-sim | |
parent | 3555e921a0c743dbc2cc10d8655827be975c61e0 (diff) | |
download | glutte-o-matic-eed7072d6336a3cfdc8b52eb20166529a4de4d81.tar.gz glutte-o-matic-eed7072d6336a3cfdc8b52eb20166529a4de4d81.tar.bz2 glutte-o-matic-eed7072d6336a3cfdc8b52eb20166529a4de4d81.zip |
Add some 1750 detection code to glutt-o-logic
Diffstat (limited to 'src/tone-test-sim')
-rwxr-xr-x | src/tone-test-sim/analyse.py | 6 | ||||
-rw-r--r-- | src/tone-test-sim/src/test.c | 17 |
2 files changed, 16 insertions, 7 deletions
diff --git a/src/tone-test-sim/analyse.py b/src/tone-test-sim/analyse.py index 8222213..b1b0649 100755 --- a/src/tone-test-sim/analyse.py +++ b/src/tone-test-sim/analyse.py @@ -4,10 +4,12 @@ import numpy as np import matplotlib.pyplot as plt dat = np.loadtxt("tone.csv", dtype=np.int32, delimiter=",") -# columns :"freq, threshold, num_samples, detector_output" +# columns :"freq, threshold, num_samples, detector_output, avg_rms" fig, ax = plt.subplots() -plt.scatter(dat[...,0], dat[...,1], c=dat[...,3].astype(np.float32)) +plt.scatter(dat[...,0], dat[...,1] / dat[...,4], c=dat[...,3].astype(np.float32)) +plt.xlabel("freq") +plt.ylabel("threshold over rms") plt.show() if 0: diff --git a/src/tone-test-sim/src/test.c b/src/tone-test-sim/src/test.c index 3bff6d7..716b7ae 100644 --- a/src/tone-test-sim/src/test.c +++ b/src/tone-test-sim/src/test.c @@ -33,7 +33,7 @@ int main(int argc, char **argv) { printf("Hello, ver %s\n", vc_get_version()); printf("Saving results to tone.csv\n"); - printf("freq, threshold, num_samples, detector_output\n"); + printf("freq, threshold, num_samples, detector_output, avg_rms\n"); FILE *fd = fopen("tone.csv", "w"); if (!fd) { @@ -48,12 +48,19 @@ int main(int argc, char **argv) for (int threshold = 100000; threshold < 4000000; threshold += 100000) { tone_init(threshold); - for (size_t j = 0; j < 200; j++) { - float samplef = cosf(j * 2.0f * FLOAT_PI * freq / AUDIO_IN_RATE); - int16_t sample = samplef * 32767.0f; + double accu = 0; + + for (size_t j = 0; j < 100; j++) { + const float samplef = cosf(j * 2.0f * FLOAT_PI * freq / AUDIO_IN_RATE); + const float noisef = (drand48() * 2.0f) - 1; + int16_t sample = (0.9f * samplef + 0.1f * noisef) * 32767.0f; + + accu += (sample * sample); + int r = tone_detect_1750(sample); if (r != -1) { - fprintf(fd, "%d,%d,%zu,%d\n",freq, threshold, j, r); + const double rms = sqrt(accu / (double)j); + fprintf(fd, "%d,%d,%zu,%d,%f\n",freq, threshold, j, r, rms); } } } |