MattiaDif / IIR-Hilbert-Transformer

Infinite Impulse Response (IIR) Hilbert Transformer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python implementation of An Infinite Impulse Response (IIR) Hilbert Transformer

Hilbert transformers play a pivotal role in various signal processing applications, ranging from single-sideband communication systems to audio effects. The utilization of Infinite Impulse Response (IIR) implementations is particularly appealing due to their computational efficiency. This approach begins with the design of a half-band filter, illustrating how the pole locations evolve during the transformation process from a half-band filter to summed all-pass filters and ultimately to a Hilbert transformer filter.

This repo is exclusively based on the work of Harris and colleagues: (paper).

The class generates coefficients with or without frequency warping (sometimes required to improve filter behavior close to DC).

Required Software

  1. Python 3.8
    • numpy==1.22.2
    • matplotlib==3.7.3
    • scipy==1.10.1

Installation

To clone this repo open your terminal and run:

git clone https://github.com/MattiaDif/IIR-Hilbert-Transformer.git

Then go into dsp/ folder and run:

./prj_init.py

to install required packages. It works for both Windows and Linux systems.

Repo description

Inside IIR-HIlbert-Transformer

  1. 'dsp' folder: it contains the IIRHilb.py file (inside hilbert folder) with the class implementation of the Hilbert transformer. The run.py script runs a filter design example.
  2. dsp/requirements.txt: txt file with the python packages required.
  3. dsp/prj_init.py file to download the required packages.

REFERENCE

If you use this repo, please cite:

"Di Florio, M. (2023). IIR-Hilbert-Transformer (Version 0.2) [Computer software]. https://github.com/MattiaDif/IIR-Hilbert-Transformer.git"

Note

To contribute refers to the dev branch!

About

Infinite Impulse Response (IIR) Hilbert Transformer.

License:MIT License


Languages

Language:Python 100.0%