There is this great DSP processor chip called an FV-1 which is a dedicated audio dsp processor sandwiched between stereo 24bit ADC’s and 24bit DACs. It can be treated as a black box analog part with audio in and audio out only. With a few discretes, a crystal, and an eeprom, you can create a complete Software Defined Radio processor the size of a couple of postage stamps. The input should be I and Q baseband signals. I have also been able to demodulate AM by phase shifting the I signal at audio as the information is symmetric about the carrier.
I have developed a complete radio design, including: the Quadrature DC receiver, and the baseband dsp processor. I have AM mode, LSB and USB. I have included bandwidth filtering for the different modes and dsp AGC limiting. I am very pleased with the performance.
The FV-1 is programmed with a free compiler provided by Spin semi…the manufacturer. The FV-1 requires an eeprom to hold the programs and you can store up 8 selectable program blocks and each can have a different program function(such as my AM, USB, LSB modes). FV-1 parts and the dev board can be purchased at:
The FV-1 uses a very cryptic assembly language to create digital filters and perform signal processing. The commands include multiple operations all at once, such as multiplications, additions and reading writing memory. Each command is a building block for different filter structures and operations. You can execute 128 instructions per a sample and because of the efficient command structure you can create most single order filters in two instructions. There are a number different approaches to making allpass filters. One approach only requires two instructions per a filter section and uses FV-1 delay memory. I chose to do a different filter architecture requiring more instructions and more memory. It works well but the two instruction method works fine also. The FV-1 is very well documented and there are numerous coding examples. With a little effort, reading through all the documentation, one can get up and running with FV-1 development pretty quickly
Example AM demodulator and USB demodulator code for the FV-1 (quadrature inputs)
I program the eeprom with my microchip pickit2 programmer or the FV-1 dev board. If you are going to explore algorithm design with the FV-1, I would recommend getting the FV-1 Dev board. Below is the source code and hex file for my design such that one can just program the eeprom and use what I have done, as is. Once loaded on the eeprom, the three modes AM, USB and LSB are selected by pulling to ground: Sel1, Sel2 and sel3 respectively. This code is intended for quadrature inputs to the left and right input channels and the output is on the right channel out (the schematic below combines outputs of the left and right DAC so you should probably load the output into the left DAC as well).
Link To FV-1 Hex file:
DSP processor Schematic(minor update to TDA7052AT 07/01/15)
Basic Quadrature Direct Conversion radio
This is a variation of my last sampling receiver (link below)
allpass filter Calculator for IIR digital filter coefficients
allpass digital calculator
Quick Demo of USB..LSB…and then AM
Demo of AM from I signal only(no quadrature)
Code for AM demodulator with single signal input, (uses two instruction allpass filter structure)