samer@32: function a=spectraldata(source,specfn,windowfn) samer@32: % SPECTRALDATA - Spectral data from buffered frames samer@32: % samer@32: % spectraldata :: ( samer@32: % source: seq[n,l], ~ source data samer@32: % specfn: [n,l]->[m,l], ~ compute spectrum from frames samer@32: % windowfn: (n:natural->[n]) ~ function to compute window, eg hanning samer@32: % ) -> seq[m,l] samer@32: samer@32: H=spdiag(feval(windowfn,size(source,1))); samer@32: a=map(@(x)specfn(H*x),source); samer@32: %a=fnseq(fn,source,'charfn',@charfn); samer@32: samer@32: % function s=charfn(o) samer@32: % s=sprintf('%s >> %s/%s',char(source(o)),tostring(specfn),tostring(windowfn)); samer@32: % end samer@32: end samer@32: