Home > classes > @specwin > private > get_window.m

get_window

PURPOSE ^

GET_WINDOW returns the required window function as a structure.

SYNOPSIS ^

function w = get_window(varargin)

DESCRIPTION ^

 GET_WINDOW returns the required window function as a structure.
 
 M Hewitson 18-05-07
 
 $Id: get_window.m,v 1.3 2007/05/30 05:19:55 hewitson Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function w = get_window(varargin)
0002 
0003 % GET_WINDOW returns the required window function as a structure.
0004 %
0005 % M Hewitson 18-05-07
0006 %
0007 % $Id: get_window.m,v 1.3 2007/05/30 05:19:55 hewitson Exp $
0008 %
0009 
0010 PSLL = [];
0011 
0012 % Get inputs
0013 if nargin == 2
0014   name = varargin{1};
0015   N    = varargin{2};  
0016 elseif nargin == 3
0017   name = varargin{1};
0018   N    = varargin{2};
0019   PSLL = varargin{3};
0020 else
0021   error('### Incorrect inputs.');
0022 end
0023 
0024 % Get window
0025 if isempty(PSLL)
0026   % get standard window
0027   z = [0:N-1]./N;  
0028   eval(sprintf('w = win_%s(z);', name));
0029   
0030 else
0031   
0032   % Deal with Kaiser
0033   w = get_kaiser_window(N, PSLL);
0034   
0035 end
0036 
0037 %--------------------------------------------------------------------------
0038 % Make Kaiser window
0039 %
0040 function w = get_kaiser_window(N, psll)
0041 
0042 % Make window struct
0043 w.name     = 'Kaiser';
0044 w.alpha    = kaiser_alpha(psll);
0045 w.psll     = psll;
0046 w.rov      = kaiser_rov(w.alpha);
0047 w.nenbw    = kaiser_nenbw(w.alpha);
0048 w.w3db     = kaiser_w3db(w.alpha);
0049 w.flatness = kaiser_flatness(w.alpha);
0050 
0051 % Compute window samples
0052 % - here we adjust to make the window asymmetric
0053 v = kaiser(N+1, pi*w.alpha);
0054 v = v(1:end-1);
0055 w.ws       = sum(v);
0056 w.ws2      = sum(v.*v);
0057 w.win      = v.';
0058 
0059 
0060 % END

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003