26#if !defined(_SPANDSP_TONE_DETECT_H_)
27#define _SPANDSP_TONE_DETECT_H_
34#if defined(SPANDSP_USE_FIXED_POINT)
47#if defined(SPANDSP_USE_FIXED_POINT)
62#if defined(SPANDSP_USE_FIXED_POINT)
63#define goertzel_threshold_dbm0(len,thresh) (int) ((len*len*256.0*256.0/2.0*pow(10.0, (thresh - DBM0_MAX_SINE_POWER)/10.0))
64#define goertzel_threshold_dbmov(len,thresh) (int) ((len*len*256.0*256.0/2.0*pow(10.0, (thresh - DBMOV_MAX_SINE_POWER)/10.0))
66#define goertzel_threshold_dbm0(len,thresh) (float) ((len*len*32768.0*32768.0/2.0)*pow(10.0, (thresh - DBM0_MAX_SINE_POWER)/10.0))
67#define goertzel_threshold_dbmov(len,thresh) (float) ((len*len*32768.0*32768.0/2.0)*pow(10.0, (thresh - DBMOV_MAX_SINE_POWER)/10.0))
72#if defined(SPANDSP_USE_FIXED_POINT)
73#define energy_threshold_dbm0(len,thresh) (int) ((len*256.0*256.0/2.0)*pow(10.0, (thresh - DBM0_MAX_SINE_POWER)/10.0))
74#define energy_threshold_dbmov(len,thresh) (int) ((len*256.0*256.0/2.0)*pow(10.0, (thresh - DBMOV_MAX_SINE_POWER)/10.0))
76#define energy_threshold_dbm0(len,thresh) (float) ((len*32768.0*32768.0/2.0)*pow(10.0, (thresh - DBM0_MAX_SINE_POWER)/10.0))
77#define energy_threshold_dbmov(len,thresh) (float) ((len*32768.0*32768.0/2.0)*pow(10.0, (thresh - DBMOV_MAX_SINE_POWER)/10.0))
90#if defined(__cplusplus)
130#if defined(SPANDSP_USE_FIXED_POINT)
141#if defined(SPANDSP_USE_FIXED_POINT)
150#if defined(SPANDSP_USE_FIXED_POINT)
151 x = (((int32_t) s->fac*s->v2) >> 14);
156 s->v3 = x - v1 + (amp >> 7);
158 s->v3 = s->fac*s->v2 - v1 + amp;
168#if defined(SPANDSP_USE_FIXED_POINT)
169#define goertzel_preadjust_amp(amp) (((int16_t) amp) >> 7)
171#define goertzel_preadjust_amp(amp) ((float) amp)
181#if defined(SPANDSP_USE_FIXED_POINT)
187#if defined(SPANDSP_USE_FIXED_POINT)
196#if defined(SPANDSP_USE_FIXED_POINT)
197 x = (((int32_t) s->fac*s->v2) >> 14);
198 s->v3 = x - v1 + amp;
200 s->v3 = s->fac*s->v2 - v1 + amp;
212SPAN_DECLARE(
int) periodogram_generate_coeffs(
complexf_t coeffs[],
float freq,
int sample_rate,
int window_len);
222SPAN_DECLARE(
float) periodogram_generate_phase_offset(
complexf_t *offset,
float freq,
int sample_rate,
int interval);
261#if defined(__cplusplus)
Definition tone_detect.h:33
Definition tone_detect.h:46