-
-
Notifications
You must be signed in to change notification settings - Fork 168
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
JY1-Sat isn't being decoded #196
Comments
You're right. The problem is that the default To debug this and find a value of As an example of usage, I start
(the This produces several files in the current folder with the internal signals of the demodulator. In this case of a DBPSK signal, the most interesting is the clock recovery output, but since this is a differential signal and there is no carrier phase recovery, using differential decoding before plotting is helpful. I do
to read the file, and plot the differentially-decoded symbols. I zoom in on the graph and see something like this: The constant parts around -1 correspond to the preambles of the packets. These are correct. But once the data starts I see that the clock recovery is losing lock, since I don't get symbols at +/-1, but something spreading in the middle (though it seems the clock recovery is trying to do the correct thing repeatedly). Next I try a larger
I already see lots of packets being decoded, but this doesn't give me so much feedback about whether the signal demodulation is running perfectly now or just working barely. I plot again the output of the clock recovery (same code as above), and even without zooming in, I already see this: In all the recording except near the beginning and the end the clock recovery is working very well: I only see +/-1, with not much noise nor indeterminate values in the middle. At the beginning and end the signal is much weaker, so the decoder has some trouble working. We could try to optimize some of the parameters to perform better in these areas. If I zoom in to the central region as before, I see this: These are a couple perfect frames. We see their preambles which are constantly -1, and then all the data that hops between +1 and -1 with no bit errors. Now, what's going on with this recording? It is interesting to plot the clock recovery average symbol rate by doing
This gives Some knowledge of the demodulator internals is needed to interpret this. The signal is 1k2, and the demodulator decimates the samples to 12kHz and works at 10 samples per symbol. Therefore, we would expect a nominal symbol period of 10 samples per symbol. We are getting an average of 9.97 samples per symbol instead, as shown by this plot. This is a very large frequency error of 3000 ppm. No RF receiver should have such a large error. If your 2m radio had that error, when you tuned to 145.900 MHz you would get 146.339 MHz. Madness, right? Not even the worse RTLSDR or soundcard is this bad. You can get a really cheap crystal that is maybe 50 or 100 ppm off, but that's it. So what's the problem here? No clue. Could it be a software problem? Maybe, but at least I'm glad we have the tools to debug this. The default By the way, the fact that JY1-Sat puts out a continuous beacon is very helpful when analysing these things, since it is easy to plot all the recording. When the signal consists only of short packets then I usually crop a short piece of recording that contains one or two strong packets and work with that, since otherwise it is difficult to zoom in to the parts that contain the good packets. Another note, now that I've gone through this carefully to try to explain it clearly, I realize that the So I guess I should make TODO:
|
As always a great reply, I will try these options and tools. Thanks Daniel. |
This parameter was always intended to be relative to the baudrate, but it was absolute (or rather relative to the sample rate) due to a misunderstanding of how the corresponding parameter of the Symbol Sync block works. In fact, it was documented as relative in the --help. Following discussion in #196 I noticed that it was absolute and decided to make it relative to the sample rate, maintaining corresponding default value for 9k6 signals. The default value now has a different effect for all the other baudrates.
I have just pushed a commit to master making |
Thanks for the update, I will again try to get ipython activated on my Debian Testing, the packages are installed but there seems to be no binary or alias for "ipython" |
That's very weird. The You can always install ipython with pip or use |
To work around this I have created an alias.
|
Perfect! I'll proceed to close this. |
Yes, ther is such a reason: You have to install
|
Thanks a lot for that information, we will install that packages and go from there. |
I have a few better observations since then, like this one https://network.satnogs.org/observations/3176286/ |
Today we tried to decode a JY1-Sat SatNOGS observation but where not successful.
Below some information on versions and commands used.
We used the following observation:
And this is the command line:
This seems to be related to --clk_limit are there any tips on how to find the right value?
The text was updated successfully, but these errors were encountered: