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