[TangerineSDR] Functional Specification v 0.3

Tom McDermott tom.n5eg at gmail.com
Tue May 28 11:50:51 EDT 2019


Hi Bill,

[ MB = Megabyte,  Mb = Megabit ]

The Core I7 system I tested on has a HD throughput of 40 MBytes/sec
(numerous different tests and benchmarks).
It's a SATA-3 drive, I suspect the motherboard may be a significant part of
the limit, good SATA-3 HD implementations
should achieve 100 MB/sec.  However 40MB/s is still way above rate that
HDF5 was writing:  4 x 192ksps --> 6.4 MB/sec plus
some overhead. As John mentions, an SSD would reduce seek-time issues.  If
there is extensive seek-time then the
buffers build, although I did not notice any upstream buffer overflows.

I was using Gnuradio HDF5 driver to write the format, I think John was
using the same.  I could write 4 x 384k to disk
in raw format without any problems (no HDF5 coding). The HDF5 coder was the
only difference between the two tests.
The Gnuradio HDF5 block takes floating-point input only.

So I am skeptical that a low-cost SBC is going to achieve HDF5 coding of
the raw data in real time.  But we don't need
to code all the raw data, only the data we send to the central server.

Here are some floating point vs. fixed point trade-offs I see:

Any signal processing done on the Host will want to be done in floating
point format.  Floating Point DSP is much much easier to
implement than fixed point processing.  With Fixed, you have to watch for
underflow and overflow at most steps as
either can destroy the signal.  Underflow or Overflow means you need to
rescale (the entire sample set: long ago, to far future).
Converting from Float to Fixed has the same challenge, you likely need to
rescale.  Fixed point was common when Floating Point Logic
was too expensive (low cost, low power modem chips, CPUs before they
universally had Floating Point processors, etc.).

The drawback to floating point is that the data enlarges from 6 bytes (3-I
and 3-Q) in offset binary to 8 bytes (4-I and 4-Q) in
single precision floating point,  increasing storage size and lengthening
transfer time.

Raw data without significant processing on the DE could be stored &
transferred in Fixed format. If the DE does much processing
then Fixed becomes an issue. Gnuradio uses floating point for the math
blocks (filtering, FFT, AGC, etc.), the Gnuradio soundcard
sink, the scope and spectrum displays, etc.

In my opinion, the central server is invariably going to want the data in
Floating Point format for subsequent processing. So two options
are:

1. Convert to Float on the Host, code to HDF5, then send.
2. Minimize Host DSP, HDF5 code unprocessed fixed samples and transfer to
the Central server, then the central server has to
unpack HDF5 and transcode to float.

-- Tom, N5EG


-- Tom, N5EG





On Tue, May 28, 2019 at 8:02 AM John Ackermann. N8UR <jra at febo.com> wrote:

> FWIW, I had no trouble capturing 4 x 384 kHz slices with HDF5 on an older
> i7 laptop with SSD.
> On May 28, 2019, at 10:58 AM, "Engelke, Bill via TangerineSDR" <
> tangerinesdr at lists.tapr.org> wrote:
>>
>> Tom – let’s talk more about the throughput issue. As I mentioned before,
>> I am working right now on a way to do some benchmarking to start gauging
>> what is possible.  I have a related question for you:
>>
>>
>>
>> -          On your quad core I7, have you narrowed down where the
>> bottleneck is?  There have been some discussions that a rotating hard drive
>> might not be able to keep up with the data rate, no matter what format is
>> used.  (Something else I am going to test). It is quite possible that the
>> compute time to put the data out as HDF5 might be the smaller part of the
>> time budget, and disk writing the larger.
>>
>> -          At today’s prices, a 2 TB or 4 TB SSD is a budget buster, but
>> this might not be the case in 2024.
>>
>>
>>
>> *Any thoughts?*  I am building a crude prototype to see if I can save
>> multiple channels off a Red Pitaya using HDF5 (Digital RF actually, but it
>> uses HDF5), and compare throughput using both spinning drive on USB3 and
>> SSD. -73- Bill
>>
>>
>>
>> *From:* Tom McDermott <tom.n5eg at gmail.com>
>> *Sent:* Sunday, May 26, 2019 9:08 PM
>> *To:* TAPR TangerineSDR Modular Software Defined Radio <
>> tangerinesdr at lists.tapr.org>
>> *Cc:* Scotty Cowling <scotty at tonks.com>; Engelke, Bill <
>> bill.engelke at ua.edu>
>> *Subject:* Re: [TangerineSDR] Functional Specification v 0.3
>>
>>
>>
>> Hi Bill - thanks for iterating the specification.  Here are a few
>> comments on 0.3:
>>
>>
>>
>> There are no paragraph numbers to  reference, and the page numbers may
>> change
>>
>> depending on how mark-up is selected by the reader, so I'll reference the
>> Title of the paragraph.
>>
>>
>>
>> General Requirements - Assumptions and Dependencies:
>>
>>
>>
>> 1. The HD may be able to be reduced to 2TB if the 20GE snapshot
>> can be made while recording to the ring buffer.  2T SSD drives
>> are coming down in price faster than 4T.
>>
>>
>>
>> Technical Notes
>>
>>
>>
>> I am skeptical that a SBC-based host can run HDF5 and keep up
>> with the received data. My quad Core I7-3740 3.4 GHz can not
>>
>> keep up with 4 x 192k from one antenna (one fourth the DE
>>
>> requested throughput). It may be better to run HDF5 only on the
>>
>> snapshot that is uploaded to the Central Server. That way it
>>
>> doesn't have to run at real-time speed, it only needs to code a small
>>
>> subset of the data and can run at a much slower rate paced by how
>>
>> fast the upload link is.
>>
>>
>>
>> Data format.  The DE will downconvert and decimate the received
>> samples. This will produce 24 bit I and 24 bit Q samples, probably 2's
>> complement binary.  These will need to be converted to single
>> precision floating point I and floating point Q prior to HDF5 encoding.
>>
>>
>>  -- Tom, N5EG
>>
>>
>>
>>
>>
>>
>>
>> On Fri, May 24, 2019 at 12:40 PM Engelke, Bill via TangerineSDR <
>> tangerinesdr at lists.tapr.org> wrote:
>>
>> Scotty - Please see attached, updated to include some of the things
>> discussed at Dayton.  Next I will work on the Functional Specifications for
>> the Central Control & Database system.
>>
>>
>>
>> If anyone would like me to start posting to the TAPR github or somewhere,
>> please just text credentials to my mobile number, below.  I can assure
>> everyone that I will not make a mess of it, having done this before.
>>
>>
>>
>> W. D. Engelke (Bill), Asst. Research Engr.
>>
>> Center for Advanced Public Safety
>>
>> Cyber Hall
>>
>> The University of Alabama
>>
>> Tuscaloosa, AL 35487
>>
>> Desk: (205) 348-7244
>>
>> Mobile: (205) 764-3099
>>
>>
>>
>> --
>> TangerineSDR mailing list
>> TangerineSDR at lists.tapr.org
>> http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org
>>
>> --
>> TangerineSDR mailing list
>> TangerineSDR at lists.tapr.org
>> http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.tapr.org/pipermail/tangerinesdr_lists.tapr.org/attachments/20190528/e4161942/attachment.html>


More information about the TangerineSDR mailing list