From: csilva1975 on
Hi all!

As the subject states, i want to generate a FM modulated signal in DSP, or
better yet a NBFM signal.

Reading thru this newsgroup I have found a very usefull paper at

h**p://www.claysturner.com/dsp/2nd_OSC_paper.pdf

that describes how to generate sine and cosine waves. Many thanks to the
author !
However, since the input signal is 12 bits, I whould need 1024 diferent
matrixes to modulate the output.
I have found another sine wave generator
(h**p://www.b-nm.at/sine-generation-tutorial/) that is simpler and I don't
need to store matrixes, unfortunatly it becomes very instable bellow the
2*pi/10 frequency.

Is there another/simpler way of digitaly generate a FM signal on a
microcontroller ?

Something about the system I'm designing:

The modulating input should be arround 3 Khz (voice) sampled at 12 bits.
The desired center frequency 6540 hz with a deviation of +/- 2500 hz. If my
math and knowlage doesn't fail me, the BW of the output signal should be
arround 11 Khz.
The sampling rate is 28847 hz (yes, I know this is a very odd number).

Some pointer are greatly apreciated.

Thanks.
Cesar

PS - I'm sorry for my spelling, but english is not my primary language.
From: John on
On Apr 5, 7:15 pm, "csilva1975" <cesard(a)n_o_s_p_a_m.hotmail.com>
wrote:
> Hi all!
>
> As the subject states, i want to generate a FM modulated signal in DSP, or
> better yet a NBFM signal.
>
> Reading thru this newsgroup I have found a very usefull paper at
>
> h**p://www.claysturner.com/dsp/2nd_OSC_paper.pdf
>
> that describes how to generate sine and cosine waves. Many thanks to the
> author !
> However, since the input signal is 12 bits, I whould need 1024 diferent
> matrixes to modulate the output.
> I have found another sine wave generator
> (h**p://www.b-nm.at/sine-generation-tutorial/) that is simpler and I don't
> need to store matrixes, unfortunatly it becomes very instable bellow the
> 2*pi/10 frequency.
>
> Is there another/simpler way of digitaly generate a FM signal on a
> microcontroller ?
>
> Something about the system I'm designing:
>
> The modulating input should be arround 3 Khz (voice) sampled at 12 bits.
> The desired center frequency 6540 hz with a deviation of +/- 2500 hz. If my
> math and knowlage doesn't fail me, the BW of the output signal should be
> arround 11 Khz.
> The sampling rate is 28847 hz (yes, I know this is a very odd number).
>
> Some pointer are greatly apreciated.
>
> Thanks.
> Cesar
>
> PS - I'm sorry for my spelling, but english is not my primary language.

I would recommend using a sine wave lookup table. For the frequency
modulation, compute cumulative sum of the voice signal, scaled for
desired peak deviation. It should be a straightforward task.

John
From: HardySpicer on
On Apr 6, 11:15 am, "csilva1975" <cesard(a)n_o_s_p_a_m.hotmail.com>
wrote:
> Hi all!
>
> As the subject states, i want to generate a FM modulated signal in DSP, or
> better yet a NBFM signal.
>
> Reading thru this newsgroup I have found a very usefull paper at
>
> h**p://www.claysturner.com/dsp/2nd_OSC_paper.pdf
>
> that describes how to generate sine and cosine waves. Many thanks to the
> author !
> However, since the input signal is 12 bits, I whould need 1024 diferent
> matrixes to modulate the output.
> I have found another sine wave generator
> (h**p://www.b-nm.at/sine-generation-tutorial/) that is simpler and I don't
> need to store matrixes, unfortunatly it becomes very instable bellow the
> 2*pi/10 frequency.
>
> Is there another/simpler way of digitaly generate a FM signal on a
> microcontroller ?
>
> Something about the system I'm designing:
>
> The modulating input should be arround 3 Khz (voice) sampled at 12 bits.
> The desired center frequency 6540 hz with a deviation of +/- 2500 hz. If my
> math and knowlage doesn't fail me, the BW of the output signal should be
> arround 11 Khz.
> The sampling rate is 28847 hz (yes, I know this is a very odd number).
>
> Some pointer are greatly apreciated.
>
> Thanks.
> Cesar
>
> PS - I'm sorry for my spelling, but english is not my primary language.

You know, one of these days a DSP engineer is gonna discover analogue
electronics.
There will be such a Eureka...I can solve a problem with a few
transistors...wow!!


Hardy
From: Muzaffer Kal on
On Mon, 5 Apr 2010 23:46:10 -0700 (PDT), HardySpicer
<gyansorova(a)gmail.com> wrote:

>On Apr 6, 11:15�am, "csilva1975" <cesard(a)n_o_s_p_a_m.hotmail.com>
>wrote:
>> Hi all!
>>
>> As the subject states, i want to generate a FM modulated signal in DSP, or
>> better yet a NBFM signal.
>>
>> Reading thru this newsgroup I have found a very usefull paper at
>>
>> h**p://www.claysturner.com/dsp/2nd_OSC_paper.pdf
>>
>> that describes how to generate sine and cosine waves. Many thanks to the
>> author !
>> However, since the input signal is 12 bits, I whould need 1024 diferent
>> matrixes to modulate the output.
>> I have found another sine wave generator
>> (h**p://www.b-nm.at/sine-generation-tutorial/) that is simpler and I don't
>> need to store matrixes, unfortunatly it becomes very instable bellow the
>> 2*pi/10 frequency.
>>
>> Is there another/simpler way of digitaly generate a FM signal on a
>> microcontroller ?
>>
>> Something about the system I'm designing:
>>
>> The modulating input should be arround 3 Khz (voice) sampled at 12 bits.
>> The desired center frequency 6540 hz with a deviation of +/- 2500 hz. If my
>> math and knowlage doesn't fail me, the BW of the output signal should be
>> arround 11 Khz.
>> The sampling rate is 28847 hz (yes, I know this is a very odd number).
>>
>> Some pointer are greatly apreciated.
>>
>> Thanks.
>> Cesar
>>
>> PS - I'm sorry for my spelling, but english is not my primary language.
>
>You know, one of these days a DSP engineer is gonna discover analogue
>electronics.
>There will be such a Eureka...I can solve a problem with a few
>transistors...wow!!

And find out that at 32nm you can't make the kind of transistor you
need? ;-)
--
Muzaffer Kal

DSPIA INC.
ASIC/FPGA Design Services

http://www.dspia.com
From: metal76 on
Hi Cesar, a great technique for waveform generation is Direct Digital
Synthesis (DDS): I used it in the past to generate a continuous phase
FSK modulation. It is really simple to implement on a microcontroller
and can be easily tailored for your needs: the memory footprint of the
lookup tables can be reduced by exploiting the sinewave simmetry (e.g.
tabulating only a quarter of a period) and using linear interpolation.

Have a look at the papers listed as "External Links" in
http://en.wikipedia.org/wiki/Direct_digital_synthesis, they are all
excellent tutorials (expecially those by L.Cordesses), then look at
the following sources for some insight into combining DDS with
interpolation:

http://i.cmpnet.com/chipcenter/dsp/images/dspsourced/DSP080201.pdf
http://i.cmpnet.com/chipcenter/dsp/images/dspsourced/DSP220201F1.pdf
(suggests using a 2nd lookup table for interpolation, good idea)
http://www.dattalo.com/technical/theory/sinewave.html
http://www.audiomulch.com/~rossb/code/sinusoids/

Regards,
Andrea