wconv.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:1k
源码类别:

波变换

开发平台:

Matlab

  1. function y = wconv(type,x,f,shape)
  2. %WCONV  1-D or 2-D Convolution.
  3. %   Y = WCONV(TYPE,X,F) performs the 1-D or 2-D
  4. %   convolution of X and F.
  5. %
  6. %   Y = WCONV(TYPE,X,F) with TYPE = {1,'1','1d' or '1D'}
  7. %   and if X and F are vectors, performs the 1-D 
  8. %   convolution of X and F.
  9. %    
  10. %   Y = WCONV(TYPE,X,F) with TYPE = {2,'2','2d' or '2D'}
  11. %   and if X and F are matrices, performs the 2-D 
  12. %   convolution of X and F.
  13. %
  14. %   Y = WCONV('r',X,F) or Y = WCONV('row',X,F)
  15. %   if X is a matrix and F a vector, performs 
  16. %   the 1-D convolution of the rows of X and F.
  17. %
  18. %   Y = WCONV('c',X,F) or Y = WCONV('col',X,F)
  19. %   if X is a matrix and F a vector, performs 
  20. %   the 1-D convolution of the columns of X and F.
  21. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 15-Nov-97.
  22. %   Last Revision: 19-May-2003.
  23. %   Copyright 1995-2004 The MathWorks, Inc.
  24. %   $Revision: 1.9.4.2 $  $Date: 2004/03/15 22:42:30 $
  25. if nargin<4
  26.     shape = 'full';
  27. end
  28. switch type
  29.     case {1,'1','1d','1D'}
  30.         y = conv2(x(:)',f(:)',shape); 
  31.         if size(x,1)>1
  32.             y = y';
  33.         end
  34.     case {2,'2','2d','2D'}
  35.         y = conv2(x,f,shape); 
  36.     case {'r','row'}
  37.         y = conv2(x,f(:)',shape); 
  38.     case {'c','col'}
  39.         y = conv2(x',f(:)',shape); 
  40.         y = y';
  41. end