02-16-2012 12:53 AM
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.
Solved! Go to Solution.
02-16-2012 01:59 AM
Arash, first of all look at theory behind frequency modulation.
E.g., Wikipedia has article on this subject:
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.
02-16-2012 02:23 AM
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:
02-16-2012 02:30 AM
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 ....?
02-16-2012 04:46 AM
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.
02-17-2012 10:26 PM
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)?
02-18-2012 12:00 AM
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.
02-21-2012 01:45 AM
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.