{"id":21478406,"url":"https://github.com/mathworks-teaching-resources/convolution-digital-signal-processing","last_synced_at":"2025-07-15T11:30:52.730Z","repository":{"id":49792780,"uuid":"392785670","full_name":"MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing","owner":"MathWorks-Teaching-Resources","description":"Interactive courseware module that addresses common foundational-level concepts taught in signal processing courses.","archived":false,"fork":false,"pushed_at":"2024-04-30T16:30:19.000Z","size":20286,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"release","last_synced_at":"2024-04-30T17:45:34.864Z","etag":null,"topics":["convolution","digital-signal-processing","electrical-engineering","matlab","matlab-live-script","signal-processing"],"latest_commit_sha":null,"homepage":null,"language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MathWorks-Teaching-Resources.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-04T18:06:31.000Z","updated_at":"2024-04-30T16:30:22.000Z","dependencies_parsed_at":"2024-04-30T17:52:33.253Z","dependency_job_id":null,"html_url":"https://github.com/MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathWorks-Teaching-Resources%2FConvolution-Digital-Signal-Processing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathWorks-Teaching-Resources%2FConvolution-Digital-Signal-Processing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathWorks-Teaching-Resources%2FConvolution-Digital-Signal-Processing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathWorks-Teaching-Resources%2FConvolution-Digital-Signal-Processing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MathWorks-Teaching-Resources","download_url":"https://codeload.github.com/MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing/tar.gz/refs/heads/release","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226033516,"owners_count":17563176,"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":["convolution","digital-signal-processing","electrical-engineering","matlab","matlab-live-script","signal-processing"],"created_at":"2024-11-23T11:18:09.815Z","updated_at":"2024-11-23T11:18:10.567Z","avatar_url":"https://github.com/MathWorks-Teaching-Resources.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# \u003cspan style=\"color:rgb(213,80,0)\"\u003eConvolution in Digital Signal Processing\u003c/span\u003e\n\n\n[![View on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://www.mathworks.com/matlabcentral/fileexchange/97112-convolution-in-digital-signal-processing) or [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing\u0026project=Convolution.prj\u0026file=README.mlx)\n\n[![MATLAB Versions Tested](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2FMathWorks-Teaching-Resources%2FConvolution-Digital-Signal-Processing%2Frelease%2FImages%2FTestedWith.json)](https://MathWorks-Teaching-Resources.github.io/Convolution-Digital-Signal-Processing)\n\n**Curriculum Module**\n\n_Created with R2024a. Compatible with R2024a and later releases._\n\n# Information\n\nThis curriculum module contains interactive [MATLAB® live scripts](https://www.mathworks.com/products/matlab/live-editor.html) and supporting data files centered around the fundamentals of convolution in digital signal processing. \n\n\n## Background\n\nYou can use these live scripts as demonstrations in lectures, class activities, or interactive assignments outside class. This module covers the definition and computation of 1D and 2D convolution, as well as the concepts of linear time invariant systems and filtering. It also includes examples of audio and image manipulation using convolution.\n\n\nThe instructions inside the live scripts will guide you through the exercises and activities. Get started with each live script by running it one section at a time. To stop running the script or a section midway (for example, when an animation is in progress), use the \u003cimg src=\"Images/EndIcon.png\" width=\"19\" alt=\"EndIcon.png\"\u003e Stop button in the **RUN** section of the **Live Editor** tab in the MATLAB Toolstrip.\n\n## Contact Us\n\nSolutions are available upon instructor request. Contact the [MathWorks teaching resources team](mailto:onlineteaching@mathworks.com) if you would like to request solutions, provide feedback, or if you have a question.\n\n\n## Prerequisites\n\nThis module assumes knowledge of MATLAB at the level of the [\u003cu\u003eMATLAB Onramp\u003c/u\u003e](https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted) – a free two\\-hour introductory tutorial that teaches the essentials of MATLAB.\n\n\n## Getting Started\n### Accessing the Module\n### **On MATLAB Online:**\n\nUse the [\u003cimg src=\"Images/OpenInMO.png\" width=\"136\" alt=\"OpenInMO.png\"\u003e](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing\u0026project=Convolution.prj) link to download the module. You will be prompted to log in or create a MathWorks account. The project will be loaded, and you will see an app with several navigation options to get you started.\n\n### **On Desktop:**\n\nDownload or clone this repository. Open MATLAB, navigate to the folder containing these scripts and double\\-click on [Convolution.prj](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing\u0026project=Convolution.prj\u0026file=README.mlx). It will add the appropriate files to your MATLAB path and open an app that asks you where you would like to start. \n\n\nEnsure you have all the required products (listed below) installed. If you need to include a product, add it using the Add\\-On Explorer. To install an add\\-on, go to the **Home** tab and select  \u003cimg src=\"Images/AddOnsIcon.png\" width=\"16\" alt=\"AddOnsIcon.png\"\u003e **Add-Ons** \u003e **Get Add-Ons**. \n\n\n## Products\n\nMATLAB® and the Signal Processing Toolbox™ are used throughout. To run all of the examples in \u003csamp\u003eConvolutionFilters.mlx\u003c/samp\u003e requires the Image Processing Toolbox™ and the Deep Learning Toolbox™, including the Deep Learning Toolbox Model for AlexNet Network support package.\n\n# Scripts\n## [**ConvolutionBasics.mlx**](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing\u0026project=Convolution.prj\u0026file=Scripts/ConvolutionBasics.mlx) \n|      |      |\n| :-- | :-- |\n|  | **In this script, students will...** \u003cbr\u003e   |\n| \u003cimg src=\"Images/Conv1D.gif\" width=\"171\" alt=\"Conv1D.gif\"\u003e \u003cbr\u003e  | $\\bullet$ define and compute convolution of two 1\\-D signals \u003cbr\u003e $\\bullet$ use FFT to compute convolution \u003cbr\u003e $\\bullet$ define and compute circular convolution \u003cbr\u003e $\\bullet$ achieve equivalence between circular and linear convolution \u003cbr\u003e   |\n|      |       |\n\n## [**ConvolutionLTI.mlx**](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing\u0026project=Convolution.prj\u0026file=Scripts/ConvolutionLTI.mlx) \n|      |      |      |\n| :-- | :-- | :-- |\n|  | **In this script, students will...** \u003cbr\u003e  | **Application** \u003cbr\u003e   |\n| \u003cimg src=\"Images/LTIPlot.png\" width=\"171\" alt=\"LTIPlot.png\"\u003e \u003cbr\u003e  | $\\bullet$ define a linear time invariant (LTI) system \u003cbr\u003e $\\bullet$ identify the moving average operation as a simple LTI system \u003cbr\u003e $\\bullet$ compute the output of an LTI system for an arbitrary input signal given its impulse response \u003cbr\u003e  | $\\bullet$ Transform a monophone signal to two channel stereo with reverberation \u003cbr\u003e   |\n|      |      |       |\n\n## [**ConvolutionFilters.mlx**](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing\u0026project=Convolution.prj\u0026file=Scripts/ConvolutionFilters.mlx) \n|      |      |      |\n| :-- | :-- | :-- |\n|  | **In this script, students will...** \u003cbr\u003e  | **Applications** \u003cbr\u003e   |\n| \u003cimg src=\"Images/EmbossedRose.png\" width=\"171\" alt=\"EmbossedRose.png\"\u003e \u003cbr\u003e  | $\\bullet$ explain the frequency domain implications of convolving two signals in the time domain \u003cbr\u003e $\\bullet$ achieve equivalence between low pass filtering and convolution \u003cbr\u003e $\\bullet$ define and compute convolution of two 2\\-D signals \u003cbr\u003e $\\bullet$ perform spatial filtering of images to achieve effects such as blurring and embossing \u003cbr\u003e  | $\\bullet$ Blurring images \u003cbr\u003e $\\bullet$ Sharpening images \u003cbr\u003e $\\bullet$ Using convolution to identify parts of an image \u003cbr\u003e $\\bullet$ Using pretrained convolutional neural network to identify images \u003cbr\u003e   |\n|      |      |       |\n\n## [**PracticeProblems.mlx**](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing\u0026project=Convolution.prj\u0026file=Scripts/PracticeProblems.mlx) \n# Related Courseware Modules\n|      |      |      |\n| :-- | :-- | :-- |\n| **Courseware Module** \u003cbr\u003e  | **Sample Content** \u003cbr\u003e  | **Available on:** \u003cbr\u003e   |\n| [**Binary Morphology in Image Processing**](https://www.mathworks.com/matlabcentral/fileexchange/94590-binary-morphology-in-image-processing) \u003cbr\u003e  | \u003cimg src=\"Images/DilationAnimation.gif\" width=\"171\" alt=\"DilationAnimation.gif\"\u003e \u003cbr\u003e  | [\u003cimg src=\"Images/OpenInFX.png\" width=\"91\" alt=\"OpenInFX.png\"\u003e](https://www.mathworks.com/matlabcentral/fileexchange/94590-binary-morphology-in-image-processing) \u003cbr\u003e [\u003cimg src=\"Images/OpenInMO.png\" width=\"136\" alt=\"OpenInMO.png\"\u003e](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Morphology-in-Image-Processing\u0026project=Morphology.prj) \u003cbr\u003e [GitHub](https://github.com/MathWorks-Teaching-Resources/Morphology-in-Image-Processing) \u003cbr\u003e   |\n| [**Climate Data Visualization and Analysis**](https://www.mathworks.com/matlabcentral/fileexchange/110125-climate-data-visualization-and-analysis) \u003cbr\u003e  | \u003cimg src=\"Images/image_9.png\" width=\"171\" alt=\"image_9.png\"\u003e \u003cbr\u003e  | [\u003cimg src=\"Images/OpenInFX.png\" width=\"91\" alt=\"OpenInFX.png\"\u003e](https://www.mathworks.com/matlabcentral/fileexchange/110125-climate-data-visualization-and-analysis) \u003cbr\u003e [\u003cimg src=\"Images/OpenInMO.png\" width=\"136\" alt=\"OpenInMO.png\"\u003e](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Climate-Data-Visualization-and-Analysis\u0026project=ClimateVis.prj) \u003cbr\u003e [GitHub](https://github.com/MathWorks-Teaching-Resources/Climate-Data-Visualization-and-Analysis) \u003cbr\u003e   |\n|      |      |       |\n\n\nOr feel free to explore our other [modular courseware content](https://www.mathworks.com/matlabcentral/fileexchange/?q=tag%3A%22courseware+module%22\u0026sort=downloads_desc_30d).\n\n# Educator Resources\n-  [Educator Page](https://www.mathworks.com/academia/educators.html) \n\n# Contribute \n\nLooking for more? Find an issue? Have a suggestion? Please contact the [MathWorks teaching resources team](mailto:%20onlineteaching@mathworks.com). If you want to contribute directly to this project, you can find information about how to do so in the [CONTRIBUTING.md](https://github.com/MathWorks-Teaching-Resources/Convolution-Digital-Signal-Processing/blob/release/CONTRIBUTING.md)  page on GitHub.\n\n\n *©* Copyright 2023 The MathWorks™, Inc\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathworks-teaching-resources%2Fconvolution-digital-signal-processing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathworks-teaching-resources%2Fconvolution-digital-signal-processing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathworks-teaching-resources%2Fconvolution-digital-signal-processing/lists"}