mirror of
https://github.com/c-sooyoung/fold_slice.git
synced 2026-09-17 22:49:08 +09:00
57 lines
1.7 KiB
Matlab
57 lines
1.7 KiB
Matlab
function w = tukeywin(n,r)
|
|
%TUKEYWIN Tukey window.
|
|
% TUKEYWIN(N) returns an N-point Tukey window in a column vector.
|
|
%
|
|
% W = TUKEYWIN(N,R) returns an N-point Tukey window in a column vector. A
|
|
% Tukey window is also known as the cosine-tapered window. The R
|
|
% parameter specifies the ratio of the length of taper section to the
|
|
% total length of the window. For a Tukey window, R is normalized to 1
|
|
% (i.e., 0 < R < 1). If omitted, R is set to 0.500.
|
|
%
|
|
% If R is outside the region of (0, 1), the Tukey window degenerates into
|
|
% other common windows. Thus when R = 1, it is equivalent to a Hanning
|
|
% window. Conversely, for R = 0 the Tukey window is equivalent to a
|
|
% boxcar window.
|
|
%
|
|
% EXAMPLE:
|
|
% N = 64;
|
|
% w = tukeywin(N,0.5);
|
|
% plot(w); title('64-point Tukey window, Ratio = 0.5');
|
|
%
|
|
% See also CHEBWIN, GAUSSWIN, KAISER, WINDOW.
|
|
|
|
% Reference:
|
|
% [1] fredric j. harris [sic], On the Use of Windows for Harmonic Analysis
|
|
% with the Discrete Fourier Transform, Proceedings of the IEEE,
|
|
% Vol. 66, No. 1, January 1978, Page 67, Equation 38.
|
|
|
|
% Author(s): A. Dowd
|
|
% Copyright 1988-2005 The MathWorks, Inc.
|
|
|
|
narginchk(1,2);
|
|
|
|
% Default value for R parameter.
|
|
if nargin < 2 || isempty(r)
|
|
r = 0.500;
|
|
end
|
|
|
|
[n,w,trivialwin] = check_order(n);
|
|
if trivialwin, return, end
|
|
|
|
if r <= 0
|
|
w = ones(n,1);
|
|
elseif r >= 1
|
|
w = hann(n);
|
|
else
|
|
t = linspace(0,1,n)';
|
|
% Defines period of the taper as 1/2 period of a sine wave.
|
|
per = r/2;
|
|
tl = floor(per*(n-1))+1;
|
|
th = n-tl+1;
|
|
% Window is defined in three sections: taper, constant, taper
|
|
w = [ ((1+cos(pi/per*(t(1:tl) - per)))/2); ones(th-tl-1,1); ((1+cos(pi/per*(t(th:end) - 1 + per)))/2)];
|
|
end
|
|
|
|
|
|
% [EOF]
|