Mercurial > hg > ishara
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 |