### 5.23.20 Tukey window function : tukey_window

tukey_window takes as arguments a real vector v of length n and optionally a real number α∈[0,1] (by default α=0.5 ) and/or an interval n1 .. n2 (with default values n1=0 and n2=n−1 ), and returns the elementwise product of the vector [vn1,…,vn2] and the vector w of length N=n2−n1+1 defined by

wk= |
⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ |
1
2
|  | ⎛ ⎜ ⎜ ⎝ | 1+cos | ⎛ ⎜ ⎜ ⎝ | π | ⎛ ⎜ ⎜ ⎝ |
k
β
| −1 | ⎞ ⎟ ⎟ ⎠ | ⎞ ⎟ ⎟ ⎠ | ⎞ ⎟ ⎟ ⎠ | ,
| k<β,
1, |
β≤ k≤(N−1) | ⎛ ⎜ ⎜ ⎝ | 1− |
α
2
| ⎞ ⎟ ⎟ ⎠ | ,
1
2
|  | ⎛ ⎜ ⎜ ⎝ | 1+cos | ⎛ ⎜ ⎜ ⎝ | π | ⎛ ⎜ ⎜ ⎝ |
k
β
| − |
2
α
| +1 | ⎞ ⎟ ⎟ ⎠ | ⎞ ⎟ ⎟ ⎠ | ⎞ ⎟ ⎟ ⎠ | ,
| otherwise,

where β=α (N−1)/2 , for k=0,1,…,N−1 . When α=0 the rectangular window function (on-off windowing) is obtained, and the case α=1 corresponds to the Hann window function. For example, input :

L:=tukey_window(randvector(1000,0..1),0.4):;

followed by scatterplot(L).