This commit is contained in:
Ahmet Inan 2024-04-15 15:30:05 +02:00
parent 38525c3187
commit d2c78e453e

View file

@ -9,12 +9,22 @@ package xdsopl.robot36;
public class FrequencyModulation {
private float prev;
private final float scale;
private final float Pi, TwoPi;
FrequencyModulation(float bandwidth, float sampleRate) {
scale = sampleRate / (bandwidth * (float) Math.PI);
this.Pi = (float) Math.PI;
this.TwoPi = 2 * this.Pi;
scale = sampleRate / (bandwidth * Pi);
}
private float wrap(float value) {
if (value < -Pi)
return value + TwoPi;
if (value > Pi)
return value - TwoPi;
return value;
}
float demod(Complex input) {
float phase = input.arg();
float delta = (phase - prev) % (float) Math.PI;
float delta = wrap(phase - prev);
prev = phase;
return scale * delta;
}