IMPLEMENTATION OF DSP RADIO RECEIVER

advertisement
IMPLEMENTATION OF DSP RADIO
RECEIVER
Amaar Ahmad Syed
Project Goal
Implementation of a multi-demodulation scheme radio
receiver using the DSP Board Avr-32 that houses the Texas
Instruments 320C32
Dalanco Avr-32 DSP board
Overview
“ The Model AVR-32 is a high performance signal processing and data acquisition board for
the PCI Bus designed for desktop and embedded applications. Processing power is provided
by the Texas Instruments TMS320C32 DSP and Xilinx Virtex FPGA. High speed A/D and
D/A converters and a digital data connector form the I/O section. The digital data connector
may be configured as an IDE connector for direct-to-disk data acquisition and playback
applications” (Dalanco Spry)
Key Features
1. TI TMS320C32 DSP at 60 MHz
2. Xilinx Virtex FPGA
3. 512K Bytes SRAM
4. 512K Bytes Flash Memory
5. 3 MSPS or 25 MSPS 12 bit A/D Converter
6. 3 MSPS 12 bit D/A Converter
Target Schemes
1. Amplitude Modulation
2. Single Side Band Modulation
3. Frequency Modulation
Analog Input
sent through
the CPU’s
I/O port
ADC (Analog to digital
converter)
Cathode ray
Oscilloscope
(CRO) for wave
and signal display
Xilinx FPGA for handling
input/output
TMS320C32 DSP runs the
Demodulation programs
Wave
Generator
DAC (digital to analog
converter)
Analog
Output
sent
through
the CPU’s
I/O port
Response from the Avr-32 appears on the screen
Command &
instruction
entry to Avr-32
Monitor Screen
Keyboard for control
Overall System Schematic
CPU System houses the PCB-slotted Avr-32
Actual System Setup
Wave
Generator
CPU with the
Avr-32 DSP
board
Cathode Ray
Oscilloscope
(CRO)
Keyboard for controlling
DSP
Amplitude Demodulation
Square-Law Envelope AM Detector
x(n)
H(w)
(.)2
Lowpass
filter
y(n)
√(.)
Single Side Band Demodulation
Cos(2 п
nfc/F)
Adding I and Q channels gives
USB whereas subtracting them
gives LSB
X(n)
X
Bandpass
filter
I(n)
Hilbert filter
Q(n)
-Sin(2 п
nfc/F)
X
Frequency Demodulation
FM demodulation by phase
detection
I(n)
Arc tangent
Differentiator filter
Q(n)
y(n)
Signal Processing (1)
Reading Input and Output Signaling
1. Avr-32 uses default FPGA configuration
2. Input/Output transmission of any data value requires formatting of the sort 80BFH
(80b is the Hex value read or written to the I/O buffer and F is format specific of the
FPGA configuration)

Calibration of the Cathode Ray Oscilloscope
1. Integer values send to and from the ADC and DAC range from 000H to FFFH that have to
be formatted.
2. 000H measures -2.19 V, 80B measures 0 V , FFFH measures 2.24 V
3. Floating points can be used but the digital signal processing for the project used the Avr32’s integer format
for
Signal Processing (2)
1. FIR filter of N Taps
N
y[n]=∑h[k] ×x[k-n]
k=0
or
H(z)=1+a×z-1+b×z-2+c×z-3 +…
Implementation Algorithm
Store N weights (max weight is N hex ) and N zeros as initialized inputs in pre-determined memory
locations
Loc1 and Loc2 respectively
Read x[n] from ADC, store it in Loc2, perform the convolution equation and re-adjust filter program’s pointers
to Loc2
After a window of 1000 locations for x[n] have been filled, revolve the last N inputs to the original Loc2
…Repeat
Signal Processing (3)
2. Magnitude scaling of real-time FIR
There are can be no decimals in integer format. Thus, relative scaling is performed to get desired response.
Example
If an input sample x[n] is 67H and its convolved sum using the convolution equation with 25 taps becomes
4237 H then not only is this figure is too much for the DAC but also lager than the original value.
Scaling
4237 H is scaled down to a range of less than FFF to a value corresponding to 4.0 V (i.e 0CCFH)
Question
Isn’t an FIR filter supposed to attenuate or at most not change the input value?
Answer
Yes that is true but here it is the relative difference that counts. We need a voltage level sufficient for audibility
(since this value will be fed into a speaker for listening to radio broadcast)
Those x[n]s whose processed output y[n] is to be attenuated, their corresponding value will be much less than
0CCFH
Actual Frequency Response
0
-2
0
1
3
5
6
7
20log10|H(ω)| dB
-4
-6
-8
-10
-12
-14
-16
-18
Frequency (KHz)
10
12
15
ADC Sampling Rates and Program Speed
Digital frequency = input frequency / sampling rate * 2*pi
We need high sampling rates to offset quantization noise
But limit on sampling rate imposed by program’s processing time for every input x[n]
N is number of taps
AM cycles
93+ N
SSB cycles
133+ 2N
Thus for AM demodulation, the max sampling rate is 60 MHz/ (93 +N) or about 500 KHz per
sample for a 25 tap filter
Digital Oscillator
I[n] = x[n] × sin (2π ωc)
Q[n] = x[n] × cos(2π ωc)
s1[n+1]= cos θ × s1[n] + (cos θ +1) × s2[n] for sine
s2[n+1]= (cos θ -1) × s1[n] + cos θ × s2[n]
for cosine
‘cos θ’ generated by arithmeaticall right shifting the contents of register having the
values of s1 or s2
I / Q channels and dual filter implementation in Master-Program
-sin (2π ωc)
FIR 1
Deformatte
d input
from
ADC
x
Digital Oscillator
Cos(2π ωc)
FIR 2
Testing using MATLAB simulation
MATLAB used in generating tap coefficients for the FIR filters. FFTs used to estimate
the desired filter frequency response and compare with actual response.
Example (To check Band-Pass Filtering for AM)
Input: A sinusoid with a 1.0 V peak to peak sinusoid provided
FIR Taps:
11
-1 -11
-1
1
-9
12
1
10
-1 -10
-1 -12 1
1
10
-1 -10
1
11
-1 -11
1
(25 taps burned in RAM memory)
Desired Output: The a sinusoidal wave should be generated between 4 to 7 KHz
with very low peak to peaks on either side of this band.
Test Output: Band-pass range of 5.1 and 8.4 KHz and low peak to peaks on either
side
Project Re-Assessment
1. End of Project
Goals met for AM and SSB , FM is incomplete
2. Frequency Translation
(Project expansion)
AM, FM or SSB signals too high frequency for the ADC or the processor to handle.
Tunable frequency down-conversion required for a complete communications system
to handle the radio bandwidth.
3. System as a Digital Receiver
(Project expansion)
The DSP receiver already has digital oscillator, mixers and multiple filtering modules.
This system can act as a prototype for handling digital demodulation schemes as well.
Programmability offers versatility in running numerous Digital and of course analog
schemes
Actual Lowpass Filtering on CRO
The lower wave is the input and the upper one is the attenuated output with a
frequency more than the cutoff
Amplitude Demodulation
The first CRO wave is the simulated squared AM signal. The second CRO wave is the
demodulated DC component after lowpass filtering of the same wave.
Single Side Band Demodulation
The first figure above is the simulated wave for the USB signal. The
second sinusoidal CRO wave is the recovered message from the
signal.
Hilbert Filtering
The above CRO waves show the effect of a Hilbert filter. Notice the
90 degree phase difference between the input and the output
Finished!
Download