예제 #1
0
        public void Receive(float floatSample)
        {
            /* Square the sample.  Greater than zero is a 1 (true) and less than
             * zero is a 0 (false) */
            bool bitSample = (floatSample >= 0.0f);

            /* Feed the delay buffer and fetch the one-baud delayed sample */
            bool delayedBitSample = mDelayBuffer.get(bitSample);

            /* Correlation: xor current bit with delayed bit */
            bool softBit = bitSample ^ delayedBitSample;

            /* Low pass filter to smooth the correlated values */
            bool filteredSoftBit = mLowPassFilter.getAverage(softBit);

            /* Send the filtered correlated bit to the slicer */
            mSlicer.Receive(filteredSoftBit);
        }