0
1
mirror of https://github.com/radio95-rnt/fm95.git synced 2026-02-26 19:23:51 +01:00

change the pll logic a bit

This commit is contained in:
2025-03-24 16:45:32 +01:00
parent bccb8fb076
commit 0a27b39c43
3 changed files with 2 additions and 6 deletions

View File

@@ -20,7 +20,6 @@ void init_pll(PLL *pll, float freq, float loop_filter_bandwidth, float damping,
pll->loop_filter_state = 0.0f;
pll->kp = M_2PI * loop_filter_bandwidth;
pll->ki = (4.0f*damping*damping) * pll->kp * pll->kp;
pll->last_output = 0.0f;
pll->sample_rate = sample_rate;
pll->quadrature_mode = quadrature_mode;
}
@@ -31,7 +30,7 @@ float apply_pll(PLL *pll, float ref_sample) {
float vco_output = sinf(pll->phase);
if (pll->quadrature_mode) vco_output = sinf(pll->phase + (M_PI / 2.0f));
phase_error = ref_sample * pll->last_output;
phase_error = ref_sample * vco_output;
pll->loop_filter_state += pll->ki * phase_error / pll->sample_rate;
float loop_output = pll->loop_filter_state + pll->kp * phase_error;
@@ -48,7 +47,5 @@ float apply_pll(PLL *pll, float ref_sample) {
pll->phase += M_2PI;
}
pll->last_output = vco_output;
return vco_output;
}

View File

@@ -22,7 +22,6 @@ typedef struct {
float loop_filter_state;
float kp;
float ki;
float last_output;
int sample_rate;
int quadrature_mode;
} PLL;