diff arrows/dsp/aspectrum.m @ 0:672052bd81f8

Initial partial import.
author samer
date Wed, 19 Dec 2012 22:38:28 +0000
parents
children beb8a3f4a345
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/arrows/dsp/aspectrum.m	Wed Dec 19 22:38:28 2012 +0000
@@ -0,0 +1,19 @@
+% aspectrum - frequency spectrum arrow
+%
+% aspectrum ::
+%    N:natural   ~'size of waveform blocks to expect'
+%    options {
+%       specfn :: ([[N,T]]->[[dftbins(N),T]])/ @powspec ~'function to compute spectra';
+%       window :: (N:natural->[[N]])         / @hanning ~'function to compute window'
+%    }
+% -> arrow({[[N,T]]},{[[dftbins(N),T]]},empty).
+
+function o=aspectrum(N,varargin)
+	opts=prefs('specfn',@powspec,'window',@hanning,varargin{:});
+	specfn=opts.specfn;
+	w=spdiag(opts.window(N));
+	o=arr(@fn);
+	function y=fn(x)
+		y=specfn(w*x);
+	end
+end