Beispiel #1
0
        public void Configure(float sampleRate, int bufferSize)
        {
            //Complain if too low
            if (sampleRate < BAUD_RATE)
            {
                throw new Exception($"The sample rate specified, {sampleRate}, is too low to be useful. Must be >= {BAUD_RATE}.");
            }

            //Create parts
            fmDemod = new FmBasebandDemodulator();
            fmDemod.Configure(bufferSize, sampleRate);
            amDemod          = new AmBasebandDemodulator();
            osc              = new Oscillator(sampleRate, -2400);
            symbolsPerSample = BAUD_RATE / sampleRate;

            //Make filter
            var filterBuilder = new LowPassFilterBuilder(sampleRate, 2080)
                                .SetAutomaticTapCount(200)
                                .SetWindow();

            filter = RealFirFilter.CreateFirFilter(filterBuilder);

            //Create buffer
            buffer?.Dispose();
            buffer = UnsafeBuffer.Create(bufferSize, out bufferPtr);
        }
Beispiel #2
0
 public AmDemodulator()
 {
     snr = new SnrCalculator();
     am  = new AmBasebandDemodulator();
 }