samer@1
|
1 function s=resamplex(fs,sigs,varargin)
|
samer@37
|
2 opts=options(varargin{:});
|
samer@1
|
3 [s1,sx]=feval(rsx1(sigs{1},sigs(2:end)));
|
samer@1
|
4 s=siglzcat(s1,sx);
|
samer@1
|
5
|
samer@1
|
6 function f=rsx1(h,t), f=@()rsx3({h},rate(h),t); end
|
samer@1
|
7 function [s1,sx]=rsx3(heads,fh,tails)
|
samer@1
|
8 if ~isempty(tails) && rate(tails{1})==fh
|
samer@1
|
9 [s1,sx]=rsx3([heads,tails(1)],fh,tails(2:end));
|
samer@1
|
10 else
|
samer@1
|
11 s1=resample(fs,sigcat(heads{:}),opts);
|
samer@1
|
12 if isempty(tails), sx=[];
|
samer@1
|
13 else sx=rsx1(tails{1},tails(2:end));
|
samer@1
|
14 end
|
samer@1
|
15 end
|
samer@1
|
16 end
|
samer@1
|
17 end
|
samer@1
|
18
|
samer@1
|
19 function s=resamplex1(fs,signals)
|
samer@1
|
20 s=rsx1(signals);
|
samer@1
|
21
|
samer@1
|
22 function s=rsx1(signals)
|
samer@1
|
23 s=rsx3(signals(1),rate(signals{1}),signals(2:end));
|
samer@1
|
24 end
|
samer@1
|
25
|
samer@1
|
26 function s=rsx3(heads,fh,tails)
|
samer@1
|
27 if ~isempty(tails) && rate(tails{1})==fh
|
samer@1
|
28 s=rsx3([heads,tails(1)],fh,tails(2:end));
|
samer@1
|
29 else
|
samer@1
|
30 headsig=resample(fs,sigcat(heads{:}),opts);
|
samer@1
|
31 if isempty(tails), s=headsig;
|
samer@1
|
32 else s=siglzcat(headsig, @()deal(rsx1(tails),[]));
|
samer@1
|
33 end
|
samer@1
|
34 end
|
samer@1
|
35 end
|
samer@1
|
36 end
|
samer@1
|
37
|