DSP based Software Defined Radio for FM Demodulation

DSP tools for FM demodulation.

By Ali Naveed, et al.

https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Attachments/34520/Design%20Report.pdf

Abstract:

Software Defined Radio is an emerging technology that has been an active re-search topic for over a decade. The terms software defined radio and software radio are used to describe radios whose implementation is largely software-based. These radios are reconfigurable through software updates. There are also wider definitions of the concept. A software defined uses digital signal processing (DSP) for coding, decoding, modulating, and demodulating data.

The proper implementation of SDR is far away from our approach and the experience which we have gained during the three years studies in the B.E program of Industrial Electronics. That is why, this project is the design, construction, and testing of an FM receiver. The design is split into two portions, the analog FM front end and the digital demodulator. The job of the front end is to receive and down convert the RF signal to a frequency that is low enough to be processed by a DSP processor.

The second portion of the design is the demodulator. The phase lock loop method of demodulating FM signals is used. The phase lock loop demodulator is designed in the digital domain on a DSP processor.

FCDproplus

Mac OS frequency control and Max external

notes

update 11/29/2013 – Checked the fcdpp in Mac OS 10.8 – still having issues with sync loss – also noticed that the fcdpp picks up interference from the Macbook trackpad in the shortwave bands – but after further research determined trackpad really does transmit RF.

My notes from September seemed a bit sparse. But I was able to determine that maxsdr5c.maxpat in maxsdr6 and the basicSDR4.maxpat were modified to use the new fcdpp external driver – also, maxsdr5c has the arrow keys mapped to awsd – due to an issue with metro/qmetro – but I will probably map them back again.

Am thinking about giving up on the fcdpp – but should test it out on windows first to make sure its not a hardware issue.

update 9/24/2013 – have written a Max external for the fcdp+ – its called funcubeplus.mxo

Its in the 6.1.3 sdk folder under basic examples. There’s a test patch in Max teaching examples called: funcube-pro-plus-test.maxpat

I have updated the code in tkzic/maxsdr6/maxsdr6 with the new drivers, etc., but have not posted to github – as am awaiting answer to sync issues.

Need to use the ad_portaudio core audio driver – or Max will crash.

Audio sync issues: the fcdp+ produces annoying buzzing artifacts during normal listening and especially right after you change frequency on the device. Have tried every possible Max audio setting to no avail. There have been other postings to the development group – so we’ll see what happens…

= previous post =

I’m listening to the fcdproplus radio in a Max SDR patch on the Macbook. Will need to fix a bug in the maxsdr5 patch with arrow keys – and write a new external for the pro plus – but here are the other details.

Using Alex Csete’s and David Pello’s fcdctrl code – see this post on R-pi

http://www.oz9aec.net/index.php/funcube-dongle/479-the-funcube-dongle-propro-on-the-raspberry-pi

Here’s the hacked fcdctrl code that works with the pro plus:

https://gitorious.org/fcdcontrol/fcdcontrol-proplus/source/d8055cfe4ba2e015a23f2ad8f4a80f4135441e74:

This project was set for linux, so I downloaded the most recent hidapi from here:

https://github.com/signal11/hidapi/downloads

and used the mac hid.c and hidapi.h code.

changed  Makefile to use these files and the Mac frameworks…

Code is in tkzic/fcdproplus/mac-fcdcontrol-proplus/

Also added this line to fcd.c – for the pro-plus

#define FCDPP 1

Also in Max, needed to use the ad_portaudio Core Audio driver – it crashed with the regular core audio driver.

 

Funcube with HSM upconverter

notes

After months away from this project I am at this moment listening to 40 meter cw signals via  the High Sierra Microwave (HSM) upconverter into the funcube via Max/MSP.

The Max funcube external doesn’t provide a way to turn on the bias tee current which powers the HSM device, so… I am using this version of the FCHid software to turn on bias tee, and set LNA to 0db, while using Max to tune the funcube. This is on windows and both programs can run at the same time.

http://uk.groups.yahoo.com/group/FCDevelopment/files/FCHID/

Prior versions of FCHid don’t have the checkbox for bias tee.

Next on the agenda will be to make this work in Mac OS.

First impressions: signals seem a bit weak, although it could be atmospheric conditions. Filtering isn’t great but its adequate – it just doesn’t have the ‘punch’ you get with a good selective receiver… Which is why nobody in their right might would actually design a shortwave receiver this way.

Update: got it working on mac os using version 3.2 of QtHid to toggle the bias-t – this version is the latest as of the time of this post and was bundled with the dmg.