FilterMaster makes digital filter design easy and practical, with features like real-time testing and a customizable library of filters. It is a user-friendly desktop app for creating digital filters. It also lets you see the filter's impact on a signal of your choice, along with fixing phase issues in this signal. This can be done by picking a ready-made filter from a library or creating your own.
FilterMaster is a desktop application designed to streamline the creation of digital filters in a user-friendly manner. Users can easily define filter characteristics by specifying the coordinates of zeros and poles. The application provides visualizations of the filter's magnitude and phase response, offering valuable insights into its behavior.
A notable feature is the real-time filtering capability, where users can observe the immediate impact of their filter design on a dynamically generated signal. The application includes an independent mouse area, allowing users to translate their mouse movements into a plotted signal. The real-time filtration process then dynamically applies the designed filter to this mouse-generated signal. Additionally, users have the option to import their own signal data from their computer.
Furthermore, FilterMaster empowers users to address phase distortions in imported signals, providing a straightforward solution for fine-tuning signal phases. Users can seamlessly resolve phase distortion issues by selecting an all-pass filter from a predefined library or customize an all-pass filter within the application. Notably, any custom filters created by users are seamlessly integrated into the library, eliminating the need to re-add them in future sessions.
The application encompasses additional features, which will be further detailed in the features section. FilterMaster is a user-friendly tool that prioritizes simplicity and practicality in digital filter design.
✅ Full-Control on your filter design, You can
- ✔️ add Zeros & Poles to Z-Plane unit circle.
- ✔️ remove specific zero or pole
- ✔️ delete all zeros or all poles or reset the design in one click.
- ✔️ drag the zeros and poles and change their positions
- ✔️ add conjugates of the existing zeros & poles
- ✔️ visualize the magnitude and phase response of your designed filter
- ✔️ check filter examples from the "Tools" menu
- ✔️ import a filter through a specifiec button or by dragging and dropping the file on the unit circle
- ✔️ export the designed filter as a CSV file
✅ Import and plot a signal data
✅ Generate a signal data by your mouse movement in a specified area
✅ Apply the designed filter on your signal
✅ Control the rate of the filtered points per sec
✅ Pause/Play/Reset the realtime plotting and filteration of your signal
✅ Export the filtered data
✅ Correct the phase distortion using the provided all-pass filters library
✅ Customize an all-pass filter and integrate it into the library
✅ Visualize the cascaded all pass filteres phase response and apply it on the signal
To be able to use our app, you can simply follow these steps:
- Install Python3 on your device. You can download it from Here.
- Clone the repository:
git clone https://github.com/Team-19-DSP-Tasks/FilterDesigner.git
- Install the required packages by the following command.
cd FilterDesigner
pip install -r requirements.txt
- Run the file with the name "filterDesignUI.py"
If you encounter any issues or have questions, feel free to reach out.
Gratitude goes out to all team members for their valuable contributions to this project.
All rights reserved © 2023 to Team 19 of Digital Signal Processing Course - Systems & Biomedical Engineering, Cairo University (Class 2025)