Mercurial > hg > ltpda
diff m-toolbox/test/test_ao_fngen.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_ao_fngen.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,39 @@ +% Tests the fngen method of the AO class. +% +% M Hewitson 18-04-08 +% +% $Id: test_ao_fngen.m,v 1.3 2008/09/19 14:03:50 ingo Exp $ +% + +clear + +fs = 12; +nsecs = 1e3; + +% Make a sine-wave +s = ao(plist('tsfcn', 'randn(size(t)) + sin(2*pi*1e-1*t)', 'fs', fs, 'nsecs', nsecs)); + +% Add noise and signal +pl = plist('type', 'highpass', ... + 'order', 1, ... + 'gain', 2.0, ... + 'fs', 10, ... + 'fc', 0.2); +a = filter(s, miir(pl)); + +% Compute target PSD +Nfft = fs*100; +axx = pwelch(a, plist('Nfft', Nfft, 'Scale', 'PSD', 'win', specwin('Hanning', 10))); + +% Compute new time-series +Nsecs = 1e4; % Number of seconds to produce +swin = specwin('Kaiser', 10, 150); % Window for blending +b = fngen(axx, plist('Win', swin, 'Nsecs', Nsecs)); + + +%% Output from noise generator +iplot(b) + +sxx = pwelch(a,b, plist('Nfft', 100*fs, 'Scale', 'AS')); +% iplot(sxx(1)./sxx(2), plist('YScales', {'All', 'lin'})) +iplot(sxx)