You Are Here: Home » AVR ATmega Projects » Sensor - Transducer - Detector Projects » Frequency Division Multiplexing for a Multi-Sensor Wireless Telemetry System Using Atmel MEGA32L

Frequency Division Multiplexing for a Multi-Sensor Wireless Telemetry System Using Atmel MEGA32L

Our System acquires several different sensor inputs, FM modulates each level by manipulating Direct Digital Synthesis increment values, transmits the resulting signal on a commercial FM radio band, and receives and decodes the original sensor levels.


The problem of encoding multiple input signals into a finite bandwidth space is one that is common in engineering problems today. It is found in communication system encoding schemes from cell phones to cable TV. The problem is that the system needs to carry several independent signals over a single communications medium. Some examples of data encoding for these data communication problems include time division multiplexing (i.e. telephone lines), code division multiplexing (cell phones), statistical multiplexing (internet), and frequency division multiplexing (cable TV).

Frequency Division Multiplexing for a Multi-Sensor Wireless Telemetry System Using Atmel MEGA32L

Frequency Division Multiplexing for a Multi-Sensor Wireless Telemetry System Using Atmel MEGA32L

We have designed a wireless telemetry system that utilizes frequency division multiplexing (FDM) to encode several input sensor values onto a single analog channel for transmission. By using a single transmitter, we can simplify design and reduce bandwidth consumption and power costs. We have encoded three-axis accelerometer data using our technique. Direct digital synthesis (DDS) was utilized to convert three separate ten bit number intro three orthogonal frequencies. A linear combination of these orthogonal signals was FM modulated into the commercial FM band. We also have developed a decoding scheme which reconstructs the original input levels.

High Level Design


  • Our original design centered on developing a telemetry system for an instrumented Frisbee. We choose to explore this project due to our mutual interest in the games of ultimate Frisbee.
  • We ran intro several problems completing our ultimate goal. However, we achieved the core functionality of our system. Specifically, we were able to encode, transmit, receive, and decode the acceleration sensor values. We utilized FDM encoding due to our experience with DDS in lab two and our limitation of a single transmitter for our system.

Background Mathematics

  • Frequency Modulation of Signals

Our signal consisted of a double FM process. One Frequency Modulation step was used to put the accelerometer A/D values into the same signal using Frequency Division Multiplexing. Each A/D value was used to increment a direct digital synthesis sine wave and 3 sine waves of varrying frequency were summed and output to the tuning pin of a voltage controlled oscillator (MAX2606) within the commercial FM band (88-108MHz).

      • Direct Digital Synthesis

We Chose to encode our signals using frequency division multiplexing due to the

orthogonality of frequency components

      and the fact that we were limited to a single transmitter onboard our system. This allowed us to encode all 3 signals onto one channel. We used our experience with direct digital synthesis from lab 2 to generate our sine waves with frequencies varrying in 3 different bands.

We decided that we wanted to use a commercially available FM demodulator (i.e. a walkman) to demodulate the wireless signal, so we knew we’d be limited to the range of human hearing for frequency encoding. We chose to fit our 3 accelerometer values into a 10kHz range. Each accelerometer analog level would be converted into a 10-bit number on the A/D port of the Atmel.

    • Three 10 bit numbers means we needed 3*2^10 or 3072 unique frequency values.
    • Over a 10kHz range, 3072 levels would have to be separated by at most 3.25Hz
    • The resolution of the DDS increment is Fs/2^x where x is the width of your accumulator and Fs is the sample rate of your output signal.
    • In order to factor in guard bands between signals and to provide an even division of our MCU clock frequency (8MHz), we chose a sample rate of 160kHz and an accumulator width of 16-bits.
    • This accumulator has a resolution of 2.44Hz per level.
    • One level corresponds to 3.2mV and this corresponds to 0.025 g on the accelerometer.
    • At 160kHz sample rate, we had 50 MCU clock cycles in which to read in the A/D values, and carry out the direct digital synthesis
    • Our three 10-bit acceleration levels were used as increments for these accumulators. Each acceleration level was given an offset before it was used as an incrementor. This offset set the bottom frequency of each band. The bands were selected to be:
      • 625Hz to 3125Hz (16-bit increment of 0x0100 to 0x0500)
      • 3125Hz to 5625Hz (0x0500 to 0x0900)
      • 5625Hz to 8125Hz (0x0900 to 0x0D00)
    • For each period of the DDS, each sine level was looked up from the 8-bit table for the three different accumulators. These three values were added together and output on port pins into an Analog Devices 5340 Digital to Analog Converter to create the FM and Frequency division multiplexed single channel signal.
      • Signal Acquisition & FDM Decoding

A commercially available FM radio tuned to the previously unoccupied segment of the 88-108MHz band where our transmitter resided. The audio output of the radio was directly connected to the mic port on a laptop and the RF-demodulated signal was acquired using the data acquisition toolbox in MATLAB.

Once acquired, the data was band pass filtered using 3 separate 7th order butterworth filters. The butterworth filter bands were designed around our calculated values for frequency levels with some buffer outside of the band due to the steep edgets of the 7th order filter. The resulting three waveforms were the three pure FM tones encoding our acceleration levels.

These three single channel FM signals were passed into the fmdemod function in the MATLAB communications toolbox. The signal output was a level corresponding to the frequency of the signal at any point in time. From here, the 3-D acceleration value had been decoded and ANY kinetic metric could be calculated.

  • Logical StructureAnalog Sensors
      • 3-axis Accelerometers
      • Signal Conditioning for analog acceleration levels

    Microcontroller DSP and Transmission

      • A/D aboard the MCU
      • Signal construction and digital output on MCU
      • D/A conversion in a hardware chip
      • Signal conditioning for transmission
      • FM Modulation and Transmission

    Acquisition, Demodulation, and Analysis

    • FM Demodulation and signal acquisition
    • FDM decomposition and FM demodulation
    • Arbitrary analysis on acceleration values

     Parts list:

ComponentUnit PriceQuantity
X-Y Axis Accelerometer +10g
Freescale MMA6231Q
Z Axis Accelerometer +8g
Freescale MMA1220D
Atmel MEGA32L$8.281
D/A convertor @3.3V and 10-bitsSample
Voltage Controlled oscillator with FM tuning pin
Dallas Semiconductor MAX2606
Voltage Regulator
Texas Instruments 3.3V regulator at 500mA
Voltage Regulator
Texas Instruments 5V regulator at 50mA low dropout
8 MHZ Crystal$0.581
Printed Circuit BoardFree space used on a board from an unrelated project
Various resistors/capacitors/inductors and potentiometers<$10.00


For more detail: Frequency Division Multiplexing for a Multi-Sensor Wireless Telemetry System

Leave a Comment

You must be logged in to post a comment.

Read previous post:
CubeSat Diagnostics board using Mega128

Introduction Sound Byte This project is a proof of concept diagnostic & testing board for use with the power board...

Scroll to top