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] Is the tail of the sequence created by qdetector_*_create_gmsk correct? #377

Open
xerpi opened this issue Jul 26, 2024 · 1 comment

Comments

@xerpi
Copy link

xerpi commented Jul 26, 2024

qdetector_*_create_gmsk calls gmskmod_modulate with the _sequence symbols passed (of length _sequence_len) plus the 2*_m extra symbols corresponding to the filter delay (_m).
Those extra symbol delay symbols are passed as 0s:

for (i=0; i<_sequence_len + 2*_m; i++)
gmskmod_modulate(mod, i < _sequence_len ? _sequence[i] : 0, &s[_k*i]);

Since we are making the extra symbols a "hard" 0, the generated samples' phase looks like:
image
This was generated by calling qdetector_cccf_create_gmsk with:

  • samples per symbol = 10
  • filter delay = 7
  • beta = 0.4
  • sequence: {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1} (24 symbols)

Notice how the tail stays at a "low position".
Shouldn't the tail be all 0s instead?
Otherwise when correlating, those samples will have an influence.
I have the impression that something like this would be desirable:
image

@xerpi
Copy link
Author

xerpi commented Jul 26, 2024

I've played a bit around it.
I have added a new function, gmskmod_modulate_raw which lets you pass the raw sample value (_x), then at qdetector_*_create_gmsk I have splitted the for (i=0; i<_sequence_len + 2*_m; i++) loop into two:

  1. for (i=0; i<_sequence_len; i++) which just calls gmskmod_modulate
  2. for (i=0; i<2*_m; i++) which calls the new gmskmod_modulate_raw passing 0.0f as the sample value

This generates the follow sample sequence:
image
Notice how the tail of the phase (green) goes to 0.

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

1 participant