#include "timefilter.h"
struct TimeFilter {
- /// Delay Locked Loop data. These variables refer to mathematical
- /// concepts described in: http://www.kokkinizita.net/papers/usingdll.pdf
+ // Delay Locked Loop data. These variables refer to mathematical
+ // concepts described in: http://www.kokkinizita.net/papers/usingdll.pdf
double cycle_time;
double feedback2_factor;
double feedback3_factor;
{
self->count++;
if (self->count == 1) {
- /// init loop
self->cycle_time = system_time;
} else {
double loop_error;
self->cycle_time += self->clock_period * period;
- /// calculate loop error
loop_error = system_time - self->cycle_time;
- /// update loop
self->cycle_time += FFMAX(self->feedback2_factor, 1.0 / self->count) * loop_error;
self->clock_period += self->feedback3_factor * loop_error / period;
}