tomwalters@0: % method of class @frame tomwalters@0: % tomwalters@0: % INPUT VALUES: tomwalters@0: % tomwalters@0: % RETURN VALUE: tomwalters@0: % tomwalters@0: % tomwalters@0: % (c) 2003, University of Cambridge, Medical Research Council tomwalters@0: % Stefan Bleeck (stefan@bleeck.de) tomwalters@0: % http://www.mrc-cbu.cam.ac.uk/cnbh/aimmanual tomwalters@0: % $Date: 2003/03/13 14:48:22 $ tomwalters@0: % $Revision: 1.6 $ tomwalters@0: tomwalters@0: function nap=logcompress(nap,options) tomwalters@0: tomwalters@0: %if nargin <2 tomwalters@0: % options.dynamic_range=50; tomwalters@0: %end tomwalters@0: tomwalters@0: nap=halfwayrectify(nap); tomwalters@0: vals=getvalues(nap); tomwalters@0: tomwalters@0: %gtfb output values are: 0< gt_vals <1 tomwalters@0: %therefore we will scale for 16bit values tomwalters@0: %operationally only 15 bits are used as we tomwalters@0: %half wave rectify tomwalters@0: vals=vals.*2.^15; tomwalters@0: tomwalters@0: %avoid log problems by making everything > 1 tomwalters@0: vals(find(vals<1))=1; tomwalters@0: vals=20.*log10(vals); tomwalters@0: tomwalters@0: tomwalters@0: nap=setvalues(nap,vals); tomwalters@0: