9-3 Convolution (������)

¹ï©ó¥ô·Nªº°T¸¹ x[n]¡A§Ú­Ì¥i¥H±N¨äªí¥Ü¦¨¬°³æ¦ì¯ß½Ä°T¸¹¡]Unit Impulse Signal¡^ªº²Õ¦X¡A¦p¤U¡G

x[n] = Sk=0¡Ûx[k]d[n-k]
¤W­z¦¡¤l¥i¥H¬Ý¦¨¬O¡uk ¥Nªí®É¶¡¡Ax[k] ©T©w¤£°Ê¡Ad[n-k] ÀH¤£¦Pªº n ¦Ó²¾°Ê¡v¡C ¦P²z¡A¤W¦¡¤]¥i¥H¼g¦¨¡G
x[n] = Sk=0¡Ûx[n-k]d[k]
¦¹®É¥i¥H¬Ý¦¨¬O¡uk ¥Nªí®É¶¡¡Ad[k] ©T©w¤£°Ê¡Ax[n-k] ÀH¤£¦Pªº n ¦Ó²¾°Ê¡v¡C

¦]¦¹¹ï©ó¤@­Ó LTI ¨t²Î L{¡E}¡A·í¨ä¿é¤J¬° x[n] ®É¡A¨ä¿é¥X¬° y[n]¡A¥i¥Î¤U¦CÃö«Y¦¡¨Ó´y­z¡G
y[n]=L{x[n]}
=L{Sk=0¡Ûx[k]d[n-k]}
=Sk=0¡Ûx[k]L{d[n-k]}
=Sk=0¡Ûx[k]h[n-k]
¨ä¤¤ h(n-k)=L{d(n-k)} ¬O¨t²Î¹ï©ó¦ì©ó n=k ªº³æ¦ì¯ß½Ä°T¸¹©Ò²£¥ÍªºÅTÀ³¡]Response¡^¡C´«¥y¸Ü»¡¡A¤@­Ó LTI ¨t²Îªº¿é¥X¡A§¹¥þ¥i¥H¥Ñ¿é¤J°T¸¹ x[n] ©M¨t²Îªº¯ß½ÄÅTÀ³¡]Impulse Response¡^ h[n] ¨Ó¨M©w¡C´«¥y¸Ü»¡¡A¤@­Ó LTI ¨t²Îªº¯ß½ÄÅTÀ³´N¨M©w¤F³o­Ó¨t²Îªº¥þ³¡¯S©Ê¡I

¤W­z¤½¦¡¡A¥i¥Î¤U¦C¥Ü·N¹Ï¨Ó»¡©ú¡G

Example 1: convolution01.m% Plot the operation of convolution n = -7:7; x = [0 0 0 0 0 0 0 1 2 3 0 0 0 0 0]; subplot(4,2,7); stem(n, x); limit=[min(n), max(n), 0, 5]; axis(limit); title('Input x[n]'); subplot(4,2,1); x0=0*x; x0(8)=x(8); stem(n, x0); axis(limit); h=text(0, x0(8), 'x[0]'); set(h, 'horiz', 'center', 'vertical', 'bottom'); subplot(4,2,2); y0=0*x; index=find(x0); for i=index:length(n) y0(i)=x0(index)*exp(-(i-index)/2); end stem(n, y0); axis(limit); h=text(0, x0(8), 'x[0]*h[n-0]'); set(h, 'vertical', 'bottom'); subplot(4,2,3); x1=0*x; x1(9)=x(9); stem(n, x1); axis(limit); h=text(1, x1(9), 'x[1]'); set(h, 'horiz', 'center', 'vertical', 'bottom'); subplot(4,2,4); y1=0*x; index=find(x1); for i=index:length(n) y1(i)=x1(index)*exp(-(i-index)/2); end stem(n, y1); axis(limit); h=text(1, x1(9), 'x[1]*h[n-1]'); set(h, 'vertical', 'bottom'); subplot(4,2,5); x2=0*x; x2(10)=x(10); stem(n, x2); axis(limit); h=text(2, x2(10), 'x[2]'); set(h, 'horiz', 'center', 'vertical', 'bottom'); subplot(4,2,6); y2=0*x; index=find(x2); for i=index:length(n) y2(i)=x2(index)*exp(-(i-index)/2); end stem(n, y2); axis(limit); h=text(2, x2(10), 'x[2]*h[n-2]'); set(h, 'vertical', 'bottom'); subplot(4,2,8); stem(n, y0+y1+y2); axis(limit); title('Output y[n] = x[0]*h[n-0] + x[1]*h[n-1] + x[2]*h[n-2]');

¦pªG±Ä¥Î¥»¸`ªº²Ä¤G­Ó¤èµ{¦¡¡A«h y[n] ¥i¥Hªí¥Ü¦¨
y[n]=L{x[n]}
=L{Sk=0¡Ûx[n-k]d[k]}
=Sk=0¡Ûx[n-k]L{d[k]}
=Sk=0¡Ûx[n-k]h[k]}

¥Ñ©ó¤W­zªº¹Bºâ±`³Q¥Î¨ì¡A¦]¦¹§Ú­Ì±N¤§©w¸q¦¨¡u±Û¿n¡v¡]Convolution¡^¡G y[n] = x[n]*h[n] = Sk=0¡Ûx[k]h[n-k]} = Sk=0¡Ûx[n-k]h[k]}
±Û¿n¹Bºâ¨ã¦³¤U¦C¯S©Ê¡G

  1. ¥æ´««ß¡G x[n]*y[n] = y[n]*x[n]
  2. µ²¦X«ß¡G (x[n]*y[n])*z[n] = x[n]*(y[n]*z[n])
  3. ¤À°t«ß¡G x[n]*(y[n]+z[n]) = x[n]*y[n]+x[n]*z[n]
  4. ©µ¿ð©Ê½è¡G y[n]=x[n]*h[n] ¡÷ y[n-n1-n2]=x[n-n1]*h[n-n2]

Audio Signal Processing and Recognition (­µ°T³B²z»P¿ëÃÑ)