You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Bachelor Thesis: Spectrum Sensing for the SALSAT Nanosatellite
1
+
# Spectrum Sensing for the SALSAT Nanosatellite
2
2
3
-
This repository contains code for the Bachelor thesis *Spectrum Sensing for the SALSAT Nanosatellite*. It aims to provide algorithms and simulations for *blind wideband spectrum sensing* with special emphasis on space applications. More background information on the SALSAT project can be found [here](https://www.raumfahrttechnik.tu-berlin.de/menue/forschung/aktuelle_projekte/salsat/parameter/en/).
3
+
This repository is part of my bachelor thesis:*Spectrum Sensing for the SALSAT Nanosatellite*. It provides algorithms and simulations for blind wideband spectrum sensing with special emphasis on space applications. More background information on the SALSAT project can be found [here](https://www.raumfahrttechnik.tu-berlin.de/menue/forschung/aktuelle_projekte/salsat/parameter/en/).
4
4
5
5
This repository is split up into two main directories:
6
6
*`specsens/` the python package that contains all relevant code and algorithms.
7
7
*`notebooks/` contains usage examples for all parts of the `specsens` package.
8
8
9
-
Not relevant for *normal* use:
10
-
*`graphs/` code that generates graphics for the thesis (LaTex).
11
-
*`archive/` old code no longer relevant.
9
+
## Usage
12
10
13
-
The code is written in `python 3.6` using the packages listed in [`requirements.txt`](./requirements.txt). **Ensure that you have matplotlib `3.1.x` installed. Other versions might give weird artifacts. I am still looking into the problem at this point in time.**
11
+
The code is written in `python 3.6` using the packages listed in [`requirements.txt`](./requirements.txt). Consider using a [virtual environment](https://docs.python.org/3/tutorial/venv.html). **Ensure that you have matplotlib `3.1.x` installed. Other versions might give weird artifacts. I am still looking into the problem at this point in time.**
14
12
15
-
To run the notebooks you will need to install [Jupyter Notebook](https://jupyter.org/install.html).
13
+
#### Step by step installation guide
14
+
Starting with a *clean* Ubuntu 18.04 system (should also work with other Linux distributions) you will need to follow these steps:
15
+
- Clone the repository using `git`, run `git clone <ssh url>`
16
+
- Ensure you have Python 3, run `python3 --version`
17
+
- Install Python Virtual Environments, run `sudo apt install python3-venv`
18
+
- Install `pip3`, run `sudo apt install python3-pip`
19
+
- Create a new virtual environment, run `python3 -m venv specsens-env`
20
+
- To activate the virtual environment, run `source specsens-env/bin/activate`
21
+
- (To deactivate the virtual environment, run `deactivate`)
22
+
- Use the `requirements.txt` to install required python packages, run `pip3 install -r requirements.txt`
23
+
- Finally, start Jupyter Notebook, run `jupyter notebook`
24
+
25
+
If you already have some of parts installed, just skip the corresponding steps. Feel free to open an issue or contact me if you run into any problems.
16
26
17
27
## Specsens Package
18
-
In order to organize and structure my work I created the `specsens` package. It contains most of the algorithms and simulations that I developed. It behaves like a regular python package (`import specsens`) and consists of the following directories:
28
+
In order to organize and structure my work I created the `specsens` package. It contains most of the algorithms and simulations that I developed. It behaves like a regular python package (one can just `import specsens`) and consists of the following directories:
19
29
*`signal/` signal and noise generators used mainly for simulations, as well as some utilities that simplify working with signals.
20
30
*`plot/` plotting functions to visualize signals.
21
31
*`energy_detect/` energy detector and functions to calculate performance statistics (prob. of false alarm, prob. of detection, etc.).
*`eigenvalue_detect/` eigenvalue detection algorithms based on signal covariance matrices
24
34
*`simulation/` simulations to evaluate performance statistics.
25
35
36
+
When using the `specsens` package locally you need to add the following lines before you import the package. This tells the python interpreter where to find the package:
37
+
```python
38
+
import sys
39
+
sys.path.insert(0, '..')
40
+
```
41
+
Replace `..` with the path to the `specsens` package, when moving things around.
42
+
43
+
26
44
## Notebooks
27
45
**Coming soon**
28
46
@@ -31,6 +49,7 @@ In order to organize and structure my work I created the `specsens` package. It
31
49
-[] Notebook documentation in readme
32
50
-[] Upload papers and create basic paper index that helps to *connect* paper and python implementation
33
51
-[] Documentation for every function using sphinx(not sure if I will do that tho) (https://docs.python-guide.org/writing/documentation/)
52
+
-[] Upload specsens to PyPi
34
53
35
54
36
55
#### Functional
@@ -39,6 +58,7 @@ In order to organize and structure my work I created the `specsens` package. It
39
58
-[] Add pfa and pd eigenvalue stats
40
59
-[] Create eigenvalue simulation with filter and prewhitening matrix
41
60
-[] Combine eigenvalue detection and noise estimation based energy detection, use energy detection as heuristic and binary search pattern to find *noise only* band to use for noise estimation
0 commit comments