Improved FM modulation speed

pwm
erikkaashoek 3 years ago
parent 0817853f53
commit 4f5396afd6

@ -1083,10 +1083,10 @@ void set_modulation_frequency(int f)
f = 50; f = 50;
if (f > 10000) if (f > 10000)
f = 10000; f = 10000;
#ifdef TINYSA4 //#ifdef TINYSA4
if (setting.modulation == MO_WFM && f > 2000) // if (setting.modulation == MO_WFM && f > 2000)
f = 2000; // f = 2000;
#endif //#endif
setting.modulation_frequency = f; setting.modulation_frequency = f;
dirty = true; dirty = true;
} }
@ -3555,12 +3555,18 @@ pureRSSI_t perform(bool break_on_operation, int i, freq_t f, int tracking) /
sinus_index <<= 1; sinus_index <<= 1;
modulation_steps >>= 1; modulation_steps >>= 1;
} }
if (modulation_steps > 8) {
for (int i = 0; i < modulation_steps/4+1; i++) { for (int i = 0; i < modulation_steps/4+1; i++) {
fm_modulation[i] = setting.modulation_deviation_div100 * sinus[i*sinus_index]/100; fm_modulation[i] = setting.modulation_deviation_div100 * sinus[i*sinus_index]/100;
fm_modulation[modulation_steps/2 - i] = fm_modulation[i]; fm_modulation[modulation_steps/2 - i] = fm_modulation[i];
fm_modulation[modulation_steps/2 + i] = -fm_modulation[i]; fm_modulation[modulation_steps/2 + i] = -fm_modulation[i];
fm_modulation[modulation_steps - i] = -fm_modulation[i]; fm_modulation[modulation_steps - i] = -fm_modulation[i];
} }
} else {
modulation_steps = 2;
fm_modulation[0] = (setting.modulation_deviation_div100*347)/100;
fm_modulation[1] = -fm_modulation[0];
}
} }
#else #else
config.cor_am = INITIAL_MODULATION_CORRECTION; config.cor_am = INITIAL_MODULATION_CORRECTION;

Loading…
Cancel
Save

Powered by TurnKey Linux.