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)
70#if defined(__cplusplus)
110#if defined(SPANDSP_USE_FIXED_POINT)
121#if defined(SPANDSP_USE_FIXED_POINT)
130#if defined(SPANDSP_USE_FIXED_POINT)
131 x = (((int32_t) s->fac*s->v2) >> 14);
136 s->v3 = x - v1 + (amp >> 7);
138 s->v3 = s->fac*s->v2 - v1 + amp;
148#if defined(SPANDSP_USE_FIXED_POINT)
149#define goertzel_preadjust_amp(amp) (((int16_t) amp) >> 7)
151#define goertzel_preadjust_amp(amp) ((float) amp)
161#if defined(SPANDSP_USE_FIXED_POINT)
167#if defined(SPANDSP_USE_FIXED_POINT)
176#if defined(SPANDSP_USE_FIXED_POINT)
177 x = (((int32_t) s->fac*s->v2) >> 14);
178 s->v3 = x - v1 + amp;
180 s->v3 = s->fac*s->v2 - v1 + amp;
241#if defined(__cplusplus)
Definition: tone_detect.h:33
Definition: tone_detect.h:46
void make_goertzel_descriptor(goertzel_descriptor_t *t, float freq, int samples)
Create a descriptor for use with either a Goertzel transform.
Definition: tone_detect.c:59
float goertzel_result(goertzel_state_t *s)
Evaluate the final result of a Goertzel transform.
Definition: tone_detect.c:156
int goertzel_update(goertzel_state_t *s, const int16_t amp[], int samples)
Update the state of a Goertzel transform.
Definition: tone_detect.c:119
goertzel_state_t * goertzel_init(goertzel_state_t *s, goertzel_descriptor_t *t)
Initialise the state of a Goertzel transform.
Definition: tone_detect.c:70
void goertzel_reset(goertzel_state_t *s)
Reset the state of a Goertzel transform.
Definition: tone_detect.c:106
int periodogram_prepare(complexf_t sum[], complexf_t diff[], const complexf_t amp[], int len)
Definition: tone_detect.c:220
complexf_t periodogram_apply(const complexf_t coeffs[], const complexf_t sum[], const complexf_t diff[], int len)
Definition: tone_detect.c:233
int periodogram_generate_coeffs(complexf_t coeffs[], float freq, int sample_rate, int window_len)
Definition: tone_detect.c:248
float periodogram_freq_error(const complexf_t *phase_offset, float scale, const complexf_t *last_result, const complexf_t *result)
Definition: tone_detect.c:289
complexf_t periodogram(const complexf_t coeffs[], const complexf_t amp[], int len)
Definition: tone_detect.c:201
float periodogram_generate_phase_offset(complexf_t *offset, float freq, int sample_rate, int interval)
Definition: tone_detect.c:277