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

MetoerM2-2 OQPSK #7

Open
jeffreypkelly opened this issue Jul 19, 2019 · 39 comments
Open

MetoerM2-2 OQPSK #7

jeffreypkelly opened this issue Jul 19, 2019 · 39 comments

Comments

@jeffreypkelly
Copy link

Use Medet everyday!
Will you be creating a version with OQPSK to decode the new Meteor 2-2 Satellite?

@SA7BNT
Copy link

SA7BNT commented Jul 19, 2019

That should be very nice. We will hope.

@neoklis
Copy link

neoklis commented Jul 19, 2019

I also very much hope so. I have incorporated medet into an integrated and complete LRPT receiver/demodulator/decoder/rectifier application (mlrpt/glrpt) and I would like to make them capable of receiving M2-2.

Thanks!

@pr0xibus
Copy link

pr0xibus commented Aug 3, 2019

I would also be interested in a OQPSK demodulator, M2-2 Is broadcasting Images all the time, Windows is relatively easy to capture, but Linux is just becoming a pain

@dvdesolve
Copy link

Vote for this too! It will be nice to have such feature!

@artlav
Copy link
Owner

artlav commented Aug 23, 2019

I'm afraid the answer is maybe. It's been a while since i was set up to receive LRPT signals, and i can't really get a sample of the new one myself.

So if someone could send me a capture (or point at somewhere they are available publicly), i'll try to add support for it.

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 23, 2019 via email

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 24, 2019 via email

@artlav
Copy link
Owner

artlav commented Aug 24, 2019

Thanks!

Hm, after spending a few hours looking at it and googling stiff, the prognosis is not good.

No matter what i do, i can't detect the sync pattern in the signal, so either i'm missing something obvious or they added or changed some step in the encoding process.

And there is no documentation to be found...

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 24, 2019 via email

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 24, 2019 via email

@artlav
Copy link
Owner

artlav commented Aug 24, 2019

Probably not, since that is a job for the demodulator, not the decoder.

@neoklis
Copy link

neoklis commented Aug 24, 2019 via email

@dvdesolve
Copy link

Neoklis, why not to upload glrpt on GitHub? It would be very useful!

@artlav
Copy link
Owner

artlav commented Aug 24, 2019

Ok, having slept on it i think i figured out what is missing.

The question to ask is why 80k instead of 72k? And the answer is the difference between the two is that 80k one got a convolutional interleaver step in it. Described in LRPT spec, section 3.2.2.7

So now it's a matter of legwork... Should be fairly straightforward to support.

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 24, 2019 via email

@hhrhhr
Copy link

hhrhhr commented Aug 25, 2019

@neoklis,

I tried yesterday to decode images from M2-2 but failed because Davide's demodulator appears to work only with 72k sym rate.

master branch of dbdexter-dev/meteor_demod have support fo 80K. dbdexter-dev/meteor_decode#1 (comment) — source with 80K OQPSK (nice example for experiments).

with "-r 80000 -m oqpsk -b 130 -f 128 -O 8" options meteor_demod produce .s file (test_oqpsk_80k.s.zip), which can't be decoded now with meteor_decode, but M2_LRPT_Decoder (v.48 - v.53) can do this:

02_test_oqpsk_80k s_123

@artlav
Copy link
Owner

artlav commented Aug 25, 2019

Anyone got a 72k .s file from the new sat?

Best i can tell i implemented the deinterleaving correctly, but i'm still getting noise out. So I'm starting to suspect that there is more to it than just interleaving - people are talking about differential coding, for example. I would have liked to eliminate variables.

@hhrhhr
Copy link

hhrhhr commented Aug 25, 2019

Anyone got a 72k .s file from the new sat?

20190719_LRPT_1032_plug22_M22_72K_OQ.s.zip
20190719_LRPT_1032_plug22_M22_72K_OQ s_123

@artlav
Copy link
Owner

artlav commented Aug 25, 2019

Neat. As i suspected, it's differentially coded.

Apparently i didn't implement the deinterleaving properly...

On the plus side, everything else works fine and it decoded properly.

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 25, 2019 via email

@artlav
Copy link
Owner

artlav commented Aug 25, 2019

And it's done.
Releases are built, same link as always.

To decode in 72k mode, add -diff
To decode in 80k mode, add -diff -int

It seems to be a bit worse than M2_LRPT_Decoder, with extra lines present. Not sure how prevalent that would be and what the difference is.

@dvdesolve
Copy link

Thank you a LOT!

@SA7BNT
Copy link

SA7BNT commented Aug 25, 2019

THANKS !!!!!!

@neoklis
Copy link

neoklis commented Aug 26, 2019

Thanks very much Artyom!

I will try to incorporate the changes into glrpt and mlrpt, hopefully make it compatible with M2-2. I made a mistake though, did not think of saving the Pascal code for the original version, so I can't do a diff to find the changes. If you could, I would much appreciate a copy of the original code - Thanks!

Neoklis

neoklis@yandex.com

@hhrhhr
Copy link

hhrhhr commented Aug 26, 2019

@neoklis

I can't do a diff to find the changes.

https://github.com/artlav/meteor_decoder/commits/master — click on last four commits and you get what you want ;)

@neoklis
Copy link

neoklis commented Aug 26, 2019

Thanks!

Looks like I am ignorant when it come to github - and I am!

@neoklis
Copy link

neoklis commented Aug 26, 2019

Hi Artyom

I have been working to translate the changes in meteor_decode from Pascal to C so that I may incorporate them in mlrpt and glrpt. I don't use Pascal and what little I learned is only for the translation. But I suspect the following lines may cause an off-by-one error in accessing isqrt_tab[]:

In function mean():
if (v>32768)or(v<-32768) then exit;
if v>=0 then result:=isqrt_tab[v] else result:=-isqrt_tab[-v];

In procedure de_diffcode():
for i:=0 to 32768 do isqrt_tab[i]:=round(sqrt(i));

These are surely wrong in C. But then I know so little of Pascal.... ;-)

Neoklis

@artlav
Copy link
Owner

artlav commented Aug 27, 2019

Off by one as in overrunning the array?

The languages should be identical as far as indexing an array goes. Pascal syntax is array[0..2] is an array of three elements indexed 0, 1 and 2. For loop is from a to b, inclusive.

So, the array got 32769 elements, indexed from 0 to 32768, the loop covers indexes from 0 to 32768 inclusive, and the mean got a (probably redundant) check what the modulus of the product does not exceed 32768.

I don't see a problem. If i missed something, please elaborate.

@neoklis
Copy link

neoklis commented Aug 27, 2019 via email

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 28, 2019 via email

@artlav
Copy link
Owner

artlav commented Aug 28, 2019

Hm, you might be on your own on this one since i no longer have a working Mac and here in Russia they are as rare as unicorns.
Shouldn't be too hard - just install the Free Pascal compiler and run the build script.

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 28, 2019 via email

@artlav
Copy link
Owner

artlav commented Aug 28, 2019

Yes, a larger sample library would help. I already have a good idea what could be causing them, so the more things to test on the better.

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 28, 2019 via email

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 28, 2019 via email

@SA7BNT
Copy link

SA7BNT commented Aug 28, 2019

@jeffreypkelly will you share it with me?

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Aug 28, 2019 via email

@jeffreypkelly
Copy link
Author

jeffreypkelly commented Oct 6, 2019 via email

@RAD750
Copy link

RAD750 commented Jun 29, 2023

Also it can't handle MN2-3
Baseband for testing:
https://proxima.a-centauri.com/stuff/METEOR_LRPT/baseband_137561120Hz_21-28-37_28-06-2023.wav

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

8 participants