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); }
public AmDemodulator() { snr = new SnrCalculator(); am = new AmBasebandDemodulator(); }