Hmm, that is interesting for sure. To be honest, with the past holidays and all I haven’t been looking at this with any granularity. Other than applying Github repo updates, I’ve just been looking at each side of the splitter to see how the Stream1090 box is doing compared to airspy_adsb box on graphs1090. (which is very, very close for me)
Completely in the “for what it’s worth bucket” I wanted to share some insight on my previous comment earlier - as they say a picture is worth a thousand words. I exported stats out of the RRD files on both my airspy and stream1090 boxes for the last 24 hours and threw them together in Excel. Sure the formatting could certainly be better but just a quick example view of what I see from my antenna - as fuel for comparision & thought. Really impressive to me how close stream1090 is when compared to airspy_adsb.
Thank you very much for the feedback. That is encouraging. It is getting there. I will investigate this Comm-B issue tomorrow. This should be a software problem on my side.
Those are two valid Aer Lingus planes overlaying each other with a DF-11 messages. The case i was considering was some Ryanair pair. Took me some time to get to the bottom of it. I asked wiedehopf about the time when he got that sample from you. The plane (including its transponder code) was retired after that (some years ago).
Edit: not clear on the screenshot that these are two messages.
Just in case someone wants to know “How can you separate those two messages” It is the stream1090 idea. Upsample to heaven (24MHz heaven), run CRC-based framing on each of the 24 streams.
I just ran the previous and current version of stream1090_10M -r -u 24 on a 48 billion raw sample file. The message rate in the sample was around 200/sec.
There was a very slight improvement- +0.04% messages and +0.07% positions.
I would like to compare the performance using the IQ option - will the python snippet you posted earlier the thread convert the raw sample to one the can be used with stream1090 -u 24?
-rw-r--r-- 1 martin martin 1436024832 Apr 10 2025 ../../samples/samples_5m_02.raw
-rw-r--r-- 1 martin martin 1436024832 Apr 10 2025 ../../samples/samples_5m_03.raw
< 1.5 GB So i am not sure what you are doing there
So with the investigation things took a bit longer. The problem is not solved, but it seems i am not alone with this. Here is a general question for people who know about these things:
I am based in Europe and used to have plenty of long Comm-B and Surveillance replies. Especially Comm-B offers additional data. If i now go to the U.S. on some tracking site. There is plenty of data missing. Here is some random plane.
This data (i think) has to been requested by secondary ground radar. Is this simply not done in the U.S.?
Edit: Or is this a coverage problem?
Edit 2: Apparently there is a coverage problem in Europe. Too many stations requesting too much data. Here is an interesting article from EUROCONTROL on this matter from a few years ago.
Weather-data coverage requires more Comm-B data types; you can see how this varies a lot by location, and there are only a handful of SSRs (with very clearly defined coverage areas) in North America that are interrogating for that data, with very little coverage in the US.
The low pass filter is fine, but it is not as good as i was hoping for. There are several reasons. The two main reasons are:
Currently (in the repo version) the filter is applied to the magnitude stream and has been optimized using some python script. The location of the filter is a bad idea. Why did i put it then there in the first place? I have very few knowledge in DSP or in other words, because i am stupid.
The performance of the filter does not only depend on the input speed, but also on the upsampling rate as experiments show. It is very tedious to find good filters for all the sample combinations.
So what is next. I had quite some time on my hand during the weekend to read and write code. The plan is to retire this current low pass filter approach and raw mode (-r) will work as in the previous version (just raw, no filter).
However, i will introduce the -q option. This will put stream1090 into raw-iq mode. I and Q values will be properly handled. Separate DC-removal, sign adjustments and then they will be sent independently through two identical low pass filter. Afterwards, they will go through the usual pipeline in stream1090 by computing the magnitude of the pair.
However, i have some cleanup left to be done. Today i did some testing, but the day was not really good for testing (high pressure system, weekend, sun was out).