Advertisement
serenia

regularHTML

Aug 27th, 2021
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.53 KB | None | 0 0
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Convolution</title>
  7. <link href="../new/css/default.css" rel="stylesheet" type="text/css" />
  8.  
  9. <script type='text/javascript' src='../new/js/jquery-1.5.js'></script>
  10. <script type='text/javascript' src='../new/js/jquery.droppy.js'></script>
  11. <link rel="stylesheet" href="../new/css/droppy.css" type="text/css" />
  12. <script type='text/javascript' src='../new/js/jcc.js'></script>
  13. <script>
  14. $(function(){
  15. if($.browser.msie){
  16. if($.browser.version.substr(0,1)!="9"){
  17. $('#greenBox2').corner({tl:{radius:5}, tr:{radius:5}, bl:{radius:5}, br:{radius:5}, antiAlias:true });
  18. }
  19. }else{
  20. $('#greenBox2').corner({tl:{radius:5}, tr:{radius:5}, bl:{radius:3}, br:{radius:5}, antiAlias:true });
  21. }
  22. });
  23. </script>
  24.  
  25. <link rel="stylesheet" href="../new/css/jquery.treeview.css" />
  26. <script src="../new/js/jquery.cookie.js" type="text/javascript"></script>
  27. <script src="../new/js/jquery.treeview.js" type="text/javascript"></script>
  28. <script type="text/javascript" src="../new/js/demo.js"></script>
  29.  
  30. </head>
  31.  
  32. <body>
  33.  
  34.  
  35. <div id="divPage">
  36. <div id="wrapper" class="not-logged-in">
  37.  
  38. <!-- Header -->
  39.  
  40. <div id="header">
  41. <h1>The Scientist and Engineer's Guide to<br />Digital Signal Processing<br /><span class="txtBlue txt26">By Steven W. Smith, Ph.D.</span></h1>
  42. <div id="menu">
  43. <ul id='nav' style="margin-left:10px;"><li><a href="../index.html">Home</a></li><li><a href="../pdfbook.html" class="selected">The Book by Chapters</a></li><li class="drop"><a href="../about.html">About the Book</a>
  44. <ul>
  45. <li><a href="../copyrite.html">Copyright and permissible use</a></li>
  46. <li><a href="../whatdsp.html">What is DSP?</a></li>
  47. <li><a href="../eightres.html">8 good reasons for learning DSP</a></li>
  48. <li><a href="../reviews.html">Comments by reviewers</a></li>
  49. <li><a href="../errata.html">Errata</a></li>
  50. <li><a href="download.html">Free Software and Teaching Aids</a></li>
  51. <li><a href="../editions.html">Differences Between Editions</a></li>
  52. </ul>
  53. </li><li><a href="../swsmith.html">Steven W. Smith</a></li><li><a href="http://www.dsprelated.com/blogs-1/nf/Steve_Smith.php">Blog</a></li><li><a href="../contact.html">Contact</a></li>
  54. </ul>
  55. <script type="text/javascript">$(function() {$("#nav").droppy();});</script>
  56. </div>
  57. </div>
  58.  
  59.  
  60. <!-- Content -->
  61.  
  62. <!-- -->
  63. <div id="columnLeft">
  64.  
  65. <div class="box">
  66. <h2>Book Search</h2>
  67. <div id="search">
  68. <form action="http://www.dspguide.com/search.php" method="post">
  69. <input type="text" name="searchfor" class="txtField" />
  70. <input type="image" src="../new/images/btn-go.png" name="Submit" value="Submit" class="button" />
  71. <div class="clear"><!-- --></div>
  72. </form>
  73. </div>
  74. </div>
  75.  
  76.  
  77. <div class="box">
  78. <h2>Download this chapter in PDF format</h2>
  79. <b><a href="http://www.dspguide.com/CH6.PDF">Chapter6.pdf</a></b>
  80. <br />
  81. <img src="../new/images/adobe-reader.png" alt="" vspace="5" />
  82. </div>
  83.  
  84. <div class="box">
  85. <h2>Table of contents</h2>
  86. <ul id="red" class="treeview-red">
  87. <ul style="border-top:1px solid #aeaeeb;"><li style="border-top:1px solid #aeaeeb;"><a href="../ch1.html">1: The Breadth and Depth of DSP</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch1/1.html">The Roots of DSP</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch1/2.html" style="color:#b4b4e9;">Telecommunications</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch1/3.html">Audio Processing</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch1/4.html">Echo Location</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch1/5.html">Image Processing</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch2.html">2: Statistics, Probability and Noise</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch2/1.html">Signal and Graph Terminology</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch2/2.html" style="color:#b4b4e9;">Mean and Standard Deviation</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch2/3.html">Signal vs. Underlying Process</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch2/4.html">The Histogram, Pmf and Pdf</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch2/5.html">The Normal Distribution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch2/6.html">Digital Noise Generation</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch2/7.html">Precision and Accuracy</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch3.html">3: ADC and DAC</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch3/1.html">Quantization</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch3/2.html" style="color:#b4b4e9;">The Sampling Theorem</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch3/3.html">Digital-to-Analog Conversion</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch3/4.html">Analog Filters for Data Conversion</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch3/5.html">Selecting The Antialias Filter</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch3/6.html">Multirate Data Conversion</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch3/7.html">Single Bit Data Conversion</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch4.html">4: DSP Software</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch4/1.html">Computer Numbers</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch4/2.html" style="color:#b4b4e9;">Fixed Point (Integers)</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch4/3.html">Floating Point (Real Numbers)</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch4/4.html">Number Precision</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch4/5.html">Execution Speed: Program Language</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch4/6.html">Execution Speed: Hardware</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch4/7.html">Execution Speed: Programming Tips</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch5.html">5: Linear Systems</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch5/1.html">Signals and Systems</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch5/2.html" style="color:#b4b4e9;">Requirements for Linearity</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch5/3.html">Static Linearity and Sinusoidal Fidelity</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch5/4.html">Examples of Linear and Nonlinear Systems</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch5/5.html">Special Properties of Linearity</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch5/6.html">Superposition: the Foundation of DSP</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch5/7.html">Common Decompositions</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch5/8.html">Alternatives to Linearity</a></li></ul></li><li class="open" style="border-top:1px solid #aeaeeb;"><a href="../ch6.html" style="color:#b4b4e9;">6: Convolution</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="1.html">The Delta Function and Impulse Response</a></li><li style="border-top:1px solid #aeaeeb;"><a href="2.html" style="color:#b4b4e9;">Convolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="3.html">The Input Side Algorithm</a></li><li style="border-top:1px solid #aeaeeb;"><a href="4.html">The Output Side Algorithm</a></li><li style="border-top:1px solid #aeaeeb;"><a href="5.html">The Sum of Weighted Inputs</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch7.html">7: Properties of Convolution</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch7/1.html">Common Impulse Responses</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch7/2.html" style="color:#b4b4e9;">Mathematical Properties</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch7/3.html">Correlation</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch7/4.html">Speed</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8.html">8: The Discrete Fourier Transform</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/1.html">The Family of Fourier Transform</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/2.html" style="color:#b4b4e9;">Notation and Format of the Real DFT</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/3.html">The Frequency Domain's Independent Variable</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/4.html">DFT Basis Functions</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/5.html">Synthesis, Calculating the Inverse DFT</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/6.html">Analysis, Calculating the DFT</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/7.html">Duality</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/8.html">Polar Notation</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch8/9.html">Polar Nuisances</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch9.html">9: Applications of the DFT</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch9/1.html">Spectral Analysis of Signals</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch9/2.html" style="color:#b4b4e9;">Frequency Response of Systems</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch9/3.html">Convolution via the Frequency Domain</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch10.html">10: Fourier Transform Properties</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch10/1.html">Linearity of the Fourier Transform</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch10/2.html" style="color:#b4b4e9;">Characteristics of the Phase</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch10/3.html">Periodic Nature of the DFT</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch10/4.html">Compression and Expansion, Multirate methods</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch10/5.html">Multiplying Signals (Amplitude Modulation)</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch10/6.html">The Discrete Time Fourier Transform</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch10/7.html">Parseval's Relation</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch11.html">11: Fourier Transform Pairs</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch11/1.html">Delta Function Pairs</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch11/2.html" style="color:#b4b4e9;">The Sinc Function</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch11/3.html">Other Transform Pairs</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch11/4.html">Gibbs Effect</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch11/5.html">Harmonics</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch11/6.html">Chirp Signals</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch12.html">12: The Fast Fourier Transform</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch12/1.html">Real DFT Using the Complex DFT</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch12/2.html" style="color:#b4b4e9;">How the FFT works</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch12/3.html">FFT Programs</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch12/4.html">Speed and Precision Comparisons</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch12/5.html">Further Speed Increases</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch13.html">13: Continuous Signal Processing</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch13/1.html">The Delta Function</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch13/2.html" style="color:#b4b4e9;">Convolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch13/3.html">The Fourier Transform</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch13/4.html">The Fourier Series</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch14.html">14: Introduction to Digital Filters</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch14/1.html">Filter Basics</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch14/2.html" style="color:#b4b4e9;">How Information is Represented in Signals</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch14/3.html">Time Domain Parameters</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch14/4.html">Frequency Domain Parameters</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch14/5.html">High-Pass, Band-Pass and Band-Reject Filters</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch14/6.html">Filter Classification</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch15.html">15: Moving Average Filters</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch15/1.html">Implementation by Convolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch15/2.html" style="color:#b4b4e9;">Noise Reduction vs. Step Response</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch15/3.html">Frequency Response</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch15/4.html">Relatives of the Moving Average Filter</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch15/5.html">Recursive Implementation</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch16.html">16: Windowed-Sinc Filters</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch16/1.html">Strategy of the Windowed-Sinc</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch16/2.html" style="color:#b4b4e9;">Designing the Filter</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch16/3.html">Examples of Windowed-Sinc Filters</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch16/4.html">Pushing it to the Limit</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch17.html">17: Custom Filters</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch17/1.html">Arbitrary Frequency Response</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch17/2.html" style="color:#b4b4e9;">Deconvolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch17/3.html">Optimal Filters</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch18.html">18: FFT Convolution</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch18/1.html">The Overlap-Add Method</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch18/2.html" style="color:#b4b4e9;">FFT Convolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch18/3.html">Speed Improvements</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch19.html">19: Recursive Filters</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch19/1.html">The Recursive Method</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch19/2.html" style="color:#b4b4e9;">Single Pole Recursive Filters</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch19/3.html">Narrow-band Filters</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch19/4.html">Phase Response</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch19/5.html">Using Integers</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch20.html">20: Chebyshev Filters</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch20/1.html">The Chebyshev and Butterworth Responses</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch20/2.html" style="color:#b4b4e9;">Designing the Filter</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch20/3.html">Step Response Overshoot</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch20/4.html">Stability</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch21.html">21: Filter Comparison</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch21/1.html">Match #1: Analog vs. Digital Filters</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch21/2.html" style="color:#b4b4e9;">Match #2: Windowed-Sinc vs. Chebyshev</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch21/3.html">Match #3: Moving Average vs. Single Pole</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch22.html">22: Audio Processing</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch22/1.html">Human Hearing</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch22/2.html" style="color:#b4b4e9;">Timbre</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch22/3.html">Sound Quality vs. Data Rate</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch22/4.html">High Fidelity Audio</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch22/5.html">Companding</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch22/6.html">Speech Synthesis and Recognition</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch22/7.html">Nonlinear Audio Processing</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch23.html">23: Image Formation & Display</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch23/1.html">Digital Image Structure</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch23/2.html" style="color:#b4b4e9;">Cameras and Eyes</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch23/3.html">Television Video Signals</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch23/4.html">Other Image Acquisition and Display</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch23/5.html">Brightness and Contrast Adjustments</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch23/6.html">Grayscale Transforms</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch23/7.html">Warping</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch24.html">24: Linear Image Processing</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch24/1.html">Convolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch24/2.html" style="color:#b4b4e9;">3x3 Edge Modification</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch24/3.html">Convolution by Separability</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch24/4.html">Example of a Large PSF: Illumination Flattening</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch24/5.html">Fourier Image Analysis</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch24/6.html">FFT Convolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch24/7.html">A Closer Look at Image Convolution</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch25.html">25: Special Imaging Techniques</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch25/1.html">Spatial Resolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch25/2.html" style="color:#b4b4e9;">Sample Spacing and Sampling Aperture</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch25/3.html">Signal-to-Noise Ratio</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch25/4.html">Morphological Image Processing</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch25/5.html">Computed Tomography</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch26.html">26: Neural Networks (and more!)</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch26/1.html">Target Detection</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch26/2.html" style="color:#b4b4e9;">Neural Network Architecture</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch26/3.html">Why Does it Work?</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch26/4.html">Training the Neural Network</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch26/5.html">Evaluating the Results</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch26/6.html">Recursive Filter Design</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch27.html">27: Data Compression</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch27/1.html">Data Compression Strategies</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch27/2.html" style="color:#b4b4e9;">Run-Length Encoding</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch27/3.html">Huffman Encoding</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch27/4.html">Delta Encoding</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch27/5.html">LZW Compression</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch27/6.html">JPEG (Transform Compression)</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch27/7.html">MPEG</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch28.html">28: Digital Signal Processors</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch28/1.html">How DSPs are Different from Other Microprocessors</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch28/2.html" style="color:#b4b4e9;">Circular Buffering</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch28/3.html">Architecture of the Digital Signal Processor</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch28/4.html">Fixed versus Floating Point</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch28/5.html">C versus Assembly</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch28/6.html">How Fast are DSPs?</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch28/7.html">The Digital Signal Processor Market</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch29.html">29: Getting Started with DSPs</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch29/1.html">The ADSP-2106x family</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch29/2.html" style="color:#b4b4e9;">The SHARC EZ-KIT Lite</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch29/3.html">Design Example: An FIR Audio Filter</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch29/4.html">Analog Measurements on a DSP System</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch29/5.html">Another Look at Fixed versus Floating Point</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch29/6.html">Advanced Software Tools</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch30.html">30: Complex Numbers</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch30/1.html">The Complex Number System</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch30/2.html" style="color:#b4b4e9;">Polar Notation</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch30/3.html">Using Complex Numbers by Substitution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch30/4.html">Complex Representation of Sinusoids</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch30/5.html">Complex Representation of Systems</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch30/6.html">Electrical Circuit Analysis</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch31.html">31: The Complex Fourier Transform</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch31/1.html">The Real DFT</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch31/2.html" style="color:#b4b4e9;">Mathematical Equivalence</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch31/3.html">The Complex DFT</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch31/4.html">The Family of Fourier Transforms</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch31/5.html">Why the Complex Fourier Transform is Used</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch32.html">32: The Laplace Transform</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch32/1.html">The Nature of the s-Domain</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch32/2.html" style="color:#b4b4e9;">Strategy of the Laplace Transform</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch32/3.html">Analysis of Electric Circuits</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch32/4.html">The Importance of Poles and Zeros</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch32/5.html">Filter Design in the s-Domain</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch33.html">33: The z-Transform</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch33/1.html">The Nature of the z-Domain</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch33/2.html" style="color:#b4b4e9;">Analysis of Recursive Systems</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch33/3.html">Cascade and Parallel Stages</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch33/4.html">Spectral Inversion</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch33/5.html">Gain Changes</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch33/6.html">Chebyshev-Butterworth Filter Design</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch33/7.html">The Best and Worst of DSP</a></li></ul></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34.html">34: Explaining Benford's Law</a><ul><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/1.html">Frank Benford's Discovery</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/2.html" style="color:#b4b4e9;">Homomorphic Processing</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/3.html">The Ones Scaling Test</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/4.html">Writing Benford's Law as a Convolution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/5.html">Solving in the Frequency Domain</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/6.html">Solving Mystery #1</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/7.html">Solving Mystery #2</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/8.html">More on Following Benford's law</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/9.html">Analysis of the Log-Normal Distribution</a></li><li style="border-top:1px solid #aeaeeb;"><a href="../ch34/10.html">The Power of Signal Processing</a></li></ul></li>
  88. </ul>
  89. </ul>
  90. </div>
  91.  
  92. <div class="box">
  93. <h2>How to order your own hardcover copy</h2>
  94. Wouldn't you rather have a bound book instead of 640 loose pages?<br />
  95. Your laser printer will thank you!<br />
  96. <b>Order from <a href="http://www.amazon.com/Scientist-Engineers-Digital-Signal-Processing/dp/0966017633/ref=pd_bxgy_b_img_a">Amazon.com</a>.</b>
  97. </div>
  98.  
  99.  
  100.  
  101. </div>
  102.  
  103. <!-- -->
  104. <div id="columnRight">
  105.  
  106. <div id="adbox">
  107.  
  108.  
  109. </div>
  110.  
  111. <div class="breadcrumbs"><a href="../ch6.html">Chapter 6 - Convolution</a> / Convolution</div><h2>Chapter 6: Convolution</h2><div class="subTitle">Convolution</div><p><div style="text-align: justify"><p>Let's summarize this way of understanding how a system changes an input
  112. signal into an output signal. First, the input signal can be decomposed into a set
  113. of impulses, each of which can be viewed as a scaled and shifted delta function.
  114. Second, the output resulting from each impulse is a scaled and shifted version
  115. of the impulse response. Third, the overall output signal can be found by
  116. adding these scaled and shifted impulse responses. In other words, if we know
  117. a system's impulse response, then we can calculate what the output will be for
  118. any possible input signal. This means we know <i>everything</i> about the system.
  119. There is nothing more that can be learned about a linear system's characteristics.
  120. (However, in later chapters we will show that this information can be
  121. represented in different forms). </p>
  122.  
  123. <p>The impulse response goes by a different name in some applications. If the
  124. system being considered is a <i>filter</i>, the impulse response is called the <span style="font-weight: bold">filter
  125. kernel</span>, the <span style="font-weight: bold">convolution kernel</span>, or simply, the <span style="font-weight: bold">kernel</span>. In image processing, the
  126. impulse response is called the <span style="font-weight: bold">point spread function</span>. While these terms are
  127. used in slightly different ways, they all mean the same thing, the signal
  128. produced by a system when the input is a delta function.</p>
  129.  
  130. <div style="text-align: center; margin: 20px;"><img src="../graphics/F_6_1.gif" border="0" alt=""></img></div>
  131.  
  132. <p>Convolution is a formal mathematical operation, just as multiplication,
  133. addition, and integration. Addition takes two <i>numbers</i> and produces a third
  134. <i>number</i>, while convolution takes two <i>signals</i> and produces a third <i>signal</i>.
  135. Convolution is used in the mathematics of many fields, such as probability and
  136. statistics. In linear systems, convolution is used to describe the relationship
  137. between three signals of interest: the input signal, the impulse response, and the
  138. output signal.</p>
  139.  
  140. <p>Figure 6-2 shows the notation when convolution is used with linear systems.
  141. An input signal, <i>x</i>[<i>n</i>], enters a linear system with an impulse response, <i>h</i>[<i>n</i>], resulting in an output signal, <i>y</i>[<i>n</i>]. In equation form: <i>x</i>[<i>n</i>] * <i>h</i>[<i>n</i>] = <i>y</i>[<i>n</i>].
  142. Expressed in words, the input signal convolved with the impulse response is
  143. equal to the output signal. Just as addition is represented by the plus, +, and
  144. multiplication by the cross, &times;, convolution is represented by the star, *. It is
  145. unfortunate that most programming languages also use the star to indicate
  146. multiplication. A star in a computer program means multiplication, while a star
  147. in an equation means convolution. </p>
  148.  
  149. <div style="text-align: center; margin: 20px;"><img src="../graphics/F_6_2.gif" border="0" alt=""></img></div>
  150.  
  151. <div style="text-align: center; margin: 20px;"><img src="../graphics/F_6_3.gif" border="0" alt=""></img></div>
  152.  
  153.  
  154. <p>Figure 6-3 shows convolution being used for low-pass and high-pass filtering.
  155. The example input signal is the sum of two components: three cycles of a sine
  156. wave (representing a high frequency), plus a slowly rising ramp (composed of
  157. low frequencies). In (a), the impulse response for the low-pass filter is a smooth
  158. arch, resulting in only the slowly changing ramp waveform being passed to the
  159. output. Similarly, the high-pass filter, (b), allows only the more rapidly
  160. changing sinusoid to pass. </p>
  161.  
  162. <p>Figure 6-4 illustrates two additional examples of how convolution is used to
  163. process signals. The inverting attenuator, (a), flips the signal top-for-bottom,
  164. and reduces its amplitude. The discrete derivative (also called the first
  165. difference), shown in (b), results in an output signal related to the <i>slope</i> of the
  166. input signal.</p>
  167.  
  168. <p>Notice the lengths of the signals in Figs. 6-3 and 6-4. The input signals are 81
  169. samples long, while each impulse response is composed of 31 samples. In most
  170. DSP applications, the input signal is hundreds, thousands, or even millions of
  171. samples in length. The impulse response is usually much shorter, say, a few
  172. points to a few hundred points. The mathematics behind convolution doesn't
  173. restrict how long these signals are. It does, however, specify the length of the
  174. output signal. The length of the output signal is</p>
  175.  
  176. <div style="text-align: center; margin: 20px;"><img src="../graphics/F_6_4.gif" border="0" alt=""></img></div>
  177.  
  178. <p>equal to the length of the input signal, plus the length of the impulse response,
  179. minus one. For the signals in Figs. 6-3 and 6-4, each output signal is: 81 + 31 - 1 = 111 samples long. The input signal runs from sample 0 to 80, the
  180. impulse response from sample 0 to 30, and the output signal from sample 0 to
  181. 110. </p>
  182.  
  183. <p>Now we come to the detailed mathematics of convolution. As used in Digital
  184. Signal Processing, convolution can be understood in two separate ways. The
  185. first looks at convolution from the <span style="font-weight: bold">viewpoint of the input signal</span>. This involves
  186. analyzing how each sample in the input signal <i>contributes</i> to many points in the
  187. output signal. The second way looks at convolution from the <span style="font-weight: bold">viewpoint of the
  188. output signal</span>. This examines how each sample in the output signal has <i>received</i>
  189. information from many points in the input signal.</p>
  190.  
  191. <p>Keep in mind that these two perspectives are different ways of thinking about
  192. the same mathematical operation. The first viewpoint is important because it
  193. provides a <i>conceptual</i> understanding of how convolution pertains to DSP. The
  194. second viewpoint describes the <i>mathematics</i> of convolution. </p>
  195. <p>This typifies one of the most difficult tasks you will encounter in DSP: making
  196. your conceptual understanding fit with the jumble of mathematics used to
  197. communicate the ideas.</p></div></p>Next Section: <a href="3.html">The Input Side Algorithm</a>
  198.  
  199. </div>
  200. <div class="clear"><!-- --></div>
  201.  
  202.  
  203. </div>
  204. </div>
  205.  
  206. <!-- Footer -->
  207.  
  208. <div id="footer">
  209. <a href="../index.html">Home</a> | <a href="../pdfbook.html">The Book by Chapters</a> | <a href="../about.html">About the Book</a> | <a href="../swsmith.html">Steven W. Smith</a> | <a href="http://www.dsprelated.com/blogs-1/nf/Steve_Smith.php">Blog</a> | <a href="../contact.html">Contact</a>
  210. <br />
  211. Copyright © 1997-2011 by California Technical Publishing
  212. </div>
  213.  
  214. <script type="text/javascript">
  215. var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  216. document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
  217. </script>
  218. <script type="text/javascript">
  219. try {
  220. var pageTracker = _gat._getTracker("UA-1774944-11");
  221. pageTracker._trackPageview();
  222. } catch(err) {}</script>
  223.  
  224. </body>
  225.  
  226. </html>
  227.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement