The Digital Filter Designer is a powerful application built using PyQt5 and Matplotlib. It allows users to design and visualize digital filters, including standard filters and all-pass filters, and generate corresponding C code. This tool is ideal for students, researchers, and engineers working in the field of digital signal processing.
https://drive.google.com/file/d/1P7x8AQ1tuT9XlT_HM9brPxJPCl7oTAro/view?usp=sharing
- Z-Plane Plotting: Visualize zeros and poles on the Z-plane.
- Standard Filter Design: Design Butterworth, Chebyshev, Bessel, and Elliptic filters.
- All-Pass Filter Design: Create custom all-pass filters and predefined all-pass filters.
- Real-Time Signal Plotting: Load signals from CSV files or draw signals using the mouse.
- Transfer Function Visualization: View the magnitude and phase response of the designed filter.
- C Code Generation: Generate C code for the designed filter for easy integration into other projects.
Ensure you have the following installed:
- Python 3.x
- PyQt5
- Matplotlib
- NumPy
- SciPy
- Pandas
- Jinja2
- PyQtGraph
- Clone the repository:
git clone https://github.com/HarmoniCode/Digital-filter.git
- Navigate to the project directory:
cd Digital-filter
- Install the required packages:
pip install -r requirements.txt
- Navigate to the project directory:
cd Digital-filter
- Run the main application:
python main.py
- Add zeros and poles to the Z-plane by entering their coordinates and clicking the "Add Zero" or "Add Pole" buttons.
- Visualize the effect of the zeros and poles on the filter's transfer function in real-time.
- Select a standard filter type (e.g., Butterworth, Chebyshev) from the dropdown menu.
- The application will automatically plot the zeros and poles for the selected filter.
- Create custom all-pass filters by adjusting the parameter a using the spinbox.
- Select predefined all-pass filters from the list of checkboxes.
- Load a signal from a CSV file by clicking the "Load Signal" button.
- Draw a signal using the mouse by selecting the "Draw using Mouse" option.
- View the magnitude and phase response of the designed filter in the transfer function plot.
- Generate C code for the designed filter by clicking the "C Code" button.
- The generated code will be displayed in a pop-up window and saved and .c file .
This project is licensed under the MIT License.
Contributions are welcome! Please fork the repository and submit a pull request with your changes. For major changes, please open an issue first to discuss what you would like to change.
For any questions or feedback, please contact HarmoniCode.