NR0V on TX Audio Latency

(posted 01December2015)

The audio signal enters the MIC jack. It is then digitized and buffered in a FIFO at least until enough samples are available for the next PC-bound data packet. When the packet arrives at the PC, the Windows networking software does whatever it does and then passes the packet data to our software. The MIC data goes into a FIFO and gets pulled out when appropriate and placed into the "Audio" buffer. When the Audio buffer is filled, the data is passed to the DSP which packs it into DSP-sized-buffers and processes it. There are processing delays in filters and sometimes multiple filters (EQ, Bandpass, COMP output filter, CESSB output filter, etc.). When the DSP is finished with a buffer of data, it passes it back in Audio-sized-buffers. It then goes through a FIFO, gets packed into ethernet packets, those are passed through the Windows networking software, across the network, into the FIFO in the radio hardware, through the up-conversion (interpolation = up-sampling + filters), and out the DAC.

The sample rate you specify applies to the data in the "Audio" buffer. On the "Audio/Primary" tab, you are specifying that buffer size and the rate at which samples are inserted and removed. On that tab, lower buffer sizes and higher rates reduce latency. Those settings have nothing to do with the DSP latency —- the DSP buffer sizes are the key there.

You may be aware that we're working on a new communication protocol. The way the software side of that is implemented in PowerSDR, we've eliminated one buffering layer each direction (two total). Whether/how-much that will reduce latency remains to be seen since more MIC data and TX IQ data will now be packed into each packet.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License