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

Update tracking #336

Open
wants to merge 23 commits into
base: next
Choose a base branch
from
Open

Update tracking #336

wants to merge 23 commits into from

Conversation

odrisci
Copy link
Contributor

@odrisci odrisci commented Nov 8, 2019

[DO NOT MERGE YET!]
This pull request updates the dll_pll_conf class to read from a ConfigurationInterface, refactors the implementation of dll_pll_veml_tracking and adds carrier aided code tracking as an option.

This addresses #335 and is open for discussion on the right way forward with the refactoring.

@carlesfernandez
Copy link
Member

Thanks @odrisci !

I love the removing of duplicated code. This is definitely the way we should go. Needs more work, but I’m totally in about making these changes.

I also like the renamings gr_complex -> fc32, cshort -> ic16 and cbyte -> ic8. However, this is a big change that impacts the configuration files, the documentation, and many other source files in order to make it consistent, and we should proceed carefully about it. At least, we should define alias for the current nomenclature in order to make a soft transition (that is, without breaking existing configurations), but promoting from now on the new nomenclature, which should also include byte -> i8, short -> i16 and float -> f32. Another option could be to adopt the Volk nomenclature (8i, 16i, 8ic, 16ic, …) defined in the table at https://gnss-sdr.org/docs/tutorials/understanding-data-types/#data-types-in-gnss-sdr The aim should be to make it the most intuitive and most “standard practice” as possible.

Still another issue: how do we rename ibyte and ishort (interleaved byte and interleaved short) formats? They are equivalent to ic8 and ic16 in terms of how data is stored, but it has other implications (i.e, data rate). The Volk nomenclature makes no distiction between those types, but I think having them defined makes sense in the GNSS context. In your proposal, iic8and iic16 would look kind of weird.

I'm still processing other very intesresting changes you made :-)

@odrisci
Copy link
Contributor Author

odrisci commented Nov 14, 2019 via email

i8->byte
ic8->cbyte
...
fc32->gr_complex
Previously a slope of 1 and a correlator spacing of +/- 1/2 chips was
implicitly assumed.
Lots of updates here:

o extracted out functions update_correlator_spacing and propagate_signal_parameters
o Using new Tracking_loop_filter
o Ensure correct discriminator normalization
o Enable carrier aiding
o Enable setting loop orders from config

Work in progress - phase tracking not working
@odrisci
Copy link
Contributor Author

odrisci commented Nov 15, 2019

I've rebased this onto the #332, hence the force push. This now uses the gnss-sdr style item type names (byte, ibyte, cbyte, etc)

@carlesfernandez
Copy link
Member

I've merged this branch and odrisci:fix_discriminator_normalization into gnss-sdr:odrisci-fix_discriminator_normalization, including the latest additions to next.

I'm starting testing from there.

carlesfernandez added a commit that referenced this pull request Feb 20, 2020
Avoid code duplication
Based on @odrisci suggestion at #336
@carlesfernandez
Copy link
Member

Hi @odrisci

This PR contained a lot of great ideas and improvements, it was just too much to be merged into the next branch without breaking things (I don't think that was your intention, either).

Most of them have already been merged into next at smaller steps, either by cherry-picking or by unshameless copy & paste (of course respecting your copyright on files). This is the list of new additions based on your PR:

  • Added the item_type_helpers class.
  • Fix computation of acquisition threshold.
  • Refactoring of Acquisition and Tracking adapters to avoid code duplication.
  • Fixed the normalization of the DLL discriminator for BPSK signals.
  • Addition of a unit test for discriminators.
  • Option to enable/disable carrier aiding to the code tracking loop.

There are still other interesting additions (e.g., frequency lock detector) which are not on next, so let's keep this PR open to keep them in mind. This comment is just for keeping track of the changes and acknowledging your work.

@odrisci
Copy link
Contributor Author

odrisci commented Mar 3, 2020

Thanks Carles!

I appreciate the work you did on this, I must try and update my local repo and rebase against your changes - maybe I can see if there are some more (smaller!) commits I can push back up. It will be a few weeks before I get a chance to have a look, but I'll let you know.

Thanks again

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.

None yet

2 participants