8000 Allow compilation on Android as ISO C++ code by kholia · Pull Request #17 · kgoba/ft8_lib · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Allow compilation on Android as ISO C++ code #17

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

Merged
merged 1 commit into from
Dec 18, 2021
Merged

Allow compilation on Android as ISO C++ code #17

merged 1 commit into from
Dec 18, 2021

Conversation

kholia
Copy link
Contributor
@kholia kholia commented Dec 18, 2021

This PR contains a bunch of trivial fixes:

  • The size_t variables require %zu specifier.

  • The return of malloc calls are properly type casted.

  • Small whitespace fixes in Makefile.

  • This PR also fixes the following warnings:

    warning: ISO C++ requires field designators to be specified in declaration order; field 'freq_osr' will be initialized after field 'f_min' [-Wreorder-init-list]
    
  • The _GNU_SOURCE definition is now guarded properly. This fixes a compilation warning on Android.

Thanks! 👍

@kgoba kgoba merged commit 95473cd into kgoba:master Dec 18, 2021
@kgoba
Copy link
Owner
kgoba commented Dec 18, 2021

Thanks, man! There are still some things in the code yet in progress (currently the whole frequency range 0 .. Fnyquist/2 is monitored, and f_min/f_max is not properly implemented), but with the next wave of boredom I will probably move it forward again. I added FT4 encoding/decoding though, and checked that it works with about 75% decoding recall compared to WSJTX. Funny thing is that I get 3-5% extra decodes consistently that WSJTX misses completely.

@kholia
Copy link
Contributor Author
kholia commented Dec 18, 2021

Thanks!

I use ft8_lib in https://github.com/kholia/Easy-Digital-Beacons-v1 project for generating FT8 and FT4 beacons easily.

I also built a small HF PA for getting some power out on the air - https://github.com/kholia/HF-PA-v4/.

@Guenael
Copy link
Guenael commented Dec 18, 2021

@kholia Looks nice!! Good job. Did you also implemented GFSK on your board?
I will take a look on your repo, I have some interest in beacon h/w design : https://circuitmaker.com/Projects/Details/Guenael-VA2GKA/TinyBeacon-1300-RevB

@kholia
Copy link
Contributor Author
kholia commented Dec 19, 2021

@Guenael Thanks! I just have plain n-FSK going on I think. I will take a look at generating GFSK soon.

@Guenael
Copy link
Guenael commented Dec 20, 2021

@kgoba Quick question about one of your comment:

75% decoding recall compared --snip-- 3-5% extra decodes consistently that WSJTX misses completely

I didn't read the Fortran code of the official FT8 decoder, but WSPRD was using coherent decoding and it's a powerful approach get a perfect sync with a candidate signal. I don't think you can do this with your actual decoder, because you loose the phase information during the initial magnitude computation for your waterfall array.
Using an IFFT of a ref. sign, a convolution to extract dt-dp followed by a subtraction and a FFT could be interesting to test, but it's a different approach.

I would love to spend more time on all this stuff, but it's so time-consuming, and there are so many dragons :D

@kgoba
Copy link
Owner
kgoba commented Dec 20, 2021

Yes, indeed, WSJT-X uses quite advanced decoding since it has a lot of processing power at its use. The signal is first processed in a similar manner to my approach in order to find the candidates, but after that for each candidate the signal is frequency shifted, lowpassed and downsampled to narrow down the search, and then fine search of time and frequency offset is done on that signal. The decoding is done coherently as you mention, in multiple passes, subtracting the recovered messages in order to pick up weak signals that are "overwritten" by stronger ones close in frequency. It all should be very accurate, but what surprises me is that is still misses some quite normal signals that I decode. From the DSP point of view I think there could be some overlooked issue in the chain, some frequency aliasing or similar that has never been really pinpointed in WSJTX since in general it still works very well.

@Guenael
Copy link
Guenael commented Dec 20, 2021

@kgoba Fully agree with you. And finding a compromise between the detection ratio and processing power cover a very useful spot, specially for embedded devices.

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

Successfully merging this pull request may close these issues.

3 participants
0