This repository contains the Kalman PLL Testbench project for MATLAB R2024b. It is designed to simulate and analyze GNSS receiver dynamics using a Kalman filter-based Phase Lock Loop (PLL). The project integrates several components—including scintillation models and auxiliary libraries—some of which are managed as Git submodules.
To ensure that all required submodules are properly cloned, you can use one of the following methods:
Clone the repository and its submodules in one step:
git clone --recurse-submodules <repository_url>If you've already cloned the repository without submodules, navigate to the repository directory and run:
git submodule update --init --recursiveTo update the submodules to the latest commit on their tracked branches, run:
git submodule update --remoteBelow is a simplified view of the repository structure:
kalman_pll_testbench/
├── .git/ # Git repository and configuration files
├── libs/ # Library folders (some managed as submodules)
│ ├── arfit/ # ARFIT library (submodule)
│ ├── auxiliary_codes_old/ # Legacy auxiliary codes
│ ├── get_received_signal_functions/ # Signal generation functions
│ ├── kalman_pll/ # Kalman PLL implementation
│ ├── plots/ # Plotting utilities
│ └── scintillation_models/ # Ionospheric scintillation models (submodules)
│ ├── cornell_scintillation_model/
│ └── refactored_tppsm/
├── scripts/ # Additional scripts for simulations and tests
├── run_all_tests.m # Script that run all tests.
└── README.md # This fileNote 1: The actual file structure includes many internal Git folders (e.g., .git/modules/) and additional files. The above tree represents the primary directories you will interact with.
Note 2: After correctly cloning the repository, it is recommended to run the script run_all_tests.m to confirm the right behavior of all functions available in this branch.
- MATLAB R2024b or newer: The project is developed and tested using MATLAB R2024b.
- Git: Used for version control and managing submodules.
Now, whenever you switch branches (using git switch 'branch_name'), the custom post-checkout hook will run automatically:
- It deinitializes existing submodules.
- It removes submodule directories (if any).
- It reinitializes and updates the submodules to match the current branch.
Contributions are welcome! To contribute:
- Fork the repository
- Create a new branch for your feature or bufix
- Submit a pull request with your changes.
For any issues or questions, please open an issue in the GitHub repository.
This project is licensed under the [Your License Name Here] License.
For further details on the project's design, usage, and configuration, please refer to the documentation in the /docs folder or contact the project maintainers.
- Orcid: https://orcid.org/0000-0003-0412-5583
- Email: [email protected]