-
Notifications
You must be signed in to change notification settings - Fork 8
/
tukeywin.m
38 lines (29 loc) · 1.07 KB
/
tukeywin.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
% =========================================================================
% =========================================================================
%
% Author:
% Mattia Rossi (rossi.mattia@gmail.com)
% Signal Processing Laboratory 4 (LTS4)
% Ecole Polytechnique Federale de Lausanne (Switzerland)
%
% =========================================================================
% =========================================================================
function W = tukeywin(N, alpha)
% TUKEYWIN builds a 1D Tukey window.
%
% INPUT:
% N - the window length.
% alpha - the window parameter.
%
% OUTPUT:
% W - the window.
% =========================================================================
n = 0:1:(N-1);
W = zeros(N, 1);
mask = (n < ceil(alpha * (N-1) / 2));
W(mask) = (1/2) * ( 1 + cos( pi * ( ( (2 * n(mask)) / (alpha * (N-1)) ) - 1 ) ) );
mask = (n >= ceil(alpha * (N-1) / 2)) & (n <= floor((N-1) * (1 - (alpha/2))));
W(mask) = 1;
mask = (n > floor((N-1) * (1 - (alpha/2))));
W(mask) = (1/2) * ( 1 + cos( pi * ( ( (2 * n(mask)) / (alpha * (N-1)) ) - (2/alpha) + 1 ) ) );
end