Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metrics for quality of reception? #127

Open
maehw opened this issue Feb 17, 2025 · 1 comment
Open

Metrics for quality of reception? #127

maehw opened this issue Feb 17, 2025 · 1 comment

Comments

@maehw
Copy link

maehw commented Feb 17, 2025

Hi!

I've recently setup an Iridium receiver station attic - thanks to the work you've put into gr-iridium, iridium-toolkit and the talks you gave at various CCC talks.

As you gave some recommendations and thanks-to-capitalism™, my current setup consists of:

  • HC610 active antenna; put up as high as high as my local environment allows me to
  • HackRF SDR (might switch to Airspy R2 as others have marketed it as the best option™ and I could free up the HackRF for some stuff which also needs TX)
  • bias-T + power supply + coax cabling
  • some mini computer running Linux, configured so that I can ssh into it over my local WiFi

I directly pipe the outputs of hackrf_transfer to iridium-extractor and later analyze the outputs, i.e. call iridium-toolkit/iridium-parser.py.

What are good metrics to look at in order quantify the quality of my reception and potentially improve it? I don't have anyone with another setup so unfortunately, I cannot ask for their numbers. I didn't find a good guideline how to check your setup so that's why I am asking here for some guidance and hope that's OK.


I get that iridium-extractor gives some interactive output. I think the number of detected bursts cannot be used as a metric, because it heavily depends on the receiver location on planet earth and the current Iridium network activity on the relevant spot beams, right?

In an old talk, you had mentioned that you "see roughly 2000 bursts/sec" / "recognized ~1200 frames/sec". Are these numbers still up to date for the Munich area? I see an i_avg number of around 170/s. Is that good, bad, okay-ish? For ok_avg, I get numbers around 90/s for a long term average.

As those numbers are absolute ones, I guess that the relative ones (i_ok: ... % and ok_avg: ... %) are more relevant. Is this due to energy detected as Iridium bursts which turns out to be noise because the UW does not match? Are there ways to improve them in my setup or are they inherent to the demodulator?


iridium-extractor outputs: any way I should look at "Relative Magnitude of the detected "burst" (≥ --db) and average Noise/Hz at that time/frequency in dBFS" and "Signal level of the demodulated signal"?


iridium-toolkit/iridium-parser.py: I typically see somewhat around 31~38% being filtered. One third feelks like much. Are there ways to improve them in my setup or are they somehow inherent to the bitparser? What's the root cause here? I've seen command line switches --uw-ec and --harder. Using --uw-ec does not really seem to improve things, --harder may bring improve the drop around 1-3% which is nice but not the world.


Is there any benefit in running iridium-toolkit/reassembler.py -i <somefile>.parsed -m stats-snr and checking for signal levels, SNR or confidence? What are typical signal, SNR and confidence values for your setup(s)?


I've currently raised all HackRF gains to their max. However, I am wondering if this is really the best setting and I haven't also raised the noise floor significantly now and may loose some weak signals in the noise due to bad SNR. Or on the other hand saturate the input of my SDR if there are rare strong signals so that decoding won't work at all? Would you share my concerns?

When I had not set up the attic yet, I could also run some SDR tool with a graphical frontend locally. That won't work now. I might be able to tweak around some of the settings.. but what numbers should I take a look at - and over what period of time (a day? a week?) to get a good idea if my setup has improved or gotten worse?

@Sec42
Copy link
Member

Sec42 commented Feb 24, 2025

I can't give you specific advice on numbers, that is highly dependent on your setup (SDR, antenna, cables, proximity to other RF emitters) and how much iridium is used near your location. The --uw-ec and --harder options will try more error correction on the frames, so will slightly improve the valid output, at the cost of increased CPU usage and a higher probability of errors in the output.
As for the gain setting, usually raising it too high also raises the noise floor which is counterproductive. I suggest looking at a live waterfall and playing around with your settings to find a sweet spot where the signals are on a reasonable signal level (you are generally trying to maximize the relative strength vs. the noise floor). If you compare runs with different settings I would take at least several hours as a baseline as the signals you see will vary significantly depending on the positions of the satellites wrt your location.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants