Mercurial > hg > ltpda
diff m-toolbox/test/test_specwin_nenbw_definition.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_specwin_nenbw_definition.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,72 @@ +% Test specwin/specwin normalized equivalent noise bandwidth definition. +% +% M Hueller 06-03-09 +% +% $Id: test_specwin_nenbw_definition.m,v 1.1 2009/03/06 09:26:28 mauro Exp $ +% +win_names = {'Rectangular', ... + 'Welch', ... + 'Bartlett', ... + 'Hanning', ... + 'Hamming', ... + 'Nuttall3', ... + 'Nuttall4', ... + 'Nuttall3a', ... + 'Nuttall3b', ... + 'Nuttall4a', ... + 'Nuttall4b', ... + 'Nuttall4c', ... + 'BH92', ... + 'SFT3F', ... + 'SFT3M', ... + 'FTNI', ... + 'SFT4F', ... + 'SFT5F', ... + 'SFT4M', ... + 'FTHP', ... + 'HFT70', ... + 'FTSRS', ... + 'SFT5M', ... + 'HFT90D', ... + 'HFT95', ... + 'HFT116D', ... + 'HFT144D', ... + 'HFT169D', ... + 'HFT196D', ... + 'HFT223D', ... + 'HFT248D'}; + +% Different parameters for the Kaiser window family +psll = [50:50:300]; +% Lenght of the window +npts = 100; + +N = length(win_names); +M = length(psll); +def_dif = zeros(N+M,1); + +% All windows but Kaiser +for jj = 1:N + w = specwin(win_names{jj},npts); + % Definition from the specwin constructor (included in a helper dedicated + % to each window) + d1 = w.nenbw; + % Definition from the "theory" + d2 = w.ws2/(w.ws)^2/fs*length(w.win); + % Relative difference + def_dif(jj) = (d1-d2)/mean([d1,d2]); + disp([win_names{jj} ' ' num2str(def_dif(jj))]); +end + +% Kaiser windows +for jj = N+1:N+M + w = specwin('Kaiser',psll(jj-N),npts); + % Definition from the specwin constructor (included in a helper dedicated + % to each window) + d1 = w.nenbw; + % Definition from the "theory" + d2 = w.ws2/(w.ws)^2/fs*length(w.win); + % Relative difference + def_dif(jj) = (d1-d2)/mean([d1,d2]); + disp(['Kaiser' num2str(psll(jj-N)) ' ' num2str(def_dif(jj))]); +end \ No newline at end of file