cancel
Showing results for
Show  only  | Search instead for
Did you mean:
Anonymous
Not applicable
14,390 Views

## FM modulation with help of DDS

Jump to solution

Hi every one.

I really need help to create FM modulation (Not FSK). I tried a lot with DDS compiler but until now I didn't`t get the FM modulation as well as theory. I want to modulate 19KHz  with clock frequency of 12.160MHz.

I really appreciate if some one help me.

Thanks

1 Solution

Accepted Solutions
Explorer
16,804 Views
Registered: ‎12-08-2010

Arash, first of all look at theory behind frequency modulation.

E.g., Wikipedia has article on this subject:

http://en.wikipedia.org/wiki/Frequency_modulation

Look at following equation:

fc - carrier frequency (central frequency of modulated signal y(t) ),

f_delta - frequency deviation (usually, for wideband FM it is 75 kHz),

x_m(t) - modulating (audio) signal.

So in order to design FM demodulator:

1) Choose carrier frequency fc.

2) Make integrator of modulating signal. In digital domain integrator is just accumulator which calculates sum of input samples.

If your modulating signal can be only one sine signal (i.e., not voice or music), then you can bypass integrator stage, because integral of sine equals -cosine:

/

| sin(x) dx = -cos(x) + constant,

/

/

| cos(x) dx = sin(x) + constant,

/

3) Calculate instantaneous frequency: f = fc + f_delta * Integral.

4) Calculate phase increment of DDS.

Best Regards,
Vitaly.
18 Replies
Explorer
16,805 Views
Registered: ‎12-08-2010

Arash, first of all look at theory behind frequency modulation.

E.g., Wikipedia has article on this subject:

http://en.wikipedia.org/wiki/Frequency_modulation

Look at following equation:

fc - carrier frequency (central frequency of modulated signal y(t) ),

f_delta - frequency deviation (usually, for wideband FM it is 75 kHz),

x_m(t) - modulating (audio) signal.

So in order to design FM demodulator:

1) Choose carrier frequency fc.

2) Make integrator of modulating signal. In digital domain integrator is just accumulator which calculates sum of input samples.

If your modulating signal can be only one sine signal (i.e., not voice or music), then you can bypass integrator stage, because integral of sine equals -cosine:

/

| sin(x) dx = -cos(x) + constant,

/

/

| cos(x) dx = sin(x) + constant,

/

3) Calculate instantaneous frequency: f = fc + f_delta * Integral.

4) Calculate phase increment of DDS.

Best Regards,
Vitaly.
Anonymous
Not applicable
14,385 Views

thanks a lot. but how about if want to modulate the sound signal or voice signal? for example the stereo signal?

Explorer
14,382 Views
Registered: ‎12-08-2010

I have meant that you can skip integrator stage if modulating signal is sine. If it's arbitrary audio signal (voice, music), then use accumulator to integrate this sound signal.

Stereo FM is more complicated case which involves SSB modulation of audio signal first, and only after that - FM.

Short description of stereo FM can also be found on Wikipedia:

http://en.wikipedia.org/wiki/FM_broadcasting

Best Regards,
Vitaly.
Anonymous
Not applicable
14,378 Views

Thanks again Vitaly.

About fm stereo< i knew that and until now I create my FM stereo signal and now it is ready for FM modulation. With best help of you I think I can do it very well. But if I had some question, is it possible Iask you again? through this forum or private email or ....?

Best Regards

Arash

Explorer
14,369 Views
Registered: ‎12-08-2010

Sure, Arash. You can ask any well-defined question approriate to the topics of this forum. There are many talented persons here, who will be happy to answer questions.

Best Regards,
Vitaly.
Anonymous
Not applicable
14,356 Views

Thanks again vitaly

I didn`t get how to calculate instantaneous frequency? can you explain it more? and also when I calculate the instantaneous frequecy I have to pass it through DDS port ( pinc_in)?

Regards

Arash

Anonymous
Not applicable
14,353 Views

ok. Now I think generated fm signal. but there is some issues I want to share with you guys. If some knows the solution let us now ( or maybe I am wronge). based on Vitaly solution ( the steps he mentioned) I created a block diagram as I showed it here.

for steps Vilaty said I choose my carrier frequency to 760KHz( for example) and I have sinusoidal signal in 19KHz with sample rate of 3.04MHz. from carrier frequecy the number is 4096 with I added to output of my sinusoidal signal and pass it to DDS compiler. Now the frequency changed when the amplitude of 19KHz sinusoidal change.

But there is one problem : when the amplitude goes to high, the frequency is much more but the amplitude of FM signal on that position is quite smaler than when it is at lower frequency? I do`nt why this happen?

if anyone knows about this or if you want any more explaination please let me know.

Regards

Arash

Explorer
14,325 Views
Registered: ‎12-08-2010

Arash, could you attach some plots or model describing the problem?

Best Regards,
Vitaly.
Anonymous
Not applicable
14,315 Views

Dear Vitaly

Sorry for such a delay. I was on a trip. Acually I had funny mistake. The carrier value was 8624(1.6MHz) and the maximum and minimum value of sinusoidal was (3932,-3932) so the maximum frequency was above 2.5MHZ and minimum was 750KHz and that is why my output signal was to bad ( I only needed 75KHz deviation) when I solve the problem it was like sinusoidal agian in oscop but when I look at it is spectrum analyzer it was like FM modulation.

I have one question : My clock is 12.160MHz and I want to have FM modulation. Is there any problem That the input of DDS has the sample rate of 3.04MHz and the clock of DDS is 12.04MHz? I think the output is 12.04MHz in sample rate but is it any problem if the input has lower sample rate or not? I hope my question is clear. If it is not let me.

Regards

Arash

Explorer
11,203 Views
Registered: ‎12-08-2010

@Anonymous wrote:

I have one question : My clock is 12.160MHz and I want to have FM modulation. Is there any problem That the input of DDS has the sample rate of 3.04MHz and the clock of DDS is 12.04MHz? I think the output is 12.04MHz in sample rate but is it any problem if the input has lower sample rate or not? I hope my question is clear. If it is not let me.

DDS has clock rate 12.160 MHz (I presume, 12.04 MHz is a misprinting).
Modulating signal has sample rate 3.04 MHz ( f_mod = f_dds / 4 ).

Is it ok or not? Lets see...

If we are going to change phase increment of DDS once in a four cycles (i.e., with sample rate 3.04 MHz, when samples rate of DDS is 12.160 MHz), then it's equivalent to the case when modulating signal is upsampled to 12.160 MHz with zero-order polynomial interpolation (i.e., sample and hold latch). Zero-order polynomial interpolation, of course, produces non-linear distortion as it makes 'steps' in originally 'smooth' signal.

But if frequency band of your input (modulating) signal is much less then original sample rate (i.e., 19 kHz << 3.04 MHz), then steps produced by this interpolation are not high (in time domain) and power of new harmonics (in frequency domain) is relatively low.

So, if you are going to use audio signals ( < 20 kHz) at sample rate 3.04 MHz, then it's ok. But if it doesn't suits you, then you can add additional upsampler from 3.04 MHz to 12.160 MHz (using sinc-interpolation, for example).

Best Regards,
Vitaly.
Anonymous
Not applicable
11,200 Views

Thanks agian. yes it was misprinting.

I will go to open new threat to ask about how can I done dynamic range contro for audio processing to not go above 75KHz deviation. if you have some information plaese let me know.

Regards

Anonymous
Not applicable
11,178 Views

Dear Vitaly

I confused about FM modulation. Can we have FM modulation in I/Q mode?! I know there is two kind of FM modulation : FSk and FM modulation. But is it possible to have Fm in I/Q terms modulation? If yes would you please help me how can I implemet it n FPGA.

Regards

Arash

Explorer
11,175 Views
Registered: ‎12-08-2010

Hi, Arash.

FSK (frequency shift key) is applied only to modulate digital data. FM is, first of all, analog type of modulation.

All types of modulation (digital / analog) can be implemented using I/Q technique.

I/Q means two channels: in-phase and quadrature. Mathematically, I/Q signal is complex signal, i.e. s(t) = I(t) + j*Q(t).

In telecommunications digital I/Q signal is used only in so called "baseband" signal representation. To put it simple: "baseband" means signal with central (carrier) frequency f_c = 0.

When carrier frequency is not equal to zero and lowest frequency of signal is higher than zero: 0 < f_c, 0 < f_lowest, then I/Q representation has no reason, because such signal can be represented only by one channel of I/Q signal (or, mathematically speaking, real signal). It's called 'passband' signal.

So to answer your question: yes, frequency modulation can be done at zero frequency (baseband) using I/Q (complex) representation.

But it's hard topic for exaplanation on the forum. I can suggest you to study complex math, complex signal representation, complex Fourier transform. And after that you will be able to design baseband frequency modulator.

Best Regards,
Vitaly.
Anonymous
Not applicable
11,171 Views

Thanks. But for FM broadcasting one method can be creating FM with DDS and then use high speed DAC to upconvert it. Am I right?

Regards

Arash

Explorer
11,169 Views
Registered: ‎12-08-2010

Yes, there are many different ways to design FM transmitter.

For example:

1) Digital passband FM (real) -> DAC -> analog upconverter from IF to RF

or

2) Digital passband FM (real) -> high speed DAC -> amplifier (in case of low RF and high sampling frequency)

or

3) Digital baseband FM (I/Q) -> high speed DAC with embedded interpolation and digital mixer -> amplifier

or

4) Digital baseband FM (I/Q) -> 2-channel DAC (I/Q) -> analog quadrature upconverter from IF to RF

and so on...

Best Regards,
Vitaly.
Observer
11,150 Views
Registered: ‎02-09-2010

@arash-rezaee:

I don't know if this thread is still open/applicable.

I have made a complete implementation of an FM + RDS modulator complete with interface to DAC/upconverter.

If you still need help, please contact med via PM.

Regards

Anonymous
Not applicable
10,796 Views
Hi, ru551n!

Can you help my for fm stereo modulator via FPGA please?

Newbie
8,915 Views
Registered: ‎04-24-2014

Dear ru551n,

I want to implement the Digital FM modulator using DDS in FPGA. The modulation signal is sinusoidal with frequency 1KHz generated using DDS. The Carrier signal frequency is 3 MHz which is again generated using DDS. The sampling frequency is 45 MHz.

The Accumulator size in both the DDS architecture is 32 bits.

I had tried the architecture for FM implementation given in the forum but I am not getting the right spectrum....How we can change the modulation index of Digital FM signal