Demo script (Python) of particle swarm optimization (PSO) partly translated from SDMBIGDAT19 (MATLAB).
- Slide: https://slides.com/iphysresearch/pso
- Blog: Particle Swarm Optimization From Scratch Using Python
- Video: Bilibili
- Given
- Training data containing only noise:
TrainingData.mat
- Noise is Gaussian, stationary
- Data to be analysed:
analysisData.mat
- Signal: Quadratic chirp
- Parameter search ranges:
- 40 < a1 < 100
- 1 < a2 < 50
- 11 < a3 < 15
- Training data containing only noise:
- Detection and Estimation
- Detection: Is there a signal in the analysis data?
- Estimation: If so, estimate its parameters
- Use PSO to obtain generalized likelihood ratio test (GLRT) and maximum likelihood estimate (MLE)
- Recommended PSO parameters:
- Best of 8 runs
- Termination at 2000 iterations
- Python 3.x
- Numpy
- Scipy
- tqdm
Just run demo.py
script or demo.ipynb
.
$ python demo.py
- 2021 Gravitational Wave Data Analysis School in China (Soumya D. Mohanty)
- MIT