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

fsk framegen/sync #159

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

brian-armstrong
Copy link
Contributor

No description provided.

@brian-armstrong
Copy link
Contributor Author

Hey @jgaeddert

Here's roughly what I had in mind for these. My sync just uses qdetector as I mentioned recently. I'll take a look at yours soon to see what it's doing specifically.

One thing I am happy about here with my framegen - it does something I'd like to apply to the other framegens. It lazily creates new symbols on demand in order to reduce its memory footprint. One question I've been asked in the past was how to use Quiet on low memory devices. I thought this would be one place to start.

@jgaeddert
Copy link
Owner

Nice! I’m traveling for about a week but I’ll try to take a look at it when I’m back. I’ve thought about generating symbols as needed, but the performance for recovering the entire block at once is better. For FSK though this probably isn’t as big of a deal.

@brian-armstrong
Copy link
Contributor Author

I have made a few fixes to my work locally that aren't reflected here just yet, but this is pretty close to what I have still. I'll try to port those fixes over to this branch soon.

I actually did get the fsk bits connected in my modem, and I have successful transmissions at short distances. I'm having a hard time acquiring the preamble at long distances, though. I have briefly looked at your implementation but I'm not quite sure I get what it does, though I do see that it does run every preamble sample twice. I would have expected my approach to at least acquire decently even if it doesn't track cfo very well so I'm a bit surprised by that. Hoping to find some time this week to improve it.

@jgaeddert
Copy link
Owner

The synchronizer is intended to operate at an over-sampled rate so that I can correlate and find the preamble with a very low received power, yet still get a good estimate of timing and carrier offsets. I need to clean it up some which might help performance a bit. Right now there are some hard-coded values, and I really need to do a scrub of it to ensure I'm managing memory properly.

@jgaeddert
Copy link
Owner

So sorry for letting this completely fall off the shelf. Not a trivial merge at this point. I think the primary goals of this new FSK frame generator are:

  1. on-the-fly symbol generation to keep memory footprint small and reasonable
  2. compile-time configurable parameters including: number of bits per symbol, bandwidth, and symbol duration
  3. run-time configurable generator to dynamically specify payload length, CRC, and FEC schemes (synchronizer decodes automatically as with the flexframegen and flexframesync objects)

Did I miss anything?

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.

2 participants