The repository is organized as follows:
signal-converters-course/
├── practical_classes/
│ ├── utils.py #featuring utilities functions imported locally
│ ├── practical_class_1.ipynb
│ ├── practical_class_2.ipynb
│ ├── practical_class_3.ipynb
│ └── ...
├── resources/
├── tests/
└── README.md
This GitHub repository features a collection of Jupyter Notebooks that are used in the Signal Converters course at the Faculty of Sciences and Technology of the NOVA University of Lisbon. The course focuses on the systems theory, design and practical aspects regarding the implementation of Digital-to-Analog and Analog-to-Digital Converters (DAC and ADC, respectively), and was initially taught using Octave, an open-source programming language inspired by MATLAB. Python is also open-source, and a much more powerful programming language than Octave. Due to having a greater user community it is also much more versatile. As such, the course's practical notes were converted and adapted to Python. Using Python and Jupyter Notebooks also enables two very useful features:
- The possibility of adding HTML and Markdown notes in the middle of code - providing a powerful note-taking system;
- The possibility of running computationally-heavy simulations in the cloud using Google Colab.
The notebooks were created by me and are intended to be used in the practical classes of the course. These notebooks feature examples of how to use Python to:
- Represent and generate signals in the frequency and time domains,
- Represent and generate random noise following a uniform or normal (Gaussian) distribution,
- Model Analog-to-Digital and Digital-to-Analog Converters, both in an high-level and mid-level of abstraction regarding their hardware implementation,
- Generate block-level schematics representing the converter systems.
The following open source packages are used in this project:
- NumPy - general-purpose array-processing package
- SciPy - fast-fourier-transform (FFT) and other advanced signal-processing algorithms
- Matplotlib & Seaborn - data visualization and general plotting
- SchemDraw - high-quality electrical circuit schematic diagrams
You can download the zip file of this repository here. Another alternative is to simply clone this repository to your current working directory using the following command:
git clone https://github.com/das-dias/signal-converters-notebooks.git
or
gh repo clone das-dias/signal-converters-notebooks
Feel free to clone this repository and use it to make oyur own notes, complement them and even expand the existing notes. If an issue or a bug/error is discovered within the shared code do not hesitate in contacting me through one of the following emails:
- [email protected] (institutional)
- [email protected] (personal)
In the case of an issue, me or any other main contributor will open an issue-tracking thread for this repository for each of the bugs that are found. Any change that is made to the notes by people interested in collaborating should be done so by generating a new pull request to update the existing notes. The changes will then be reviewed, discussed and approved if they're actually adding value to the notes or correctign existing issues.
- (creator) Diogo André Dias ([email protected])
This project is licensed under the MIT License - see the LICENSE file or go to the website to find more details.