diff --git a/src/main/java/ru/r2cloud/util/Util.java b/src/main/java/ru/r2cloud/util/Util.java index 9db27ee0..8228ed4b 100644 --- a/src/main/java/ru/r2cloud/util/Util.java +++ b/src/main/java/ru/r2cloud/util/Util.java @@ -646,8 +646,8 @@ public static double convertAzimuthToDegress(double azimuth) { private static long findClosest(long fromSampleRate, long baudRate) { long carsonCutoff = 5000 + baudRate / 2; long toSampleRate = baudRate * 3; - if (toSampleRate < carsonCutoff) { - toSampleRate = carsonCutoff; + if (toSampleRate < carsonCutoff * 2) { + toSampleRate = carsonCutoff * 2; } int[] primeNumbers = new int[] { 11, 7, 5, 3, 2 }; long result = fromSampleRate; diff --git a/src/test/java/ru/r2cloud/util/UtilTest.java b/src/test/java/ru/r2cloud/util/UtilTest.java index 50575166..098d6dcf 100644 --- a/src/test/java/ru/r2cloud/util/UtilTest.java +++ b/src/test/java/ru/r2cloud/util/UtilTest.java @@ -157,20 +157,20 @@ public void testGoodSampleRateSdrServer() { public void testMinDividableSampleRate() { assertEquals(40_000L, Util.getSmallestDividableSampleRate(5_000, 240_000L)); assertEquals(16_000L, Util.getSmallestDividableSampleRate(5_100, 240_000L)); - assertEquals(7_000L, Util.getSmallestDividableSampleRate(1600, 21_000L)); + assertEquals(21_000L, Util.getSmallestDividableSampleRate(1600, 21_000L)); } @Test public void testDemodulatorInput() { assertEquals(46_875, Util.getDemodulatorInput(2_400, 46_875)); - assertEquals(9_375, Util.getDemodulatorInput(2_600, 46_875)); - assertEquals(10_000, Util.getDemodulatorInput(1200, 2000000)); + assertEquals(15_625, Util.getDemodulatorInput(2_600, 46_875)); + assertEquals(20_000, Util.getDemodulatorInput(1200, 2000000)); } @Test public void testSymbolSyncInput() { assertEquals(9_375L, Util.getSymbolSyncInput(1250, 46_875)); - assertEquals(7_000L, Util.getSmallestDividableSampleRate(1600, 21_000L)); + assertEquals(21_000L, Util.getSmallestDividableSampleRate(1600, 21_000L)); } @Test