{"id":26544177,"url":"https://github.com/harmonicode/filtra","last_synced_at":"2025-03-22T03:42:52.910Z","repository":{"id":273959197,"uuid":"921409274","full_name":"HarmoniCode/Filtra","owner":"HarmoniCode","description":"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. Ideal for students, researchers, and engineers in digital signal processing.","archived":false,"fork":false,"pushed_at":"2025-02-08T05:45:36.000Z","size":457,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-22T03:42:49.477Z","etag":null,"topics":["data-visualization","digital-signal-processing","filter-design","pyqt5","real","real-time-processing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HarmoniCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-23T22:29:29.000Z","updated_at":"2025-02-20T00:17:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"3daa9ee1-951a-4a01-b81f-60b0c4e8c4aa","html_url":"https://github.com/HarmoniCode/Filtra","commit_stats":null,"previous_names":["harmonicode/digital-filter","harmonicode/filtra"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarmoniCode%2FFiltra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarmoniCode%2FFiltra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarmoniCode%2FFiltra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarmoniCode%2FFiltra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HarmoniCode","download_url":"https://codeload.github.com/HarmoniCode/Filtra/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244902922,"owners_count":20529114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-visualization","digital-signal-processing","filter-design","pyqt5","real","real-time-processing"],"created_at":"2025-03-22T03:42:51.761Z","updated_at":"2025-03-22T03:42:52.905Z","avatar_url":"https://github.com/HarmoniCode.png","language":"Python","readme":"# Digital Filter Designer\n\n[![Python Version](https://img.shields.io/badge/python-3.x-blue.svg)](https://www.python.org/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![PyQt5](https://img.shields.io/badge/PyQt5-5.15.4-red.svg)](https://pypi.org/project/PyQt5/)\n[![Matplotlib](https://img.shields.io/badge/Matplotlib-3.4.3-orange.svg)](https://matplotlib.org/)\n[![SciPy](https://img.shields.io/badge/SciPy-1.7.1-lightgrey.svg)](https://www.scipy.org/)\n\n![Digital Filter Designer](./assets/image.png)\n![Digital Filter Designer](./assets/image2.png)\n![Digital Filter Designer](./assets/image3.png)\n\n## Overview\n\nThe 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.\n\n## Demo video\nhttps://drive.google.com/file/d/1P7x8AQ1tuT9XlT_HM9brPxJPCl7oTAro/view?usp=sharing\n\n\n## Main Features\n\n- **Z-Plane Plotting**: Visualize zeros and poles on the Z-plane.\n- **Standard Filter Design**: Design Butterworth, Chebyshev, Bessel, and Elliptic filters.\n- **All-Pass Filter Design**: Create custom all-pass filters and predefined all-pass filters.\n- **Real-Time Signal Plotting**: Load signals from CSV files or draw signals using the mouse.\n- **Transfer Function Visualization**: View the magnitude and phase response of the designed filter.\n- **C Code Generation**: Generate C code for the designed filter for easy integration into other projects.\n\n## Getting Started\n\n### Prerequisites\n\nEnsure you have the following installed:\n\n- Python 3.x\n- PyQt5\n- Matplotlib\n- NumPy\n- SciPy\n- Pandas\n- Jinja2\n- PyQtGraph\n\n### Installation\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/HarmoniCode/Digital-filter.git\n    ```\n2. Navigate to the project directory:\n    ```sh\n    cd Digital-filter\n    ```\n3. Install the required packages:\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n### Running the Application\n\n1. Navigate to the project directory:\n    ```sh\n    cd Digital-filter\n    ```\n2. Run the main application:\n    ```sh\n    python main.py\n    ```\n\n## Usage\n\n### Z-Plane Plotting\n\n- Add zeros and poles to the Z-plane by entering their coordinates and clicking the \"Add Zero\" or \"Add Pole\" buttons.\n- Visualize the effect of the zeros and poles on the filter's transfer function in real-time.\n\n### Standard Filter Design\n\n- Select a standard filter type (e.g., Butterworth, Chebyshev) from the dropdown menu.\n- The application will automatically plot the zeros and poles for the selected filter.\n\n### All-Pass Filter Design\n\n- Create custom all-pass filters by adjusting the parameter [a](http://_vscodecontentref_/0) using the spinbox.\n- Select predefined all-pass filters from the list of checkboxes.\n\n### Real-Time Signal Plotting\n\n- Load a signal from a CSV file by clicking the \"Load Signal\" button.\n- Draw a signal using the mouse by selecting the \"Draw using Mouse\" option.\n\n### Transfer Function Visualization\n\n- View the magnitude and phase response of the designed filter in the transfer function plot.\n\n### C Code Generation\n\n- Generate C code for the designed filter by clicking the \"C Code\" button.\n- The generated code will be displayed in a pop-up window and saved and .c file .\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Contributing\n\nContributions 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.\n\n## Contact\n\nFor any questions or feedback, please contact [HarmoniCode](https://github.com/HarmoniCode).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharmonicode%2Ffiltra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharmonicode%2Ffiltra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharmonicode%2Ffiltra/lists"}