6700 & Pactor Modem

  • 4
  • Problem
  • Updated 2 years ago
  • Acknowledged
I have a P4 Pactor modem wired through the Accessory jack on the 6700 and have been unsuccessful at making a good pactor connection PTT, Transmit & Receive audio seems fine. It my belief what the issue is that the radio is not switching from TX to RX fast enough is this a known problem or should I be looking at another issue on my end?
Photo of Travis Best

Travis Best

  • 28 Posts
  • 3 Reply Likes

Posted 6 years ago

  • 4
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1053 Posts
  • 1076 Reply Likes
Chris,

The signal path in the radio works like this: receiver data is passed through the FPGA where it is reduced to a bandwidth that serves our needs, in this case 24ksps at a data rate of 1.536Mbps. While we've not measured it, the latency at this point should be about about 2ms, I believe. This goes through DSP filtering, NB, NR, ANF, AGC which adds about 43ms.

For true digital work we can generally skip the filters as most digital programs will do their own filtering -- for example a PACTOR modem would tell you to skip the filtering because you add latency and if you don't know what you are doing you can add group delay. So this is why we will do a DIGU/DIGL mode without the filtering or with greatly reduced filtering.

Finally, we have to send it through OS layers to get to the audio codec. In the FLEX-6000 we are currently using PortAudio and Alsa, neither of which we have spent much time optimizing. Finally any additional filters in the codec (equalizer, for example) can add a little more latency -- generally no more than 10ms. So in the radio today, all of the additional latency is being caused by PortAudio and Alsa. PortAudio and Alsa provide an abstraction and driver layer that make dealing with the audio easier and they necessarily employ elastic buffering to achieve gapless audio. Buffers = latency.

Since I know you are a software guy, here's the detail: The codec is controllable over I2C and sends out data over I2S to the processor. We are using the linux driver from the codec manufacturer which is designed to interface with Alsa -- when we do this, we use Alsa high level controls to control the codec rather than us writing everything from scratch. This is a big labor saver (so we can send labor doing cool radio things rather than non-value-add operating system things). Together PortAudio and Alsa eliminate a lot of the work of dealing with audio. (Having said this, there is a DSP processor in the codec which we did program and we have to modify the driver for our DSP mods, but it's easier when you don't start from scratch on the driver).

Together these two layers are responsible for all of the added latency (beyond about 50ms) that we see today. Ultimately, we will go find as much of the added latency as we can and remove it. There is no fundamental reason why an SDR radio should have more latency except that the final filter in the radio will always be the dominant latency contributor. The sharper the final filter, the more latency you have. And in an SDR you can build "perfect" filters that are as steep as you want ... so we do. The latency difference in the last two versions of SmartSDR went from 10.6ms in the final filter to 42.7ms and achieved a 4x in filter skirt sharpness. Filters like this are not physically possible in an analog radio. For most folks, this 30ms additional is worth it. We will circle around and remove as much of the additional latency as we can as soon as we get a chance.

I hope that's not too much info.

Steve
Photo of K6OZY

K6OZY, Elmer

  • 542 Posts
  • 212 Reply Likes
This is perfect info. And for us Unix nuts, I'm actually happy to see ALSA used in such a great product. So in a purely analog radio, there is no audio delay, but because of the imperfections of analog mixing and filtering methods, we pay for it in lack of audio quality, mixer artifacts, and ringing?

Also, this makes me want to go compare the skirts on the KX3 and IC-7000 to the Flex radios. According to what you say, they should be pretty shallow in order to be so low in latency. I didn't try tuning off frequency and compare a 500hz filter between the radios. I only compared PowerSDR to SmartSDR. I'll do that.

Since you made this recent change to the filter skirts, is this something that could be user tunable in order to allow a user to sacrifice filter sharpness for latency in specific use cases outside of DIGIU/L?
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1053 Posts
  • 1076 Reply Likes
Sharp filters in analog radios are typically crystal (or mechanical) which can have issues with ringing. Of course they are not adjustable either -- if you hear a guy just inside the filter bandwidth, you can't just grab the edge of the filter and move it ;-)

Crystal Roofing Filters, which are required to protect mixers with limited dynamic range in analog radios and which also have nonlinearities, are not required in a direct sampling radio like the FLEX-6000. Provided the total input is below overload (S9+82dB with the preamp off in a FLEX-6000), the location of the strong signals in the RF spectrum is irrelevant -- you still get the same awesome dynamic range. And because the filters are "perfect" (read all non-linearities held below the noise floor where they cannot affect signal quality) there is little to no reciprocal mixing to degrade performance.

So your S9+60dB signals don't have to be artificially kept at 10kHz away to get the dynamic range out of the radio. In a traditional radio, if you get two signals like this inside your roofing filter, you are toast because of the mixer's poor dynamic range. In a FLEX-6000, they can be at 200Hz apart and you can just tighten up your filter to get rid of the one you don't want.

Yes, we can make the filters tunable in steepness also. It's a little more work and we just need to see where this falls in the priority for customers and just how much flexibility is appropriate to offer. Again, the elephant in the latency room right now is the other software layers we're using. It may be that when we fix those that adjustable filters just isn't that important. If we're talking the difference in 80ms and 50ms, it may not matter.

Steve
Photo of K6OZY

K6OZY, Elmer

  • 542 Posts
  • 212 Reply Likes
Thanks for the great details. This helps me know how to compare the radios. I've sold so many Flex radios already, it's good to keep the sales team properly trained. ;)

The GUI lover in me envisions the expansion of your clever filter width/shift widget with curve sculpting edges similar to the "Curves" adjustment in photoshop. This then gets translated into the sharpness of the filter, customizable on BOTH sides. I can dream, right? :)
Photo of Richard Clafton W4/G7EIX

Richard Clafton W4/G7EIX, Elmer

  • 455 Posts
  • 117 Reply Likes
One of the most interesting threads so far. Love the detail. I'm classing this as "I lurned sumthing today." thread. :-)