annotate signals/@sigfun/sigfun.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents 289445d368a7
children
rev   line source
samer@1 1 classdef sigfun < signal
samer@1 2 properties (GetAccess=private, SetAccess=immutable)
samer@1 3 fun
samer@1 4 fs
samer@1 5 end
samer@1 6 methods
samer@1 7 function s=sigfun(fun,rate)
samer@1 8 s.fun=fun;
samer@1 9 s.fs=rate;
samer@1 10 end
samer@1 11
samer@1 12 function s=tostring(sig), s=sprintf('sigfun(%s)',tostring(sig.fun)); end
samer@1 13 function c=channels(s), c=size(s.fun(0),1); end
samer@1 14 function c=rate(s), c=s.fs; end
samer@1 15
samer@1 16 function s=construct(sig)
samer@1 17 fun=sig.fun;
samer@1 18 t=0;
samer@1 19
samer@1 20 s.start = @nop;
samer@1 21 s.stop = @nop;
samer@1 22 s.dispose = @nop;
samer@1 23 s.reader = @reader;
samer@1 24
samer@1 25 function r=reader(n)
samer@1 26 r = @next;
samer@1 27 T=(0:n-1)/sig.fs;
samer@1 28 dt=n/sig.fs;
samer@1 29 function [x,rem]=next,
samer@1 30 x=fun(t+T); rem=0;
samer@1 31 t=t+dt;
samer@1 32 end
samer@1 33 end
samer@1 34 end
samer@1 35 end
samer@1 36 end