diff m-toolbox/test/test_sweptsine.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/test/test_sweptsine.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,106 @@
+clear all;
+
+%% Make some test data
+
+amps = [1 2 3 4 5 6 7];
+freqs = [0.005 0.05 0.1 0.2 0.3 0.4 0.5 0.7];
+nsecs = [400 200 100 100 100 100 100 100];
+gaps  = [50 50 150 50 50 50 50 50];
+toffs(1) = gaps(1);
+for kk=2:numel(nsecs)
+  toffs(kk) = sum(gaps(1:kk)) + sum(nsecs(1:kk-1));
+end
+
+sigs = ao(plist('waveform', 'sine wave', ...
+  'nsecs', nsecs, ...
+  'fs', 10, ...
+  'A', amps, ...
+  'f', freqs, ...
+  'toff', toffs, 'yunits', 'V'))
+
+sigs.zeropad(plist('N', 1000))
+sigs = sigs + ao(plist('tsfcn', '10*randn(size(t))', 'fs', 10, 'nsecs', sigs.nsecs));
+sigs.setName;
+% sigs.iplot
+
+%% filter the data
+pzm = pzmodel(1, {[0.05 2]}, {[0.5 2]});
+pzm.setIunits('V');
+pzm.setOunits('m');
+f = miir(pzm, plist('fs', 10));
+r = f.resp(plist('f', logspace(-3,log10(5), 1000)));
+% iplot(r)
+
+out = filter(sigs, f) + ...
+  ao(plist('tsfcn', '1*randn(size(t))', 'fs', 10, 'nsecs', sigs.nsecs));
+out.setName;
+iplot(sigs, out)
+
+%% Create the start times
+startTimes = time;
+t0 = sigs.t0;
+for ii=1:numel(toffs) 
+  startTimes(ii) = t0 + toffs(ii);
+end
+startTimes
+
+%% Swept-sine measurement
+
+
+pl = plist('start times', startTimes, ...
+            'durations', nsecs, ...
+            'input', sigs, 'frequencies', freqs);
+          
+t1 = quasiSweptSine(out, pl)          
+
+
+t1.dy ./ abs(t1.y)
+
+%% Plot abs/phase
+
+ppl = plist('markers', {'', 'o'}, 'linestyles', {'', 'none'},...
+  'yranges', {[1e-3,1e2], [-180,180]})
+iplot(r, t1, ppl)
+
+%% Plot real/imag
+
+ppl = plist('markers', {'', 'o'}, 'linestyles', {'', 'none'},...
+  'YERRL', {[], t1.y-t1.dy}, ...
+  'COMPLEXPLOTTYPE', 'realimag', 'xscales', {'all', 'log'}, ...
+  'yscales', {'lin', 'lin'})
+iplot(r, t1, ppl)
+
+%% Plot abs/rad
+
+ppl = plist('markers', {'', 'o'}, 'linestyles', {'', 'none'},...
+  'YERRL', {[], t1.y-t1.dy}, ...
+  'COMPLEXPLOTTYPE', 'absrad', 'xscales', {'all', 'log'}, ...
+  'yscales', {'lin', 'lin'})
+iplot(r, t1, ppl)
+
+%% Measure tf with ltfe
+
+Te = ltfe(sigs, out);
+
+iplot(Te)
+
+Te = tfe(sigs, out, plist('navs', 100));
+
+iplot(Te)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+