How to build an fm-stereo generator

FM-Stereo encoder
FM-Stereo encoderFM-Stereo generatorDIY FM-Stereo generatorFM-Stereo generator board
3.84616 5 13 Product



An fm-stereo generator device uses a complex modulation system, according to F.C.C standards, to achieve a compatible mono/stereo system of broadcasting. There are several approaches for building an FM-Stereo generator. In this tutorial we will show how to build an FM-stereo generator using mixed digital and analog techniques in order to achieve professional results. We use Direct Digital Synthesis (DDS) for carrier and pilot tone generation, an analog balanced modulator, based on the well known MC1496, for the generation of the sub-channel and an accurate op-amp based, matrix.

Creative Commons License
Tutorial on how to build an FM-Stereo Generator by George Adamidis is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Introduction – FM Stereo Broadcasting

FM stereo broadcasting was introduced during the early 1960s. The fm stereo system which approved for use by the F.C.C in the U.S and later was adopted worldwide, uses a complex modulation system to achieve a compatible mono/stereo system of broadcasting. Essentially, the system performs the multiplexing of two audio signals and further combines them into a complex baseband signal that modulates the FM carrier.

The system works by broadcasting a sum of the left (L) and right (R) audio channels, a pilot tone of 19 kHz and a double sideband suppressed carrier (DSBSC) sub-channel that contains the difference of the two audio channels.
 FM-Stereo Spectrum

Figure 1. The Composite FM-Stereo Spectrum 

In a simple monaural system, the FM channel is frequency modulated ±75KHz with the audio information and the monaural audio signal occupies the 0-15KHz spectrum of the transmitted frequency spectrum. When stereo is transmitted, the same monaural signal (left plus right channel combined) remains in the 0-15KHz spectrum of the FM stereo signal and an additional sub – channel, centered at 38 KHz, which is a double sideband suppressed carrier signal (DSBSC) is transmitted. This subcarrier is a left-subtracted-from-right (L-R) signal, which, when fed threw a matrix with the monaural main channel on the receiver, forms the individual left and right channels. An additional pilot career signal at 19 KHz is also transmitted. The pilot signal is phase-coherent (synchronized), to the suppressed 38 KHz carrier.

In a FM-stereo system, the monaural signal is modulated about 45%, the sub channel and the pilot tone are modulated 45% and 10%, respectively, so that the total modulation for a stereo FM- station is 100%. In modern stations where some SCA or RDS/RBDS subcarriers are also used, the modulation of the main and the sub channel are furthermore reduced in order to the total modulation  being kept less than 100% (±75KHz deviation).

In an FM-stereo receiver the 19 KHz pilot indicates that the transmission is stereo. The receiver regenerates the 38 KHz carrier and then uses coherent detection for the sub-channel. Coherent detection only works when the carrier is present at the receiver. Off course, the receiver can not obtain the 38 KHz carrier from the baseband signal directly (because the carrier is suppressed during transmission). The carrier is actually obtained in the receiver from the 19 KHz pilot signal.

 

The FM-Stereo Generator

The composite FM-stereo signal that modulates the FM carrier in any FM-station is generated from a device which is often called as an “FM-Stereo Generator” or as an “FM-Stereo encoder”. The typical theoretical diagram of an FM-stereo generator is shown on figure 2.

FM-Stereo Generator Block Diagram
Figure 2. Theoretical diagram of an FM-Stereo Generator

Both the left and the right audio channels are pre-emphasized, just as normal monaural signal would be. Then, the left and the right signals are both added and subtracted on a matrix. The audio signals added (L+R), form the monaural signal which is the main channel. The subtracted signals (L-R) are modulated on a 38 KHz carrier, to form the sub-channel. Since a balanced modulator is used, the carrier at 38 KHz will be suppressed, leaving only the modulated audio information. The 38 KHz oscillator is divided by 2 to produce the coherent 19 KHz pilot signal. Both the carrier and the pilot signal should be purely harmonics (sinusoidal), otherwise some undesirable (spurious - noise) signals may appear in the composite spectrum.   

The three components of the stereo signal, i.e. the main channel, the sub channel and the pilot tone, are combined at the proper ratios (45%, 45%, 10%), forming the composite output. 


Building the FM–stereo generator

An fm-stereo generator uses a complex modulation system, according to F.C.C standards, to achieve a compatible mono/stereo system of broadcasting. There are several approaches for building an FM-Stereo generator. Our design uses mixed digital and analog techniques. We use Direct Digital Synthesis (DDS) for carrier and pilot tone generation, an analog balanced modulator based on the well known MC1496 for the generation of the sub-channel and an accurate, op-amp based, matrix.


Generation of carrier and pilot signals

Before the DDS era, producing “clean” carrier and pilot signals at 38 and 19 KHz respectively, considered to be a difficult task. An oscillator based on a crystal or a ceramic resonator, was often used. Since there are not many 38 KHz resonators available in the market, carrier and pilot signals often produced after some divisions (usually by 12 and 24) from a 455-456 KHz ceramic resonator. The dividers were digital circuits based on flip-flops and modulo-x counters and they produced pulsed signals rather than “clean” sinusoids. Some filters had to be used for suppressing the harmonics and producing the sinusoids. Unfortunately, the filters could not fully suppress harmonics and they also produced some phase shift (pilot tone was phase sifted in respect to the carrier). Harmonics induced undesirable noise (indermodulation products) and significantly degraded the composite stereo signal. The phase shifts also, made carrier regeneration and coherent detection of the sub-channel problematic at the receiver.

After 90s decade, many designers preferred to use an alternative approach for carrier and pilot generation. That approach based on using a microcontroller for producing the carrier rather using an ordinary oscillator. The pilot tone was still derived by using division by 2. That approach gives some flexibility on choosing the reference crystal, but microcontrollers and dividers produce pulsed (digital) signals and strict filtering was yet essential.      

Fortunately, now (in 2013) we have DDS, which gives unlimited control over phase shift and the ability to produce clean (purely sinusoids) signals with great frequency accuracy and stability. Reference clock frequency (or crystal choice) is not very critical in a high resolution DDS and signal generation becomes simple, robust and completely accurate. Using a DDS also diminishes the necessity of using complex (high order) filtering.


The DDS generator

In our fm-stereo encoder, we use Direct Digital Synthesis (DDS) for carrier and pilot tone generation. The complete DDS circuit, in pdf form, is available here.

Referring to the circuit schematic, the carrier and the pilot signal are generated from two AD9834 DDS ICs. Every AD9834 is used to generate a pure sinusoid signal. Both DDS ICs are kept synchronized by using the same reference clock. A 18F1220 PIC microcontroller is used to control the DDS generators through SPI interface signalling. The SPI interface is implemented as “bit-banging” on normal I/O.

 DDS generation of carrier and pilot signal

Photo1. The DDS generator. The carrier and the pilot signal are generated from two AD9834 DDS ICs. An 18F1220 PIC microcontroller (at the center of the photo) is used to control the DDS generators. Both DDS ICs are kept synchronized by the same reference clock (seen at the left side of the photo). 
 


The microcontroller is used to initiate the generators with the proper frequency and initial phase during start-up. It is also used to turn off or turn-on any oscillator at any moment, according to users will. User’s commands are triggered from 2 external switches (J1 and J2). The AD9834 offers 28bits resolution over frequency and 12bits over phase control. By using a 10 MHz reference clock, we achieve frequency and phase accuracy of about 0.037 Hz (10MHz/2^28) and 0.09 degrees (360/2^12), respectively. The reference clock frequency is intentionally chosen to be high enough in order to can be easily filtered out from the carrier and the pilot signals, using only some simple R-C filters.  

The balanced modulator

Modern approach on building a low frequency balanced modulator tends to be the use of DSP. However, traditional analogue techniques are still used due to simplicity. After all, the composite fm-stereo signal is a completely analogue signal. We may live in the digital era, but we still using the old and good analogue fm-stereo.    

Following the tradition, we use an analogue balanced modulator for the generation of the 38 KHz sub-channel. Our modulator is based on the well known MC1496 IC, which is able to suppress the carrier for more than 60dbs. The complete electronic schematic is available here.


The balanced modulator


Photo2. The modulator is based on the well known MC1496 IC, which is able to suppress the carrier for more than 60dbs
 


Carrier suppression is defined as the ratio of each sideband output to carrier output for the carrier and signal voltage levels specified. The carrier suppression for the MC1496, is very dependent on the carrier input level. A low value of the carrier results in lower signal gain, hence lower carrier suppression. A higher than optimum carrier level results in unnecessary device and circuit carrier feed through, which again degenerates the suppression figure. The optimum carrier level for optimum carrier suppression at carrier frequencies in the vicinity of 500 kHz, is about 60mVrms (170 mVp-p). This Optimum value is achieved threw R47 adjustment.

Besides the carrier input, there is also another input for the L-R audio channel. The balanced modulator accepts both signals and performs the multiplication (L-R)*carrier in the time domain. A multiplication in the time domain is equivalent to frequency shifting in the frequency domain i.e. the L-R audio signal bandwidth is frequency shifted by the carrier frequency. This operation is better known as frequency mixing or shifting and the product of mixing is a DSB (Double Side Band) signal.

You may notice that there is a simple R-C filter at the carrier input of the modulator. This filter consists of the R56 and C48 and it is used to suppress the reference clock frequency (10 MHz). The DDS generates the carrier signal by using a 10bit DAC and the reference clock frequency is actually the sampling-frequency of the generated carrier signal. Since the reference clock frequency is much higher than the carrier frequency, it can be easily removed from the carrier signal by using a very simple low-pass (1st order) filter. The simple low-pass filter produces some phase shift, which is cancelled threw appropriate phase shifting of the DDS generator.

While the R47 is used to adjust carrier level at the input of the modulator, the R51 potentiometer is used to adjust the carrier suppression level. Carrier suppression better than 60db, can be easily achieved threw the appropriate adjustment of R51. For best performance, the modulator is powered from two independent voltage sources; +12 and -8V, respectively. These are the recommended supply voltages, as described in the MC1496 datasheet.

The op-amp matrix

The heart of the fm-stereo generator is the matrix circuit. This circuit accepts the left and the right audio signals, the pilot tone and the DSBSC signal from the modulator, and performs the appropriate additions and subtractions, in order to produce the composite FM–stereo signal. The circuit also pre-emphasizes the left and right audio channel, just as normal monaural signal would be. The matrix circuit is based on operational amplifiers. Click here to access the complete electronic schematic.  

Referring to the electronic schematic, U5A and U5B are used to pre-emphasize the left and right audio channel. U5A, R14-16,R20, R22,C49, C19, C21 and U5B, R28-29, R33, R38, R40, C23, C27, C50 form pre-emphasis networks for the pre-emphasis of the left and the right audio channel, respectively. A pre-emphasis network is actually a high pass filter and pre-emphasis refers to a process designed to increase the magnitude of some higher frequencies with respect to the magnitude of lower frequencies. The pre-emphasis network characteristics are shown on figure 3.

In Europe, fm broadcasters use 50μς pre-emphasis, while it is 75μs in the U.S. Our FM-stereo generator uses 50us pre-emphasis, because it was built and tested in Europe (Greece). However, it can be easily changed to 75μs by simply changing C17and C23 to 2.7nF. 

50us pre-emphasis response
Figure 3. Pre-emphasis netwok response curve.

Pre- emphasis on the transmitter and the minor operation (de-emphasis) on the receiver, are used to improve the overall signal-to-noise ratio by minimizing the adverse effects of the noise which is louder at higher frequencies. While the mirror operation is called de-emphasis, the system as a whole is called emphasis.

Fm channel is inherently very noisy and this makes emphasis very essential. Emphasis is also used in monaural broadcasting but it is even more important for FM-stereo. This is due to the fact that the fm-stereo signal carries most of its information in high frequencies located between 22 and 54 KHz and noise tends to be louder on those high frequencies. In the receiver side, decoding the stereo channel into left and right, means that the noise is shifted down into the audible range.

Referring to the electronic schematic of the matrix again, U6A is used as a subtracter and produces the L-R signal, and U6B is used as an adder which produces the L+R sum. U7 is the final adder which accepts the pilot tone, the main channel and the sub-channel and produces the composite output. At this final stage, we have also provided an input (P8) for any SCA or RDS/RBDS subcarriers.

R12, R31 and R37 are used to adjust the proper ratios for combining the three components of the stereo signal, i.e. the pilot tone level, the sub channel level and the main channel level, respectively. Proper adjustment of these potentiometers is essential for the optimum operation of the stereo-encoder. 

You may also notice that R55 and C47 are forming a low -pass filter for the pilot tone. This filter is used to eliminate the reference clock frequency (10 MHz), from the pilot signal. Besides the final output, which is P5, there are two other outputs. Those are the P3 and P6 outputs that are used to provide the left and the right audio signal, respectively, to an external VU-meter.  

Adding a VU meter

By adding a VU-meter we will give a professional look to our design. Besides that, the VU meter is essential to be used to display the representation of the signal level. You may use any VU-meter you wish. There is only one restriction; you must use a vu meter which have high enough input impedance otherwise you could overload the matrix circuits.  

In our stereo-generator we use a LED type, accurate Stereo Vu-meter which is connected to P3 and P6 outputs. The recommended VU-meter requires a power supply of +5V / 800mA. This power could be provided from the stereo generator’s power supply unit or from a separate power supply unit.


The power supply unit

Our fm-stereo generator uses a simple power supply unit which is based on 78XX and 79XX linear regulators. Click here, to download the complete electronic schematic

Referring to the electronic schematic, U9, U10, U11 and U12 are used to provide +5V, +12V, -12V and -8V respectively. The DDS generator section is powered from +5V only, while the modulator uses both +12V and -8V. The matrix section uses ±12V of symmetrical power supply.

The VU-meter could be also powered from U9, but it is better to be powered from a separate power unit, due to its high current requirements. However, if you decide to power it from U9, remember to use a large heat sink.     


PCB artwork and firmware

FM Stereo Generator PrototypeIn order to make things easy for the hobbyist, we have designed a printed circuit board for our FM-stereo generator. Here, we provide complete PCB details and the firmware for programming the microcontroller. 

FM-Stereo Generator - PCB Artwork (paid-download)
FM-Stereo Generator Board - Composite drawing

We use a double-sided printed circuit board with metal-plated holes. However, you could build the PCB without any plated holes. In that case, you should solder some through-hole components on both sides. 

Excluding the AD9834 ICs, the PIC microcontroller and the clock generator, all other components are of through-hole type and they must be placed on the top-side of the board. The microcontroller, the DDS ICs and the clock generator must be placed on the bottom surface of the PCB. All resistors, except for those used on the matrix, are of 1/4W -5% type. In the matrix, we use low-tolerance 1% resistors and low tolerance (5%) capacitors.   

In order to program the PIC microcontroller on board, you will need the firmware which is provided below (.hex file) and a PIC programmer like MPLAB ICD 3 or PICKIT-3 .

FM Stereo encoder firmware in .hex file
FM-Stereo Generator - Source code (paid-download)

The source code is very simple. The microcontroller is used to initialize the DDS generators and then periodically checks J1 and J2, running on an infinite loop. J1 and J2 are used to turn on or off the carrier and (or) the pilot signal, thus enabling or disabling the stereo broadcasting.

You may notice that besides main there are only very few other routines in the code. These routines are responsible for initializing and turning on or off the carrier and (or) the pilot signal according to user's will and also implementing the SPI interface for the DDS chips, as “bit-banging” on normal I/O.

Finally, there is also another essential parameter regarding the correct phase relationship between the carrier and the pilot signal. The correct phase relationship between those signals is essential for achieving maximum stereo-separation. The optimum phase relationship has been adjusted once through code, and normaly, there is no need to be done again. However, due to components tollerances, you may face any drifts after building your own device. If you wish to build a perfect device you'll have to alter the phase relationship parameter by modifying the code lines marked by the “Phase shift value” comment. These code lines are located in the void Pilot_on (void) routine and are used to set the initial phase parameter on the pilot tone DDS generator (please, refer to the AD9834’s datasheet for more details about the phase parameter). For details on how to perfectly calibrate the phase difference between carrier and pilot signals, please refer to the FM Broadcast Measurements Application Note. 

Since the power supply unit is included on board, you will only need to connect an external 2x12V / 2A, transformer on P9, in order to power-up the circuit. For complete assembly details, refer to the composite drawing.

 

Calibrating the FM-Stereo Encoder

Calibrating the FM-Stereo EncoderIn order to calibrate the FM-generator, you will need an oscilloscope and an audio-signal generator. The calibration process includes 5 steps as described below:

  1. Adjust the carrier level at the input of the modulator. Connect your oscilloscope on R47’s tap. You should measure a 38 KHz sinus waveform, which is the carrier. Adjust R47, in order to get 160mVp-p on its tap, in respect to ground.

  2. Achieve carrier null by means of the bias trim potentiometer R51. Turn R19 and R36 at zero scale (fully anticlockwise). Connect the oscilloscope on any pin of C30. Normally, you will get a 38 KHz sinus waveform on your oscilloscope.  Adjust R51 in order to get 0Vp-p (null the carrier).  Well, you will never get the absolute zero, but just some mVp-p (around 5mVp-p or less).  

  3. Combine main-channel and sub-channel at the proper ratio. Set R36 at full-scale and R19 at zero-scale. Connect an audio signal generator on R audio input and apply a 1 KHz audio tone of about 0.6Vp-p. Short-circuit J2 to turn off the pilot tone. Measure the output of the generator using an oscilloscope. Adjust R37 and R31 in order to get a 3Vp-p signal, like the one shown on figure 4.  

  4. Adjust the pilot level. Set R19 and R36 at zero scale (full anticlockwise). Open J2 to turn on the pilot tone. Measure the output of the generator using an oscilloscope. You should measure a 19 KHz sine wave. Adjust R12 trimmer, in order to get a 340mVp-p signal.

  5. Adjust the VU-meter. Set the left and right channel of the VU meter at 0-db for 0.6Vp-p input. Adjust by using the trim potentiometers on VU-meter’s board.

Balance of main and sub-channel
Figure 4. Right Channel only: Used to Balance Main and Sub-channel

You’ve done! The FM-generator is now ready for use. 

For more informations on how to calibrate the FM-Stereo generator, please refer to the FM Broadcast Measurements Application Note.

 

About this tutorial

A.G wrote this tutorial in Greek for his students, during some high school lectures on FM-Stereo Broadcasting. Here, we provide a brief translation in English. The FM-Stereo Generator prototype was built and tested in Greece on January of 2013. The generator is now used on commercial radio broadcasting.

The FM-Stereo Generator project has been also published on AudioXpress magazine - on June 2014 issue.

If you have any new ideas, some additions, corrections or complaints feel free to provide feedback. Everyone will appreciate any further contribution.

List of the comments:
No vote yet
2018-11-12 13:03
Great tutorial. Is there a chance I can obtain (buy) all necessary parts to build this device? (PCB, hex files, etc)
You must be registered in order to post a comment