Electronic – arduino – FM Receiver, how it works

arduinofmled

Im working on a Visible light communication project. Its a simplex transmitter receiver setup using an LED to send data to a photodiode receiver. Im thinking of ways to encode the data for transmission and was wondering how exactly i would implement a Frequency Modulation setup. I know the basic concept of FM but dont understand how the receiver perceives these shifts in frequency(wouldnt it take a few cycles of high/low to even calculate frequency, and if so wouldnt this be a limit to max bitrate). Ill be using an arduino board to interpret the received signal. How would I go about using FM to send data from an LED to a receiver and decodw that information?

Best Answer

There are several ways to detect FM.

Today, this is generally done with a PLL (phase-locked loop). It's a voltage-controlled oscillator in a feedback loop. Via feedback, the voltage into the voltage-controlled oscillator is adjusted so that its output matches the input signal. This control voltage is the FM-demodulated signal.

In past days, other techniques were used, like ratio detectors. If the carrier is slow enough, you can use digital techniques to outright measure the time between zero crossings, or the number of zero crossings in a particular interval. Think of a low-pass and high-pass filter adjusted so that they both attenuate the carrier frequency equally. Any change in the carrier frequency will cause a relative difference in the amplitudes. There are more methods. Look up "FM demodulation".

Related Topic