Skip to content
This repository was archived by the owner on Dec 23, 2025. It is now read-only.

carlvillads/22051_project_assignment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

205 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

22051 – Acoustic Deep-Space Hyperfractal Communicator Analyser

This project implements a DSP pipeline for generation/loading, analyzing, filtering and visualizing time-signals. It was developed as a part of the course 22051 - Signals and linear systems in discrete time, Fall 25.

The analyzer can generate a synthetic signal or load a .wav file, apply resampling, design filters, compute DFT and STFT and several plots of both the signal and filter.

Using our analyser

To use our analyser, you can either download the souce code, and run the main file from the terminal with

python -m src.adshca.signal_analyser [spec file] [--args]

OR you can install the python wheel!

The binaries are located in build/:

With pip/pipx

pip install ./build/adshca_group_10-2025.12.3-py3-none-any.whl

With uvx (reccomended)

uvx build/adshca_group_10-2025.12.3-py3-none-any.whl

With uv

uv tool install build/adshca_group_10-2025.12.3-py3-none-any.whl

Using installed wheel

Almost identical to the python command, just call

adshc_analyse [spec file] [--args]

Uninstalling

If you wish to remove it again, you can uninstall with:

pip uninstall adac_analyser

or

uv tool uninstall adac_analyser

Prerequisites

  • Python 3.12 or newer

If running manually without installing, the following dependencies are also needed:

  • matplotlib >= 3.10.7
  • numpy >= 2.2.6
  • scipy >= 1.16.2

Usage

To run the analyzer, paste the following in the terminal:

with debug, use -v or --verbose

python signal_analyser.py [spec file].txt --verbose

without debug

python signal_analyser.py [spec file].txt

Optional arguments

To choose a custom directory for saving the generated plots: -o, --output

Example:

python signal_analyser.py specs.txt --output results/

If excluded, default directory plots/ is used.

Disable saving all plots to disk: --no-save

Disable displaying all generated plots: --no-show

Logging

The analyzer includes a logging system, that gives insight into every processing step. It is automatically enabled and the logs are written to a log file and saved in a generated directory adshca_logs/.

N.B. New log entries overwrite the existing log file on every run (if it exists).

Project folder structure

├── pyproject.toml
├── README.md
├── src
│   └── adshca
│       ├── __init__.py
│       ├── filtering
│       │   ├── __init__.py
│       │   └── design_filter.py
│       ├── frequency_analysis
│       │   ├── __init__.py
│       │   └── fourier_transforms.py
│       ├── initialize
│       │   ├── __init__.py
│       │   ├── load.py
│       │   ├── logging_config.py
│       │   ├── resampling.py
│       │   └── utils.py
│       ├── signal_analyser.py
│       ├── signal_generation
│       │   ├── __init__.py
│       │   └── signal_generator.py
│       └── signal_plotting
│           ├── __init__.py
│           ├── plots.py
│           └── save.py
├── work_documents
│   ├── group_project_file_structure.txt
│   └── group_project_overview.txt
│
└── spec_files
    ├── global_specs_final_E25.txt  <-- Final submission specs
    ├── global_specs.txt            <-- Initial example specs
    ├── adshca_spec_test_1.txt
    ├── adshca_spec_test_2.txt
    ├── adshca_spec_test_3.txt
    └── adshca_spec_test_4.txt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Contributors

Languages