I'm trying to do FM modulation on a signal and pass it to the PC and demodulate it using matlab. Matlab requies the frequency deviation in addition to the carrier frequency to do the demodulation. I considered using timer 555, Xr2206 and Icl8038 to do the FM modulation but their data sheets don't show anything about the default frequency deviation or how to set it. How can I find it? and if there is another option to do FM modulation with a known frequency deviation please share it with me. I know that frequency deviation can be calculated by the modulation index, but even that I couldn't find it on the data sheets. Here are the links for the data sheets of the 3 chips.




Thank you

  • 2
    \$\begingroup\$ All 3 ICs you mention are not VCOs. They are timers and waveform generators. A VCO is a circuit where a frequency deviates as the result of changing a DC voltage. With all 3 ICs this can be done in one or more ways. You have to show a circuit showing how you make the waveform frequency deviate as a function of the voltage. You assume the frequency deviation is a property of the IC, it is not, it is a property of the complete circuit. \$\endgroup\$ – Bimpelrekkie Jan 12 '17 at 9:54
  • \$\begingroup\$ And most of them will also work as a VCO if you change the supply voltage. Or the temperature. Or you could use a resistor to convert a voltage into heat and change the temperature of the circuit. You still said basically nothing about how you change the frequency. If there was a special pin to influence the frequency by means of a voltage then the datasheet would show what the expected frequency deviation will be. \$\endgroup\$ – Bimpelrekkie Jan 12 '17 at 10:14
  • \$\begingroup\$ They are function generation chips, but the can be used as FM modulators by applying an input voltage. this is the circuit that I buitl with the timer 555: electrosome.com/fm-generation-using-555-timer and these two links show how to do FM modulation using XR2206 and ICL8083 google.ae/… mit.edu/~6.331/icl8038data.pdf \$\endgroup\$ – Isra Jan 12 '17 at 10:15
  • \$\begingroup\$ You can change set the frequency by setting up the resistors and capacitors.with no input the chipe produces only the carrier, but when an input is applied, the frequency varies correspondingly. at least that's what the datasheets say. \$\endgroup\$ – Isra Jan 12 '17 at 10:17
  • \$\begingroup\$ If you have another alternative to these chips, I can find them and research more on them \$\endgroup\$ – Isra Jan 12 '17 at 10:18

To produce an FM modulated carrier using a VCO, you directly modulate the frequency control voltage.

FM demodulation by VCO requires a little more, closing a PLL around the VCO, so that the VCO tracks the incoming signal, and the demodulated signal is the voltage on the VCO.

The obvious first order parameters to take account of are the voltage to frequency gain, and the range over which both will operate. You would use these to set the gain and range, deviation is just the maximum variation in frequency within the range. You choose a deviation within this range to suit your system.

In order to set the PLL parameters, you would also need to know the maximum modulation rate, and keep the PLL bandwidth well below this. You would need to choose a VCO that was capable of (rule of thumb for PLL stability) a rate at least 5 times higher than the system modulation rate.

Some important second order parameters that affect the quality of the modulator/demodulator you produce are the voltage to frequency linearity, which will affect the distortion, the control voltage noise, and if you want the modulation to go down to DC, the control voltage drift and tempco.

It might be easier to start with a VCO like that found in a 4046 PLL IC. This is specified for linearity and drift, and already has the PLL circuitry on chip (apart from the filters) to complete the demodulator. For the modulator, you can simply ignore the PLL section.

Modulation index is deviation/rate. You can get any index you like from 0 to infinity by manipulating the rate or deviation down to zero, so that's not really a design criterion. Depending on the application, you find different modulation indexes. Digital transmission tends to use indexes in the order of 1 for bandwidth efficiency, in FM audio the maximum index varies between a few and a few thousand depending on audio frequency.

  • \$\begingroup\$ yes that's what I noticed from my readings. The problem is that Matlab requires the frequency deviation in order to demodulate. I tried setting values but it won't recover the signal unless it matched the deviation used in the modulation phase. \$\endgroup\$ – Isra Jan 12 '17 at 11:09
  • 1
    \$\begingroup\$ +1 for the 4046, I've used that for just it's VCO function. \$\endgroup\$ – George Herold Jan 13 '17 at 20:27
  • \$\begingroup\$ @Isra it depends what you mean by 'it'. Matlab is just a programming language. The demodulator I wrote in it would tell you the deviation, index, modulation frequency, and you didn't have to tell it anything. Sounds like you need to get a better demodulation program. \$\endgroup\$ – Neil_UK Jan 13 '17 at 21:43
  • \$\begingroup\$ @neil_UK I'm using Matlab Simulink's blocks, and none of them do that, without a carrier frequency and a frequenvy deviation they wont demodulate. Even if we used Matlab's fmmod and fmdemod functions, frequency deviation is still a parameter. Thanks. \$\endgroup\$ – Isra Jan 14 '17 at 12:25
  • \$\begingroup\$ whatever happened to programming? \$\endgroup\$ – Neil_UK Jan 14 '17 at 13:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.