This desktop application allows users to design custom digital filters by placing zeros and poles on the z-plane. The interactive interface provides real-time visualization of the filter's frequency response and enables users to apply the designed filter to lengthy signals with customizable temporal resolution.
Image.Mixer.Video.Demo.mp4
- Interactive Plotting: Users can place zeros and poles on the z-plane.
- Dynamic Modifications: Zeros/poles can be modified by dragging them.
- Deletion: Clicking on a zero or pole allows users to delete it if delete by click mode is activated.
- Clear Options: Users can clear all zeros, all poles, or clear everything on the Z-plane.
- Conjugates: Option to add or remove conjugates for complex elements.
- Magnitude and Phase Response: Visual representation of the filter's frequency response.
- Real-time Updates: The plots update as users modify the filter design.
- Lengthy Signal Processing: Apply the filter to a signal with a minimum of 10,000 points in real-time.
- Mouse Input: Users can input real-time signals by moving the mouse, with the speed affecting signal frequencies.
- All-Pass Filter Library: Visualize and select from a library of all-pass filters.
- Custom All-Pass: Users can create their own all-pass filters by specifying "a," and the application calculates its phase response.
- Enable/Disable Controls: Users can toggle the added all-pass elements.
Explore the functionality with the provided examples:
To get started with the application, follow these steps:
- Clone the repository.
- Run the following command
pip install -r requirements.txt
- Run main.py
Youssef Ashraf |
Mourad Magdy |
Ziad Meligy |
Mariam Ahmed |
Feel free to contribute, report issues, or suggest enhancements. Happy filtering!