Mercurial > hg > ltpda
diff m-toolbox/test/test_noisegen_vpa.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_noisegen_vpa.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,61 @@ +function test_noisegen_vpa() + +% TEST_NOISEGEN tests the Franklin noise-generator algorithm. +% +% this is an example from 'Generation of Random time series with prescribed +% spectra' by Gerhard Heinzel +% +% $Id: test_noisegen_vpa.m,v 1.2 2008/09/19 14:03:50 ingo Exp $% + + + +%% poles and zeros +p1 = pz(1); +p2 = pz(10,2); +p3 = pz(1,4); + +z1 = pz(5); +z2 = pz(50); +% z2 = pz(3); +gain =1; +%% convert to get a and b coefficients +%pole zero model +pzm = pzmodel(gain, [p1 p2 p3],[z1 z2]); +% parameter list for ltpda_noisegen +pl = plist(); +pl = append(pl, param('nsecs', 7200)); +pl = append(pl, param('fs', 100)); +pl = append(pl, param('pzmodel', pzm)); +pl = append(pl, param('ndigits', 30)); +%% calling the noisegenerator +% [b, pl1, pl2] = ltpda_noisegen(pl); +tic +[b, pl1, pl2] = ao.ngsetup_vpa(pl); +pl +b = set(b, 't0', '2007-07-19 12:00:00'); +toc +tic +[b2, pl3, pl4] = ltpda_noisegen_vpa(pl1,pl2); +b2 = set(b2, 't0', '2007-07-19 14:00:00'); +toc +%% Make LPSD +% Window function +w = specwin('Kaiser', 10, 150); +% parameter list for lpsd +pl = plist(); +pl = append(pl, param('Kdes', 100)); +pl = append(pl, param('Kmin', 2)); +pl = append(pl, param('Jdes', 200)); +pl = append(pl, param('Win', w)); +pl = append(pl, param('scale','ASD')); +% LPSD +alpsd = ltpda_lpsd(b, pl); % matlab +a_vpa = ltpda_lpsd(b2, pl); % matlab + +% a2lpsd = ltpda_lpsd(b2, pl); +% % +%% Plot +iplot([b b2]) +iplot([alpsd a_vpa abs(resp(pzm))]) + +