[TangerineSDR] Setting up DE for selected bands and sample rate

Engelke, Bill bill.engelke at ua.edu
Mon Apr 20 14:33:03 EDT 2020

Hello all –

Just to summarize –

  *   We are now looking at running some number of channels (say, 8) at 8 ksps.  It seems likely that the Tangerine will be able to handle that, because the Red Pitaya is able to do this rate (8 channels at once, at 4 ksps for FT8), and I believe that the FPGA of the Tangerine is higher performance than the one in Red Pitaya.
  *   In fact, I am hoping that we can run 5 to 8 channels of data collection at 8 ksps (where we both store the data and also run the frequency analysis on it), and at the same time collect 5 to 8 channels of data at 4 ksps (for FT8 extraction). I will test this with the DE simulator to make sure there is not a bottleneck in the Odroid.

We are not using a straight FFT for this – hence it is indeed possible to do the frequency analysis once per second – it does not require 102 seconds. The method, as implemented in fldigi, uses a frequency estimation technique (~ 2 pass DFT) as documented here:  https://www.itl.waw.pl/czasopisma/JTIT/2006/1/76.pdf  , and seems to work fine once per second at these kinds of sample rates.  (Of course, this has to be verified).

-73- Bill, AB4EJ

From: TangerineSDR <tangerinesdr-bounces at lists.tapr.org> On Behalf Of Tom McDermott via TangerineSDR
Sent: Saturday, April 18, 2020 2:24 PM
To: Dr. Nathaniel A. Frissell Ph.D. <nathaniel.frissell at scranton.edu>
Cc: Tom McDermott <tom.n5eg at gmail.com>; TangerineSDR Listserv <tangerinesdr at lists.tapr.org>
Subject: Re: [TangerineSDR] Setting up DE for selected bands and sample rate

Hi Nathaniel -

Responding to question 1: the requirements for the DE putting out 8 channels sampled at 10 Hertz are similar to 8 channels
sampled at higher rates. The very low sample rate requires the FPGA low pass filters have many more taps, but I think
that's small-ish compared to other FPGA things.

Responding to #2 (from the original post) The algorithm in the paper would probably be implemented in the Local Host as software.
I'm not sure it would be easy nor useful to figure out how to compute that in FPGA as opposed to in CPU.   But at 10 Hz sample rate,
that computation is likely feasible in CPU. There will be the initial collection of samples to get the estimator started, then it can update
frequently (i.e. 1 second rate).

I can't comment on question 3.

-- Tom, N5EG

On Sat, Apr 18, 2020 at 3:37 AM Dr. Nathaniel A. Frissell Ph.D. <nathaniel.frissell at scranton.edu<mailto:nathaniel.frissell at scranton.edu>> wrote:
Hi Bill and Tom,

1. If we run the DE in the 8 channel mode for doing these measurements, do we think that will max out the data engine to prevent it from doing anything else?

3a. I agree that we probably do not want to emulate a sound card. I would like to see a program like FLDigi be able to accepts files or buffers. It would be good not only for the PSWS, but al also for doing post-processing of data in general.
3b. We need the ability to collect both the raw spectrum and the derived frequency estimate. Exactly how to interpret and use these things is still an active area of research. Steve WA5FRF is actively working on this and is probably the best person to work with on this right now.

Maybe David Kazdan can comment to address Tom’s question on needing 100 seconds of measurements.

73 de Nathaniel W2NAF

Dr. Nathaniel A. Frissell, Ph.D., W2NAF
HamSCI Lead
Assistant Professor
Department of Physics and Electrical Engineering
University of Scranton
(973) 787-4506

On Apr 17, 2020, at 1:41 PM, Tom McDermott via TangerineSDR <tangerinesdr at lists.tapr.org<mailto:tangerinesdr at lists.tapr.org>> wrote:

Hi Bill - thanks for the link to the paper.   I don't have access to the references in the paper, particularly
[1], [2], [3], and [4], so I am missing the details of the critical first step.  My reading of the paper indicates that
the initial estimate of the frequency is needed, and that initial estimate has to distinguish between adjacent
spectral bins, those being +/-fs/N apart. (Section 2.1, step 1.)

So perhaps I'm reading this wrong, but it still seems like one needs 1000 samples to separate
out the desired bin, assuming 10 Hz sample rate and 10 milliHz resolution, that is 100 seconds.
[ The DFT doesn't need a power-of-two sample size, it can just be a convenient number. ]

-- Tom, N5EG

On Fri, Apr 17, 2020 at 8:52 AM Engelke, Bill via TangerineSDR <tangerinesdr at lists.tapr.org<mailto:tangerinesdr at lists.tapr.org>> wrote:
In yesterday’s HamSCI research telco<https://scranton.zoom.us/rec/play/tMd4JO39-j43H4WQ5gSDC_AtW9S_ffmsgHcd-KJZy0uzUiIAZlPwMuQSYbeIYiPAWTSPSeb1nkzcpCCR?startTime=1587063159000&_x_zm_rtaid=NMAJy4E0RWahMdU1UXtvsg.1587138515458.823452708c432bc18700b9c14edfeb54&_x_zm_rhtaid=286>, we discussed several ideas on how to accomplish several goals with the TangerineSDR; a summary is below for your review and comment.

  1.  We currently think that the Data Engine (DE) will have the capacity to simultaneously collect up to 8 channels of data for observing Doppler shift in carrier frequencies, i.e., WWV at 2.5, 5, 10, 15, 20 MHz plus CHU at 3.33, 7.335 and 14.670 MHz.  We think we can do this by observing excursions of up to +/- 1 Hz from the carrier frequency with a precision of 0.01 Hz, with measurements taken every second (see next point).
  2.  In earlier discussions on this board, it has been stated that this kind of precision (10 milliHz) would require a 102.4 second sample time; this assumes the processing is linear. CWRU is using a non-linear method in the low-cost approach to extract a frequency estimate, which uses fldigi to achieve the 10 milliHz resolution once per second, and it was discussed that TangerineSDR could be set up to do this as well. (Reference here: http://citeseerx.ist.psu.edu/viewdoc/download?doi= )
  3.  I won’t try to explain the method mentioned above, as it is at the very limits of my understanding; however, a couple of observations…

     *   The CWRU low-cost system uses fldigi to implement the frequency estimator, and in looking at fldigi I see that it requires sound card input. In the case of the TangerineSDR, we will have buffers of IQ data. I don’t think I want to use some sort of kludge to take the buffers and somehow emulate a sound card (do I?) – another option might be to implement the frequency estimator algorithm in the Small Board Computer (SBC) of the TangerineSDR. If we could/should do this, I would ask for a volunteer to code it; I fear that if I try to do it, it would take far too long for me to get up the learning curve. The code (C++) for the algorithm as used in fldigi is online (included with hundreds of other routines; see http://www.w1hkj.com/files/fldigi/ ). A third option might be to persuade the fldigi team to support buffer or file input.
     *   As I understand, the frequency estimator outputs a single value: the strongest signal in the band. A downside of this is that there seems to be a lot of other possible information in the data (Steve Cerwin has shown data he has collected showing Doppler effects but with multiple structures including various modes in both time and frequency domain). We need some guidance from the science community: what data do we really need to do the desired science?? Maybe we need to implement/support both raw data collection & frequency estimation at the same time(?)
     *   In yesterday’s call, we discussed that we should be able to specify an 8 ksps sample rate and a center frequency, and get the desired 10 milliHz resolution – frankly, I am still fuzzy on the details of this, so I wish someone (David Kazdan? Kristina?) would chime in and explain, for the record, how this works.

  1.  Channel configuration settings for the DE:

     *   The DE will be able to tell the SBC what data rates it supports. We are working with 2-byte command codes; in general, a command ending in “?” is a query, i.e., send the DE the command “S?” and it answers “AK” , a simple health check.  Send the DE the command “R?” – it will respond with a table such as the following:
              1  2000    2  4000    3  8000    4  16000     etc. – where each entry is 2 integers: an index and a sample rate (Hz). To put a channel into data rate of 8000 sps, we put 3 into the channel setting.

Please comment!                   -73- Bill, AB4EJ
TangerineSDR mailing list
TangerineSDR at lists.tapr.org<mailto:TangerineSDR at lists.tapr.org>
TangerineSDR mailing list
TangerineSDR at lists.tapr.org<mailto:TangerineSDR at lists.tapr.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.tapr.org/pipermail/tangerinesdr_lists.tapr.org/attachments/20200420/53940c15/attachment-0001.html>

More information about the TangerineSDR mailing list