Signal-to-Noise Ratio (SNR) measurements of nodes and radios

I’ve been doing a lot of audio quality testing and optimizations lately and thought I would put together a chart with measurements I’ve done so far, and encourage anyone to reply with actual measurements you have done on other nodes or radios.

As is detailed on my site AllScan.info and on a couple forum posts here I build a lot of nodes and use a wide variety of audio interfaces and radios. My specialty is Full-Duplex ASL nodes using 2 Retevis RT85 radios, which are FCC-certified and sound great, yet are less than $25 ea. Full-duplex nodes are more of a challenge to minimize noise on because I have one RT85 transmitting 1.5W in Low power (on 2m) while the Rx RT85 is less than a foot away (on 70cm), all while you’re also transmitting into the node on another radio on 70cm.

After seeing SNR’s of anywhere from 40 - 60 dB in various scenarios on my nodes it was time to do detailed testing and figure out how to get that closer to 60dB in all cases. After a solid week of testing, including building audio interfaces using various combinations of CM108B and CM108AH USB fobs, Repeater-Builder RIM-Lite V2’s, 600Ω audio isolation transformers, termination resistors, optocouplers, etc. I have things now pretty well optimized and consistently delivering 60dB transmit SNR (node transmit only), and 54dB round-trip full-duplex SNR (node and other radio simultaneously transmitting).

One big surprise was that the RT85s have 60dB of Tx SNR. This is higher than 5 other radios I tested. (Note that to test this requires a mic input to be used with gain set to 0, since we are looking for the noise floor of the Tx audio with no mic signal). Very impressive for a $25 HT.

I’m still refining the audio interface to keep the cost as low as possible while being easy to assemble but delivering very clean audio with essentially zero discernible noise in typical listening conditions.

Another interesting note is that these fobs now are available with a CM108AH rather than CM108B IC, and so far I notice the audio levels are quite a bit higher. I’m still doing additional testing to see what other performance differences there are such as SNR between the AH and B fobs.

For my measurements I record the audio out from an IC-9700 into a 24-bit audio interface, normalize the levels such that open squelch gives 0dB (max) signal level and no clipping on the interface, and then look at the signal and noise levels and noise spectral analysis in a wave editor.

Example showing 60dB SNR while node is transmitting only (hangtime after RXCD drop)

I am now also building a radio-less node and in that case the SNR will be very high but I will also be ensuring the dynamics are similar to what happens with radios, ie. some limiting and possibly compression to make better use of dynamic range and prevent clipping/distortion. I will post more on that in the next couple weeks as I’ll want to be sure a radio-less node will have a similar gain structure and limiting as voice audio over a high-quality radio channel.

It will also be interesting to see what if anything asterisk/App-Rpt can do with dynamics processing. Probably not much - however I have noticed during parrot testing that if I put in a very quiet signal (eg. -50dB) it will get parroted back 10-15dB louder. This seems more than any difference in my various gain settings would account for so I will be taking a closer look at that.

2 Likes

Actually that’s not bad.

I’ve tested several Master III repeaters and the best the receiver could do was about -58dB. The HP8920 service monitor cannot generate a very clean “dead key” no modulation FM carrier any better than about -51dB compared to 3kHz 1k deviation. In order to actually make the measurement, I had to use a old 21.4MHz IF crystal generator that runs on a 9v battery to drive the receiver and measure the descriminator voltage. The actual chassis doesn’t get any quieter than around -78dBv. (dBFS and dBv are about equal as we measure our alignment tone at around 1Vrms.)

I recall the spec is about -55dB residual FM hum and noise, or something.

I’m curious about the actual uLaw codec performance. I’m guessing based on reading that the 8bit uLaw max dynamic range of around 82dBFS works out to around 70dB of SNR when you have alignment tone (1kHz, 3k dev.) leaving 12dB for the headroom.

But i have no knowledge of the actual codec binary level (dBFS) when a node is aligned with that menue 97 or whatever.

regards

ps. very interested in your radioless test bed. I’m fixing to do a noise check on the RTCM soon, again using no actual radios, only test loads/sources/termination resistors.

pps, with regards to your first picture, 8bit uLaw g.711 is about 13.5 bits equivalent. Also, my guesstimate of -82dBFS of noise is spread out in this case over the 4kHz if it’s a plot like your 2nd picture (ie, additional 36dB of dynamic range.

The typical commercial repeater should do -120 dBm or better for 12dB SINAD. I have no idea how that would translate to the various codecs or if that’s even a consideration. What I can tell you is that without exception what you hear on the repeater talkback is what the other end hears given a solid network.

Tnx tom!

I was wondering what is going on in the codec space, not the RF space. I’m particularly interested in Menu 97, the 60% calibration level… WHAT level dBFS does that map to at the codec level? (actually prefer to know what the pre-codec digital 12 or 16 bit value is.)…

My measurements on GE Master III repeaters shows the SNR after demodulation is rarely better than about 60dB residual hum and noise, ref’d to 60% modulating tone. Info I have from wikipedia says g.711 is good for about 13.5 bits or 82dB SNR re 0dBFS (max unclipped level).

Or perhaps is there a app_rpt design FAQ (prolly 20 years old now)…? Otherwise I guess I’ll know in a few months once I get a test bed up and running…

Also working with W6XC on figuring out a way to mash a wide band codec mode for 16kS audio… through a client module… (CM108/URI would probably be an easier start though) I’m thinking that w/o good DSP it’s going to have more latency than I expect and running 16kS uLaw raw is the ticket.

Regards,
KD6OVS

What about 16k linear raw PCM? Asterisk 20 supports this already with the appropriate modules loaded. I haven’t done much experimentation with this yet in combination with a URI, though I intend to when I get home next month sometime. I don’t think latency is any different than what app_rpt does now with g711, though it would use four times the bandwidth per connection than g711 does.
I want to see wideband RF systems in action, as even just that little bit of extra high end is noticeable on FM with good radios, I.E. not a Baofeng UV-5R.

1 Like

Since app_rpt presently depends on DAHDI, there is an 8khz limitation imposed by DAHDI. The usb channel drivers downsample to 8khz.

I have tried using slin16, but that requires res_resample to be loaded so that asterisk can resample the audio to 16khz.

Acc. to chan_simpleusb.c:tune_rxdisplay(), 3KHz mark is at column 34 where col 75 = 16384. Thus 3KHz ~= 7427 / 32767, or -12.9dBFS. Then 5KHz is at column 51, ~= 11141 / 32767 or -9.4dBFS.

Yes DYI and mdd, I want the wider audio BW but it’s going to be some slogging. If I could do it at the client/host level, then at maybe it could pass back locally before it passes to the rest of the code (still beyond me until I look into the source code.

NR9V, Thanks! That answers a LOT OF QUESTIONS

That is EXACTLY the tech spec I was looking for. And it is consistent with what I would expect.

I Screenshot a test from my HP8920 sig gen to an RTL-SDR driving direct into audacity and those are similar levels. In particular at 12dB sinad, the 3kHz 60% alignment level blows out to around 140% because of the noise component…

NR9V has another thread about his “Audio Clip LED feature addition in ASL3” and that got me thinking about the actual headroom versus radio audio.

Basically
3kHz 60% col 34 -12.9dBFS or 23% in linear scale
5kHz 100% col. 51 -9.4dBFS or 34%
? ?% col 150 0 dBFS or 100% at the digital clipping level.
15kHz 300% col 150 0dBFS 100% clip level.

So have a look at the pics.

Picture below… next post…

Here you can see the Bessel Zero at 2.4kHz, and audacity running behind. The RF input is via the HP8920… Also for THIS discussion, NOTE THE HP8920 FM NOISE FLOOR!. only -48dB, Sucks! (RTL-SDR contributes some though) Squelched, the SDR is down around -90

Now I do a bit of labels: trace the 3kHz and 5kHz and 12dB sinad back to the linear scale on the LEFT.

Compare that 3kHz deviation at say -60dBm versus the 12dB SINAD point. YOU NEED that HEADROOM!

Also, I ran some audio from my kenwood F6 and of course it’s a bit hot and has a few mild peaks at 7kHz deviation. Take it with a grain of salt, as we dont know what the channel EQ or de-emph flatness.

Also note here. The -90dB muted level prints back as -147dB once we pass from 16 bit to uLaw and back. Everything lower than about -86dB (the 13.5bit uLaw bottom) goes to complet 16 bit zero.

THAT could be a feature… to exploit… Say put a Behringer MDX2600 and use the expander gate…

I like that you are using transformers, I’ve long used the XICON TL 016 1:1 telephone coupler transformer, and those can sound MUCH wider than telco grade IF THE TERMINATION is well above 600z, say 4.7k to 20k.

They have several quirks. LOW Freq’s will saturate rather quickly. So while 1kHz can be 3Vrms, down at 67Hz it’s more like 300mV before saturation. At high frequency, without normal loading, the top end goes out to 30 to 60kHz and typically has a big PEAK.

So if you have any ultrasonics (ie DAC Hash!), it’s a good idea to either put a zobel, (beyond the scope here), or at least a simple RC pass filter.

I have a couple of Jensen 11-SSP or TRW brand SAT-109 real transformers for testing. Those actually have the faraday tape winding and work a LOT better for noise suppression, say from an H-bridge audio out circuit.

Have you put the Retrevis radio AF out on a fast scope? Is it still via linear chips or is it using a Class D type H-bridge circuit? that isz: Is it any quieter with the AF shorted during the hang time?

The scope picture in post #1 above has a snippet of muted audio, I assume that is what the spectral view is on top. Taking the -95dB in the audio passband and adding in 35dB (ie, Log10 (3k) = 34.5dB puts the scope noise floor at -60 = -95 + 35 just eyeballing the trace.

I suspect your Retrevis radio doesn’t mute as well as the CM108 noise floor. The bigger question is its spec for “residual FM hum and noise” on receive as well as transmit.

BTW, for an extra $150 you can get a piece of crap Behringer MDX2600 and use the expander gate. I’m joking of course. (I’ve actually used those in radio systems… )

Thanks Guys. This is a big help
KD6OVS

Since the date of this original post (1.5 years ago now) I’ve done a lot of other testing with various URIs and radios. Most URIs work just fine when the antenna is 25+’ away. But with my ANF101 design which is cross-band full-duplex using 2 HTs, which as mentioned above in the case of an RT85 the Tx HT is putting out 1.5W in Low power – while you’re also transmitting from a cross-band full-duplex HT (Alinco DJ-G7 is my current favorite), so the URI is getting hit with 1.5 Watts on 2m from the node Tx HT less than a foot away plus another ~500mW from your other HT on 70cm from as little as a few feet away, which in combination definitely causes RFI and noisy audio with most URIs. My ANF101 nodes now use a BH7NOR R1-ASL URI which have audio isolation transformers, 100Ω Zin, optocouplers, ferrite beads, bypass caps, etc. and can do 55dB SNR just fine in this scenario.

This HT-based design is time-consuming to build and not scalable to mass production ie. definitely more of a diy approach. For my personal use I now use a mobile-radio (Kenwood TM-V71A) node as I prefer to have flat audio going into Usbradio and thus no squelch tails on Rx or Tx audio. (It may be possible to get rid of squelch tails with newer HTs eg. maybe with DCS, though the options are more limited and I haven’t had a chance to look further into that, and it wouldn’t work for most older cross-band full-duplex HTs.)

Such a node can be built in 1-2 hours (compared to 4+ hours for an ANF101), also uses the R1-ASL URI (modified for 10KΩ audio Zin), and with an outdoor antenna gives easily 10+ miles of range. This has zero discernable noise (other than ~-60dBFS white noise you’d expect from any FM radio) thus I haven’t needed to measure exact the SNR but I’m sure it’s at least 55dB. With a lesser URI on a full-duplex node with nearby antennas (or on many of the consumerish SA818-type nodes) the 1KHz USB frame noise and/or power line hum starts to come through and can be annoying even if <-50dBFS.