diff m-toolbox/test/test_mfir_from_spec.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_mfir_from_spec.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,80 @@
+function test_mfir_from_spec()
+
+% TEST_MFIR_FROM_SPEC test script for mfir constructor from AO/fsdata.
+% 
+% M Hewitson 14-05-07
+% 
+% $Id: test_mfir_from_spec.m,v 1.4 2008/09/19 14:03:50 ingo Exp $
+% 
+
+Ntaps = 512;
+
+%% Make ao
+
+% pole zero model
+pzm = pzmodel(1, [pz(0.1, 2) pz(0.5, 40)] , [pz(.03) pz(1.55, 25)]);
+
+% Compute time-series
+Nsecs = 1e4; % Number of seconds desired
+swin  = specwin('Kaiser', 10, 150); % Blending window
+x12 = fngen(pzm, plist('Win', swin, 'Nsecs', Nsecs)); % create time-series
+
+
+%% Make spectrum
+
+pl = plist('Nfft', round(200*x12.data.fs));
+x12xx = pwelch(x12, pl);
+
+%% Make filter
+
+ffs = mfir(x12xx, plist('N', Ntaps, 'Win', specwin('Hamming', 10)));
+
+rfs = resp(ffs, plist('f', [x12xx.data.x].'));
+
+pl = plist('nsecs', Nsecs,'fs', x12.data.fs,'tsfcn', 'randn(size(t))');
+anoise = ao(pl);
+
+tic
+anew = filter(4*anoise, ffs);
+toc
+pl = plist('Nfft', round(200*x12.data.fs));
+anewxx = pwelch(anew, pl);
+
+%%
+iplot(x12xx, rfs, anewxx)
+
+iplot(x12xx./anewxx)
+utils.plottools.yscale('lin')
+
+%% Make inverse filter
+ffs = mfir(1./x12xx, plist('N', Ntaps, 'Win', specwin('Hamming', 10)));
+
+rfs = resp(ffs, plist('f', x12xx.data.x));
+iplot(rfs)
+
+x12wht = filter(x12, ffs);
+pl = plist('Nfft', round(200*x12.data.fs));
+x12whtxx = pwelch(x12wht, pl);
+
+iplot(x12whtxx)
+
+return
+
+%% Write an m-file from AO
+pth = get_curr_m_file_path(mfilename);
+ao2m(x12l, [pth, 'test.m']);
+
+% now run it
+clear all
+test
+
+figure
+
+plot(a1)
+figure
+plot(a1.hist)
+
+% END
+
+
+% END