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

波变换

开发平台:

Matlab

  1. function [sx,sy] = dw1dcoor(x,y,axe,in4)
  2. %DW1DCOOR Discrete wavelet 1-D coordinates.
  3. %   Write function used by DYNVTOOL.
  4. %   [SX,SY] = DW1DCOOR(X,Y,AXE,IN4)
  5. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  6. %   Last Revision: 22-May-2003.
  7. %   Copyright 1995-2004 The MathWorks, Inc.
  8. %   $Revision: 1.12.4.2 $
  9. % in4 = [coefs_axes  level_anal]
  10. % or
  11. % in4 = [coefs_axes -level_anal]
  12. %-------------------------------
  13. indic = 'energy';
  14. sx = ['X = ' , wstrcoor(x,5,7)];
  15. fig_DW1D   = in4(1);
  16. coefs_axes = in4(2:end-1);
  17. level_anal = in4(end);
  18. signe      = sign(level_anal);
  19. if find(axe==coefs_axes)
  20.     if signe>0 
  21.         z = round(level_anal-y+1);
  22.     else
  23.         z = round(y);
  24.     end
  25.     if (1<=z) && (z<=abs(level_anal))
  26.         switch indic
  27.         case 'energy'
  28.             % MemBloc2 of stored values.
  29.             %---------------------------
  30.             n_coefs_longs = 'Coefs_and_Longs';
  31.             ind_coefs     = 1;
  32.             ind_longs     = 2;
  33.             nb2_stored    = 2;
  34.             fig           = get(axe,'Parent');
  35.             [coefs,longs] = wmemtool('rmb',fig_DW1D,n_coefs_longs,ind_coefs,ind_longs);
  36.             [Ea,Ed] = wenergy(coefs,longs);                                 
  37.             sy = sprintf('E = %2.2f %%',Ed(z));
  38.             %-----------------------------------------------------
  39.         case 'level' , 
  40.             sy = sprintf('Level = %0.2g',z);
  41.         end
  42.     else
  43.         sy = [];
  44.     end
  45. else
  46.     sy = ['Y = ' , wstrcoor(y,5,7)];
  47. end