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

change pll settings

This commit is contained in:
2025-03-23 18:09:18 +01:00
parent ecbeb6a18f
commit 455795dc86
4 changed files with 6 additions and 6 deletions

View File

@@ -14,12 +14,12 @@ float hard_clip(float sample, float threshold) {
return fmaxf(-threshold, fminf(threshold, sample));
}
void init_pll(PLL *pll, float freq, float loop_filter_bandwidth, int quadrature_mode, int sample_rate) {
void init_pll(PLL *pll, float freq, float loop_filter_bandwidth, float damping, int quadrature_mode, int sample_rate) {
pll->phase = 0.0f;
pll->freq = freq;
pll->loop_filter_state = 0.0f;
pll->kp = M_2PI * loop_filter_bandwidth;
pll->ki = 0.25f * pll->kp * pll->kp;
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;
@@ -29,7 +29,7 @@ float apply_pll(PLL *pll, float ref_sample) {
float phase_error;
float vco_output = sinf(pll->phase);
if (pll->quadrature_mode) vco_output = sinf(pll->phase + (M_PI / 2.0f)); // 90 degrees
if (pll->quadrature_mode) vco_output = sinf(pll->phase + (M_PI / 2.0f));
phase_error = ref_sample * pll->last_output;

View File

@@ -26,5 +26,5 @@ typedef struct {
int sample_rate;
int quadrature_mode;
} PLL;
void init_pll(PLL *pll, float freq, float loop_filter_bandwidth, int quadrature_mode, int sample_rate);
void init_pll(PLL *pll, float freq, float loop_filter_bandwidth, float damping, int quadrature_mode, int sample_rate);
float apply_pll(PLL *pll, float ref_sample);