Hi Jeff,
What follows is a short description of the experimental set-up. I may have occasional access to e-mail over the next week, so feel free to ask any questions. Files are listed at the bottom. (I realize you won't be using MATLAB, but the code is quite straightforward and can probably help you a lot.)
I hatcheted a single DfMUX to receive two signals (received signal
and reference sinusoid
). Both are characterized as follows:
Received signal |
Amplitude (at signal generator, not ADC) |
80 mV P-P |
Frequency |
10.66 MHz (10.6601315) |
AM Signal Frequency |
30 Hz |
AM Modulation Depth |
70% |
Reference carrier |
Amplitude (at signal generator, not ADC) |
90 mV P-P |
Frequency |
10.66 MHz (10.660100) |
Don't be surprised by the funny frequency numbers. The function generators are not synchronized in any way (two separate units on two separate crystals), and they don't match the DfMUX either. So, I spent much of the data collection time looking at an oscilloscope and trying to keep the signals synchronized by hand.
Both of these signals pass into DfMUX #0. Channels are referenced sometimes using 0-based indexing (0-7) and sometimes using 1-based indexing (1-8); it's impossible to avoid the confusion, so be aware. I'll use 1-based indexing in this document.
Channels 1 and 2 receive the signal
. Mixers 1 and 2 are tuned orthogonally. Thus, the ouput from channels 1 and 2 are I and Q components of
.
Channels 4 and 5 (yes, I'm aware the numbering here is weird -- sorry!) receive the reference sinusoid
. Mixers 4 and 5 are tuned orthoganally; thus the output from channels 4 and 5 are the I and Q components of
.
All channels are dumped sequentially into the same FIFO. Data comes off the 5th decimating FIR (see the block diagram I gave you), at a sampling rate of
. Even though there's nothing useful on channels 3,6,7 or 8, they're present in the FIFO as well.
I've attached a rather long dump of the UDP stream. If you're looking for "good" data, take it off the
end of the stream, not the beginning: there's a long tuning sequence where I twiddled with the DfMUX.
To mark the start of good data, I turned off the function generator creating $%r(t)%$ about 500,000 samples (e.g. of channel 1) before stopping data collection. Look for a short gap in channels 1 and 2 to find it.
I've also attached MATLAB code used to analyze the data. You can use it to figure out how channel data is embedded in the stream.
Down-mixed output |
|
channel PSDs |
|
Everything looks very good. It doesn't seem like there will be any problem getting 60 dB of dynamic range.
Note, again, that the function generators were
not operated off a single time base, and the quadrature mixers were only approximately tuned to be orthoganal. Thus, we can expect even better results using the final firmware and "real" signal.
This topic: Main
> TWikiUsers >
GraemeSmecher >
GraemeSmecherWorkbook > HoloDemodulatorWorkbook
Topic revision: r7 - 2013-11-21 - TWikiGuest