{"id":24545286,"url":"https://github.com/12danielll/dsp_project","last_synced_at":"2025-03-16T09:15:30.084Z","repository":{"id":271606960,"uuid":"913997051","full_name":"12danielLL/DSP_Project","owner":"12danielLL","description":"This project focuses on designing, implementing, and analyzing digital signal processing techniques. It includes custom FFT and IFFT algorithms, the design of Butterworth filters, and convolution using the Overlap-Add method. Developed in MATLAB, the project emphasizes signal analysis, efficiency, and practical DSP applications.","archived":false,"fork":false,"pushed_at":"2025-01-09T12:18:12.000Z","size":3532,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T21:18:44.959Z","etag":null,"topics":["bilinear-transformation","butterworth-filter","convolution","digital-signal-processing","dsp","dsp-algorithms","fft","filter-design","fir-filters","frequency-domain","ifft","iir-filters","matlab","ova","overlap-add-method","signal-analysis","time-domain"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","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/12danielLL.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-08T18:45:00.000Z","updated_at":"2025-01-09T12:25:23.000Z","dependencies_parsed_at":"2025-01-08T19:43:08.504Z","dependency_job_id":"9ec85db1-e407-4155-8be6-f22c2eee7946","html_url":"https://github.com/12danielLL/DSP_Project","commit_stats":null,"previous_names":["12danielll/dsp_project"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12danielLL%2FDSP_Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12danielLL%2FDSP_Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12danielLL%2FDSP_Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12danielLL%2FDSP_Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/12danielLL","download_url":"https://codeload.github.com/12danielLL/DSP_Project/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243847059,"owners_count":20357317,"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":["bilinear-transformation","butterworth-filter","convolution","digital-signal-processing","dsp","dsp-algorithms","fft","filter-design","fir-filters","frequency-domain","ifft","iir-filters","matlab","ova","overlap-add-method","signal-analysis","time-domain"],"created_at":"2025-01-22T21:18:47.145Z","updated_at":"2025-03-16T09:15:30.050Z","avatar_url":"https://github.com/12danielLL.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Digital Signal Processing (DSP) Project\n\n## Overview\nThis project was part of a DSP course and focuses on designing, implementing, and analyzing signal processing algorithms. It includes:\n1. Implementation of FFT and IFFT algorithms.\n2. Design and conversion of analog filters (Butterworth) to digital filters using bilinear transformation.\n3. Signal filtering using digital filters.\n4. Linear convolution implementation with the Overlap-Add (OVA) method.\n\n## Table of Contents\n1. [Overview](#overview)\n2. [Technologies Used](#technologies-used)\n3. [Project Structure](#project-structure)\n4. [File Structure](#file-structure)\n5. [Getting Started](#getting-started)\n6. [Results and Analysis](#results-and-analysis)\n7. [License](#license)\n8. [Contributors](#contributors)\n\n## Technologies Used\n- MATLAB R2020a or later\n- Signal Processing Toolbox (optional for advanced visualization)\n\n## Project Structure\n### Key Scripts:\n- `DSP_part1.m`: Implements FFT and IFFT without recursion and compares results with MATLAB built-in functions.\n- `DSP_part2.m`: Contains filter design, FFT analysis, and filtering results using linear convolution and OVA methods.\n- Supporting files:\n  - `sig_2.mat`: Input signal for filtering.\n  - `filter_0.25_101.mat`: FIR filter coefficients.\n\n### Key Features:\n1. **FFT and IFFT Implementation**:\n   - Custom implementation of FFT using the Cooley-Tukey algorithm.\n   - Verification against MATLAB's built-in functions.\n2. **Digital Filter Design**:\n   - Analog Butterworth filter transformed into a digital filter using bilinear transformation.\n   - Magnitude and frequency responses visualized.\n3. **Signal Filtering**:\n   - Applied FIR and IIR filters to input signals.\n   - Explored noise suppression and signal enhancement techniques.\n4. **Overlap-Add Convolution**:\n   - Efficient implementation for large signals.\n   - Comparison of execution times with direct convolution.\n\n## File Structure\n```\n.\n├── DSP PART 1.pdf # Results document for Part 1  \n├── DSP PART 2.pdf # Results document for Part 2\n├── DSP part1 instructions.docx # Instructions for Part 1 \n├── DSP part2 instructions.docx # Instructions for Part 2 \n├── DSP_part1.m # Script for FFT and IFFT implementation \n├── DSP_part2.m # Script for filter design and analysis \n├── filter_0.25_101.mat # FIR filter coefficients \n├── filter_1.mat # Filter 1 coefficients \n├── filter_2.mat # Filter 2 coefficients \n├── part 1 matlab files.zip # ZIP file containing MATLAB files for Part 1 \n├── sig_2.mat # Input signal for filtering \n├── sig_x.mat # Signal for convolution operations \n├── LICENSE # License file \n├── README.md # Project documentation\n```\n## Getting Started\n### Prerequisites:\n- MATLAB R2020a or later.\n- Signal Processing Toolbox (optional for advanced visualization).\n\n## Running the Project\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/12danielLL/DSP_Project\n2. Load the required .mat files into MATLAB\n3. Run the scripts in the following order:\n- `DSP_part1.m`: This script implements FFT and IFFT algorithms. It compares the custom implementation against MATLAB's built-in functions for verification.\n- `DSP_part2.m`: This script contains the design and conversion of filters, as well as signal filtering using convolution and the OVA method.\n\n```\n```\n  ## Results and Analysis\n\n- **Custom FFT vs Built-in FFT**: The custom implementation closely matches MATLAB's built-in functions in both time and frequency domains.\n\n- **Filter Responses**:\n  - Analog and digital filters designed as per specifications.\n  - Visualized magnitude response of Butterworth filters in both analog and digital domains.\n\n- **OVA vs Direct Convolution**:\n  - OVA significantly reduces computational time for large signals.\n  - Comparison of execution times shows the efficiency of the OVA method over direct convolution for large inputs.\n## License\n\nThis project is licensed under the [MIT License](LICENSE). See the `LICENSE` file for details.\n\n## Contributors\n\n- Yuval Peretz\n- Daniel Brooker\n- Or Shachar\n\n-This project was completed as part of the Digital Signal Processing (DSP) course at Bar-Ilan university.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F12danielll%2Fdsp_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F12danielll%2Fdsp_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F12danielll%2Fdsp_project/lists"}