Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21324 Discussions

FM Radio - Digital demodulation and modulation

Altera_Forum
Honored Contributor II
2,904 Views

Hi, 

 

I would like to make an ordinary FM Radio using FPGA and Verilog (alternatively simulink and DSP-builder). As you might expect I am a student and this will be my little hobby project. 

 

I would very much appreciate some tip on what hardware setup to use. Are there any analog interface (i.e. antenna->LNA->First downconverter->Filter->A/D and the other way around) to the DE2/DE1 development boards? Any suggestions are appreciated. 

 

And of course, since I am a student, the price could be an issue :).
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
1,118 Views

Gnu software radio may very well have some code you can use. Talk a well moneyed professer into supporting your project with a proposal and get him to buy the gnu software radio boards, but again there is lots of useful code signal processing software there to look at even if you can't afford their boards.

0 Kudos
Altera_Forum
Honored Contributor II
1,118 Views

Hi, 

 

A thread on FM demodulation is still hot at: 

 

http://www.alteraforum.com/forum/showthread.php?t=4696 

 

As I am still fresh with this thread I have this personal summary that may help: 

 

FM modulation: straightforward. try two frequencies, generate them in NCO according to symbol value. Per symbol you may generate one channel only or two(cos/sin) as this helps the RF side(single sideband). The NCO gives better result than having two look-up-tables (phase continuity issue). each sinusoid has to run fast for several cycles per symbol. 

 

upconversion: you can do some U/C in fpga if you can run fast enough, generate a carrier from another NCO(or lut) and multiply by your FM signal. You will need to upsample the FM signal before multiplication. Follow by DAC, some commercial DACs have further U/C functions. 

 

Downconversion 

A proper receiver needs to lock to carrier and symbol clock...this is no trivial 

In a student project, you can just loop back from ADC. 

To downconvert get a copy of your carrier and multiply the FM signal with cos and -sin to get I,Q baseband(needs a low pass filter to remove high sideband...but you may recover symbols without this filter). 

 

You then demodulate the I,Q: there are several methods: 

arctan method: m = d(arctan(Q/I)) oldest method, see above thread 

differentiated arctan : m = d(Q/I) /(1 + (Q/I)^2); * 

no-name : m = (I.dQ - Q.dI)/(I^2 + Q^2) see above thread 

 

where d = difference of current sample and previous sample of given term 

 

*The differentiated arctan is also documented in a link in the above thread, the document uses this name and is authored by three Eygptian engineers. The last two methods avoid measuring the arctan itself(for phase) 

 

Finally decimate back to original symbols  

Thus you can estimate your FPGA resource requirement from above summary 

designing the whole system will take several engineers(fpga,software,RF + managers) some 6 months or so to finalise as a functioning card but you can get some acceleration from DSP builder and any ready-made RF modules 

 

There is one important subtlety in all the above demodulation equations. The result is so small(either below one or just above) so you need to extract the information from the remainder of division. 

 

edit: I have ignored pulse shaping requirements.
0 Kudos
Altera_Forum
Honored Contributor II
1,118 Views

 

--- Quote Start ---  

Gnu software radio may very well have some code you can use. Talk a well moneyed professer into supporting your project with a proposal and get him to buy the gnu software radio boards, but again there is lots of useful code signal processing software there to look at even if you can't afford their boards. 

--- Quote End ---  

 

 

Thanks, these boards seems quite interesting. I will for sure be looking at that DSP-code. 

 

Now I'm thinking of building a receiver on my own and fit it to an Altera developing board. I've just started to look at some LNA designs.
0 Kudos
Altera_Forum
Honored Contributor II
1,118 Views

Thanks kaz, appreciate it.

0 Kudos
Reply