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

[DRAFT] Add support for noncoherent integrations #11

Closed
wants to merge 19 commits into from

Conversation

minecraft2048
Copy link
Contributor

@minecraft2048 minecraft2048 commented Jan 12, 2024

This pull request added support for noncoherent integration for acquire function.

Now acquire function have new keyword arguments:

  • noncoherent_integration_round : How many noncoherent integration rounds, default is 1
  • coherent_integration_length: Length of single coherent integration in seconds. This is API breaking, previously coherent integration length is defined by the length of the samples passed into the function. I found it to be a bit unintuitive
  • compensate_doppler_code: Apply doppler compensation to try to compensate code drift caused by doppler effect, some reference on the code drift problem: https://enac.hal.science/hal-00937060/document. It can take these values: :disabled, :positive, which is the default, and :negative

This will close #10

Some code cleanup is still necessary before we can merge it with upstream

To detect weak signals from reflected GPS L1 signals from the ocean
1ms coherent integration is not enough. We need 1000x1ms noncoherent
integrations to get enough processing gain

Currently not working for all signals because of code doppler correction
and indexing bug
Scalar downconvert! function is extremely slow compared to SIMD
vectorized downconvert! function. Its better for the program to fail
with missing function rather to run extremely slowly
Some RF frontends (such as TDS-1) generates real data at IF instead
of complex baseband signal. Previously this is handled by the fallback
downconvert! function, but that is extremely slow because it doesn't use
SIMD.
Vector type is not compatible with SubArray type, use AbstractVector
instead
@minecraft2048
Copy link
Contributor Author

Closing this PR, its too messy to upstream directly

I'm currently splitting this huge messy PR into multiple smaller self-contained PRs

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.

Add support for noncoherent integration
1 participant