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