|
1
|
- David Farrell
- Dane Sprister
- Matthew Taylor
- Colorado Electronic Product Design, Inc.
|
|
2
|
- Introduction
- Abstract
- System Block Diagram
- Up/Down Conversion
- Modulation
- Demodulation
- Demonstration System
- Questions
|
|
3
|
- Colorado Electronic Product Design is an engineering consulting company
in Boulder, founded in 1996.
- Services we provide include:
- DSP
- Embedded Systems Hardware and Software
- Data Acquisition
- Telemetry Systems
- Motor Control Systems
- Programmable Logic: FPGA / CPLD / EPLD
- Analog Circuit Design
- Switching Power Supply Design
- PCB Design and Layout
- Analysis and Documentation
|
|
4
|
- This presentation by Colorado Electronic Product Design explores an FPGA
based configurable digital radio, and demonstrates an FM transceiver
design. The trend in software radios is moving toward an all-digital
design within a single chip. Most elements of a digital radio can now be
implemented within an FPGA. A high-speed analog to digital converter
board and an FPGA board are used to implement a working radio using
VHDL.
|
|
5
|
|
|
6
|
- The impedance of the PCB signal paths are wideband and 50 ohm
- Mixers, which can be bypassed, are provided for up/down conversion
- Key components are socket-ed, different bands can be targeted by
changing out filters, etc.
- The ADC and DAC support over 200 MSPS
- The main signal processing algorithms are performed by a configurable
FPGA
|
|
7
|
- A real mixer produces sum and difference tones or spectra:
- sin( ωC t ) • sin( ωLO t ) = ½ cos(
(ωC - ωLO)t ) - ½ cos( (ωC +
ωLO)t )
- Filtering is required to select only the desired component.
- A complex or quadrature mixer produces a single tone or spectra:
- ej ωc t • e-j
ωLO t = ej (ωc
- ωLO )t
- or
- [ cos( ωC t ) + j sin( ωC t ) ] • [cos(
ωC t ) - j sin( ωC t )]
- = cos( (ωC - ωLO)t ) + j sin( (ωC
- ωLO)t )
- The mixer complexity is doubled, real and imaginary or in
phase and quadrature paths are required.
|
|
8
|
- Ф is the desired time varying signal
- sin( ωC t + Ф ) • cos( ωC t ) =
- ½ sin(Ф) + ½ cos( ωC t + Ф)
- Filter out the carrier and the signal remains
- ½ Ф ≈ ½ sin(Ф), for Ф < π/4
|
|
9
|
- The mixed signal contains two frequencies:
- If the local oscillator frequency is chosen to be ωC – ωIF,
the two resultant frequencies are: ωIF and 2 ωC
- ωIF
|
|
10
|
- The mixed signal contains two frequencies:
- If the local oscillator frequency is chosen to be ωC - ωIF,
the two resultant frequencies are: ωC and ωC
- 2ωIF
|
|
11
|
- Undersampling is a method that uses a sampling frequency below the
Nyquist rate for the signal of interest
- It intentionally aliases an image of the signal into the digitized
spectrum
- Works if the Bandwidth of the desired signal is less than ½ the sample
frequency
|
|
12
|
|
|
13
|
- The purpose of this section is to:
- Present algorithms for implementation of an FPGA controlled FM
modulator.
- Present a hardware platform that can be used to implement the design of
different modulation implementations.
|
|
14
|
- Overview of FM Radio and FM Radio sub carriers
- Outline of Direct Digital Synthesis Architecture
- Implementation of Modulator Reference design
- Overview of the Analog Board
|
|
15
|
- Commercial FM radio broadcasts at 88MHz to 108MHz
- There is a separation of 200kHz between adjacent stations.
- The peak frequency deviation is 75kHz.
- The left and right channels are added and subtracted to generate L+R and
L-R.
- The L+R (monophonic) and L-R (stereo) signals are preemphasized.
- The L-R signal is modulated and added to the L+R and 19kHz pilot signal
prior to the FM modulator block.
|
|
16
|
- Signal to be transmitted is a monophonic signal.
- Left and right channels are not present, so they do not need to be
added and subtracted to get L+R and L-R.
- Because left and right channels are not both present a 19kHz pilot is
not required.
- Preemphasis is not used.
- The input audio signal is not DSB-SC for a 38KHz carrier (because there
is no pilot signal).
|
|
17
|
- The FM reference design uses DDS architecture to modulate the line in
signal.
|
|
18
|
- The phase accumulator:
- Tracks the phase of the sine wave.
- Uses a modulus n counter to allow the sine wave frequency to change
quickly using a tuning word.
- Is incremented every system clock cycle by the value of the tuning
word.
|
|
19
|
- The output of the phase accumulator is connected to a phase to amplitude
converter.
- The value of the phase accumulator is truncated and mapped to a sine
wave lookup table.
- Without phase accumulator truncation, the amount of memory required for
the lookup table is too large.
|
|
20
|
- Several components were used to implement the modulator:
- PCM3500 – audio CODEC component to read ADC values from the line in
port.
- FM Modulator – Modulator component contains the phase accumulator and
converters to calculate amplitude to frequency and frequency to tuning
word.
- Sine Wave Look up Table.
- Dac5674 – output sine wave to
Digital to Analog Converter
|
|
21
|
- This component interfaces with the PCM3500 16-bit audio CODEC.
- This component shifts the 16-bit ADC value from the audio CODEC serially
and stores the value in a 16-bit register.
|
|
22
|
- The audio CODEC value is converted from 2’s compliment to a binary
offset value.
- The value is then converted from an amplitude to a frequency.
- The frequency is converted to a tuning word value.
- The values used for conversions are Q16,
so the values are converted back to Q0 values by shifting the
values.
- The tuning word is added to a pre-calculated tuning word for 10.625MHz.
- The tuning word is added to the value in the phase accumulator (this
tuning word is added to the phase accumulator every system clock cycle).
- The phase accumulator value is output to the top.vhd level.
|
|
23
|
|
|
24
|
- The phase accumulator value is truncated and the top 14 bits are taken
into the sine wave lookup table component as an address.
- 16,384 amplitude points making up a full cycle of a sine wave are stored
in this component as an integer array (8-bit values).
- The 8-bit amplitude value is output to the top.vhd level for output to
the Digital to Analog Converter.
|
|
25
|
- The 8-bit amplitude value from the sine wave lookup table is placed in
an output register in the top.vhd level (placed in the top 8-bits of the
14-bit DAC output register).
- The output register is mapped to the dac5674 component.
- The 14-bit output register is clocked out to the DAC and, if the
Transmit/Receive switch is depressed, transmitted.
|
|
26
|
|
|
27
|
|
|
28
|
- Through Quadrature Detection
|
|
29
|
|
|
30
|
|
|
31
|
- The ADC samples a 10.7MHz IF at 66.5Mhz with 13bits resolution
- Significantly faster than IF of 10.7MHz provided by the analog down
converter.
- ADC provides a Data Ready signal for latching the data bus.
- ADC data is in binary offset.
Binary offset is converted to 2’s complement.
- This is done by inverting the most significant bit of the ADC data
register.
|
|
32
|
- A limiter is used to improve signal to noise ratio.
- The limiter hysteresis band is set to +-120 ADC counts. This squelches
the ADC input noise.
- Similar to a comparator design in the analog domain.
- Output level is set to 50% of full scale to prevent overflow.
- When sampling a FM signal there is no information in the amplitude.
- Perform sign extension from 13bits to 16bits.
|
|
33
|
- The 66.5MHz sample frequency is then down sampled to create a 8.3125MHz
IF.
- The IF frequency of 10.7 MHz is sampled at 8.3125 MHz, producing a
flipped image at 5.925 MHz and a positive image at 2.3875 MHz.
- A center frequency of 2.3875Mhz will be chosen for the band pass filter,
removing the 5.925Mhz reflection.
|
|
34
|
|
|
35
|
|
|
36
|
|
|
37
|
|
|
38
|
|
|
39
|
|
|
40
|
|
|
41
|
|
|
42
|
|
|
43
|
|
|
44
|
- A VHF FM Transceiver
- Utilizes a conventional mixer front end with an IF of 10.7MHz
- A high speed ADC samples the IF at 66.5MHz.
- A modular FPGA board decimates the signal and performs the modulation
and demodulation.
|
|
45
|
|
|
46
|
|
|
47
|
- Preemphasizing the transmitted signal can reduce noise greatly.
- Noise increases linearly with frequency.
- Weaker high frequency components (beyond 2.1kHz) are boosted before the
modulator using a preemphasis filter with a transfer function of Hp(jω).
- The higher frequency components are deemphasized in the receiver using
a deemphasis filter with a transfer function of 1/Hp(jω).
|
|
48
|
- RDS uses a 57kHz subcarrier (3rd harmonic of 19kHz pilot).
- Transmits data at 1187.5 bits per second with error correction.
|
|
49
|
- HD Radio combines analog and digital signals into an AM or FM radio
station’s bandwidth.
- HD Radio provides nearly CD quality audio (CD quality is available with
100kbps transmission).
- There are 4 FM hybrid digital/analog modes offered: 100, 112, 125, and
150kbps. A pure digital option
with up to 300kbps enabling extra features.
- In regular hybrid mode a station uses full 130kHz analog bandwidth and
an extra 70kHz for the digital signals (using 400kHz total).
- Uses Coded Orthogonal Frequency Division Multiplexing (COFDM)
|
|
50
|
- A simple sine wave oscillator can be created using a reference clock,
counter, and sine wave look up table.
- This implementation is not flexible for generating different
frequencies as to generate other frequencies requires changes to the
reference clock.
- Modulation based on divide counters are difficult to implement as
division is required to move between time and frequency.
|
|
51
|
|
|
52
|
- The code is not vendor specific
- IP cores are not used
- All of the source code is visible to the designer
- -- Example: The Hilbert Transform
- w0_1 <= x;
- B0W0_1 <= b0_1 * w0_1;
- B2W2_1 <= b2_1 * w2_1;
- rightsum1 <= B0W0_1 + B2W2_1;
- PROCESS (reset, demodClk) BEGIN
- IF (reset = '1') THEN
- w1_1 <= (others => '0'); -- clear taps
- w2_1 <= (others => '0');
- y_1 <= (others => '0');
- ELSIF (demodClk'EVENT and demodClk = '1') THEN
- w2_1 <= w1_1; -- update taps
- w1_1 <= w0_1;
- y_1 <= rightsum1(31 DOWNTO 16);
-- right shift for Q16
- END IF;
- END PROCESS;
|
|
53
|
|
|
54
|
|
|
55
|
|