0001 function w = get_window(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010 PSLL = [];
0011
0012
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
0025 if isempty(PSLL)
0026
0027 z = [0:N-1]./N;
0028 eval(sprintf('w = win_%s(z);', name));
0029
0030 else
0031
0032
0033 w = get_kaiser_window(N, PSLL);
0034
0035 end
0036
0037
0038
0039
0040 function w = get_kaiser_window(N, psll)
0041
0042
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
0052
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