/SGN_CrestFactorOptimization

Crest factor Optimization Method based on Sigmoid Transform - Gauss Newton

Primary LanguageHTMLMIT LicenseMIT

Crest Factor Optimization for Multisine Signals

Introduction

This repository contains implementations of the "Deblur" (Official name: Sigmoid Transform time-frequency domain swapping - Gauss Newton algorithm Lp minimization) for crest factor optimization of multisine signals. The algorithm combines sigmoid transform and Gauss-Newton optimization to minimize the crest factor, resulting in more efficient use of the signal's dynamic range.

Implementations

The algorithm is available in multiple languages/formats:

  1. MATLAB: MATLAB/deblur_main.m
  2. Python: Python/deblur_main.py
  3. Python Flask (SAAS): Python-Flask/deblur_main_web.py
  4. HTML/JavaScript: HTML_Javascript/deblur_main.html

You only need to download and use one version, depending on your preferred language or environment.

Online Demo

You can test the algorithm online at: https://kallelay.com/deblur/deblur_main.html

Please note that the online version is relatively slow compared to the MATLAB and Python implementations due to the limitations of browser-based execution.

Detailed Explanation

For a full explanation of the method and its theoretical background, please visit: https://kallelay.com/deblur/

Published Research

This work has been published in the MDPI Batteries journal. You can find the full paper here: https://www.mdpi.com/2313-0105/8/10/176

Getting Started

  1. Clone this repository
  2. Choose the implementation that suits your needs (MATLAB, Python, Flask, or HTML/JavaScript)
  3. Follow the instructions in the respective files to run the algorithm

Contributing

We welcome contributions to improve the algorithm or its implementations. Please feel free to submit issues or pull requests.

License

MIT License


We hope you find this crest factor optimization algorithm useful for your signal processing needs!