Frequency Selection Tool for Undersampling Multisine Signals
Undersampling Multisine Signals
Undersampling Multisine Signals is a tool for selecting frequencies of a multisine signal that do not overlap in the frequency domain in undersampling conditions. A detailed example is described in the conference proceedings of [1] (README.md#sources). An application example for multisine signals can be found in 2.
We want to find a frequency combination that can be used for multisine signals with undersampling. It is assumed that the following signal path exists:
.
The following could therefore be measured in the frequency range:
.
To solve this problem, we first create an adjacency matrix that contains information on whether any two frequencies can be combined:
.
This adjacency matrix is then mapped onto a graph. In this graph, cliques are then searched for that are equivalent to frequencies that can be used together for excitation.
.
Getting Started
-
Clone the project.
git clone https://git.rwth-aachen.de/isea/undersampling-multisine-signals.git -
Install Python 3.11.9 (https://www.python.org/downloads/)
-
Open an prompt and navigate to the path of this project
cd path_to_this_project -
Follow the instructions of the Python Read the Docs to create an virtual environment (venv) and activate it. E.g.:
Windowspython -m venv .venv .\.venv\Scripts\activateLinux / Mac
python -m venv .venv . .venv/bin/activate -
Install all necessary packages with:
Windowspip install -r requirements_windows.txtLinux / Mac
pip install -r requirements.txt -
(Optional) Clean up your venv:
python -m pip cache purge -
Open this project with an Jupyter-Notebook editor of your choice, e.g. VS Code (needs to be installed separatly) with:
code
Example Usage
Details and step-by-step explanations can be found in the Jupyter Notebooks:
Colophon
Thanks to Hendrik Zappen , who supported me Alexander Blömeke
.
Related Publications / Citation
You can cite an archived version of this prepository: https://doi.org/10.18154/RWTH-2024-09502.
Please cite our papers: https://publications.rwth-aachen.de/record/816942, https://doi.org/10.3390/batteries4040064
Archived versions of this git:
Release v0.1.0: https://doi.org/10.18154/RWTH-2024-09502
License
This project is licensed according to the file LICENSE.
Further Information
Developer Info
This project is written in Python 3.11.9 using Visual Studio Code and Jupyter Notebooks in an Python virtual environment on Windows. A requirements.txt can be created by:
pip freeze -l > requirements.txt
Git and Jupyter Notebooks
Consider to ignore the Jupyter Outputs in Git:
git config filter.strip-notebook-output.clean 'jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to=notebook --stdin --stdout --log-level=ERROR'
FAQ
- pywin32 fails: https://github.com/microsoft/vscode-jupyter/wiki/Failure-to-start-kernel-due-to-failures-related-to-win32api-module
Sources
[1] https://publications.rwth-aachen.de/record/816942
[2] https://doi.org/10.3390/batteries4040064