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

[Question] FSK synchronization #376

Open
pfeatherstone opened this issue Jul 25, 2024 · 6 comments
Open

[Question] FSK synchronization #376

pfeatherstone opened this issue Jul 25, 2024 · 6 comments

Comments

@pfeatherstone
Copy link

I have a 4-FSK signal that i want to demodulate. It doesn't have a preamble or anything like that to assist with synchronization. The fskdem object requires perfect symbol timing. How can we realise symbol timing?

@xerpi
Copy link

xerpi commented Jul 25, 2024

This might help: https://liquidsdr.org/doc/symtrack/

@pfeatherstone
Copy link
Author

Does that work with FSK? Not sure

@pfeatherstone
Copy link
Author

Yeah symtrack is only designed to work with modem objects which doesn't include FSK

@xerpi
Copy link

xerpi commented Aug 1, 2024

I think you can still use symsync (and symtrack maybe). Just make sure to pass the samples through a Gaussian filter (LIQUID_FIRFILT_GMSKRX) after FM demodulation before using symsync. Check this example: https://github.com/jgaeddert/liquid-dsp/blob/master/examples/gmsk_tracking_example.c#L62

Here's more info on what makes GMSK different regarding the matched filter: https://dsp.stackexchange.com/a/74319

GMSK doesn't just use a Gaussian filter instead of a raised-cosine filter. It uses a Gaussian filter on the phase, before applying it to the modulator. This makes it a nonlinear operation.
When a raised-cosine filter is applied to some modulated signal, it is applied after modulation, as a linear operation.

Edit: Oops, I just realized this is about FSK and not GMSK, although apparently they are quite similar 🤔

@pfeatherstone
Copy link
Author

I've tried using symsync for FSK4 and it's not working well at all.

@pfeatherstone
Copy link
Author

I'm using something similar to freqdem or GNURadio's Quadrature demod block to basically convert FSK4 to ASK4 then I need some kind of symbol synchronization and PLL. In this case the error in the amplitude equals to frequency error, which then needs to be fed to a PLL loop. So i don't think i can simply re-use an ASK4 demod algorithm.

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

2 participants