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 downmixed_psd.png
channel PSDs psd_plots.png

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.

Useful Files
dfmux_scope.m: dfmux_scope.m MATLAB analysis code
sfigure.m: sfigure.m MATLAB analysis code (helper)
upd_stream.dat: upd_stream.dat Raw data stream from UDP

Topic attachments
I Attachment Action Size Date Who Comment
Unknown file formatm dfmux_scope.m manage 4.2 K 2007-08-17 - 14:59 GraemeSmecher  
PNGpng downmixed_psd.png manage 7.8 K 2007-08-17 - 14:52 GraemeSmecher  
PNGpng fg_trials_noqch_aug16_mixed_1066.png manage 7.4 K 2007-08-16 - 15:52 GraemeSmecher  
PNGpng fg_trials_noqch_aug16_ref_1066.png manage 6.3 K 2007-08-16 - 15:51 GraemeSmecher  
PNGpng fg_trials_noqch_aug16_sig_1066.png manage 6.3 K 2007-08-16 - 15:51 GraemeSmecher  
PNGpng psd_plots.png manage 19.4 K 2007-08-17 - 14:52 GraemeSmecher  
Unknown file formatm sfigure.m manage 0.3 K 2007-08-17 - 14:59 GraemeSmecher  
Unknown file formatdat upd_stream.dat manage 21591.9 K 2007-08-17 - 15:00 GraemeSmecher  

This topic: Main > TWikiUsers > GraemeSmecher > GraemeSmecherWorkbook > HoloDemodulatorWorkbook Topic revision: r7 - 2013-11-21 - TWikiGuest
© 2020 Winterland Cosmology Lab, McGill University, Montréal, Québec, Canada

Error during latex2img:
ERROR: can't find dvipng at /usr/bin/dvipng
INPUT:
\documentclass[fleqn,12pt]{article}
\usepackage{amsmath}
\usepackage[normal]{xcolor}
\setlength{\mathindent}{0cm}
\definecolor{teal}{rgb}{0,0.5,0.5}
\definecolor{navy}{rgb}{0,0,0.5}
\definecolor{aqua}{rgb}{0,1,1}
\definecolor{lime}{rgb}{0,1,0}
\definecolor{maroon}{rgb}{0.5,0,0}
\definecolor{silver}{gray}{0.75}
\usepackage{latexsym}
\begin{document}
\pagestyle{empty}
\pagecolor{white}
{
\color{black}
\begin{math}\displaystyle 25000000/(2048*2^5)\approx 381~\mathrm{Hz}\end{math}
}
\clearpage
{
\color{black}
\begin{math}\displaystyle r(t)\end{math}
}
\clearpage
{
\color{black}
\begin{math}\displaystyle s(t)\end{math}
}
\clearpage
\end{document}
STDERR: