This desktop application provides a user-friendly interface for designing custom digital filters through zeros-poles placement on the z-plane. Users can manipulate filter elements, visualize frequency responses, apply filters in real-time, and correct phase with added All-Pass filters. The application aims to simplify the filter design process with intuitive controls and interactive features.
To run the application, follow these steps:
- Ensure you have Python installed on your system (version X.X.X recommended).
- Clone this repository to your local machine.
- Install the required dependencies by running the following command in your terminal or command prompt:
pip install scipy
- Run the application script:
python Application1.py
The application window will appear, providing access to the various design and visualization features.
- Interactive plot of the z-plane with the unit circle.
- Place, modify, and delete zeros and poles by dragging or clicking.
- Clear individual zeros, poles, or all elements.
- Option to add or omit conjugates for complex elements.
- Graphs depicting magnitude and phase responses for the placed elements.
- Apply the designed filter on a lengthy signal in real-time.
- Dynamic graph displaying time progress of the original and filtered signals.
- Control the filtering speed/temporal-resolution via a slider.
- Input arbitrary real-time signals by moving the mouse in a designated area.
- Library of pre-built All-Pass filters with visualizations of zero-pole combinations and phase responses.
- Select and add All-Pass filters to the original design.
- Create custom All-Pass filters by specifying an arbitrary "a" value, with automatic phase response calculation and integration into the library.
- Enable/disable added All-Pass elements via a drop-down menu or checkboxes.