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

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents f7fb679637ff
children
rev   line source
samer@10 1 % fsignal - Class for functional discrete time signals
samer@10 2 %
samer@10 3 % fsignal ::
samer@10 4 % R:nonneg ~'sampling rate',
samer@10 5 % C:natural ~'number of channels',
samer@10 6 % natural ~'signal length'
samer@10 7 % -> fsignal(C,R).
samer@10 8 classdef fsignal
samer@10 9 properties (GetAccess=private, SetAccess=immutable)
samer@10 10 rate_
samer@10 11 channels_
samer@10 12 length_
samer@10 13 end
samer@10 14
samer@10 15 methods (Abstract)
samer@10 16 X=data(a)
samer@10 17 s=tostring(a)
samer@10 18 y=extract(a,dim,range)
samer@10 19 end
samer@10 20
samer@10 21 methods (Sealed)
samer@10 22 function a=fsignal(rate,ch,length)
samer@10 23 a.rate_=rate;
samer@10 24 a.channels_=ch;
samer@10 25 a.length_=length;
samer@10 26 end
samer@10 27
samer@10 28 function l=length(a), l=a.length_; end
samer@10 29 function c=channels(a), c=a.channels_; end
samer@10 30 function r=rate(a), r=a.rate_; end
samer@10 31
samer@10 32 function varargout=size(a,n),
samer@10 33 z=[a.channels,a.length];
samer@10 34 if nargin==1
samer@10 35 if nargout<=1, varargout={z};
samer@10 36 else varargout=num2cell(z);
samer@10 37 end
samer@10 38 else
samer@10 39 varargout{1}=z(n);
samer@10 40 end
samer@10 41 end
samer@10 42
samer@10 43 function display(a)
samer@10 44 fprintf(' %s :: fsignal(%d,%g)\n',tostring(a),a.channels,a.rate);
samer@10 45 end
samer@10 46
samer@10 47 function y=eval(a,t)
samer@10 48 range=[min(t),max(t)];
samer@10 49 y=extract(a,2,range);
samer@10 50 y=y(:,t-(range(1)-1));
samer@10 51 end
samer@10 52 end
samer@10 53 end