annotate signals/@sigmap/sigmap.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 sigmap < signal
|
samer@1
|
2 properties (GetAccess=private, SetAccess=immutable)
|
samer@1
|
3 fun
|
samer@1
|
4 sig
|
samer@1
|
5 chans
|
samer@1
|
6 end
|
samer@1
|
7 methods
|
samer@1
|
8 function s=sigmap(f,sig,chf)
|
samer@1
|
9 if nargin<3, chf=@(c1)size(f(zeros(c1,1)),1); end
|
samer@1
|
10 s.fun=f;
|
samer@1
|
11 s.sig=sig;
|
samer@1
|
12 s.chans=chf(channels(sig));
|
samer@1
|
13 end
|
samer@1
|
14
|
samer@1
|
15 function s=tostring(sig)
|
samer@1
|
16 s=sprintf('map(%s,%s)',tostring(sig.fun),tostring(sig.sig));
|
samer@1
|
17 end
|
samer@1
|
18
|
samer@1
|
19 function c=rate(s), c=rate(s.sig); end
|
samer@1
|
20 function c=channels(s), c=s.chans; end
|
samer@1
|
21
|
samer@1
|
22 function s=construct(sig)
|
samer@1
|
23 f=sig.fun;
|
samer@1
|
24 s1=construct(sig.sig);
|
samer@1
|
25 s.start = s1.start;
|
samer@1
|
26 s.stop = s1.stop;
|
samer@1
|
27 s.dispose = s1.dispose;
|
samer@1
|
28 s.reader = @reader;
|
samer@1
|
29
|
samer@1
|
30 function r=reader(n)
|
samer@1
|
31 r1=s1.reader(n);
|
samer@1
|
32 r =@next;
|
samer@1
|
33 function [x,rem]=next
|
samer@1
|
34 [x1,rem]=r1();
|
samer@1
|
35 x=f(x1);
|
samer@1
|
36 end
|
samer@1
|
37 end
|
samer@1
|
38 end
|
samer@1
|
39 end
|
samer@1
|
40 end
|