function [fk fk_ders] = fourier_kernel_win(frqs, N,fs, win, win_der)
R = size(frqs,2);
t = [- (N - 1) / 2:(N - 1) / 2]' / fs;
win_mat     = repmat(win,     [1,R]);
win_der_mat = repmat(win_der, [1,R]);
t_mat = repmat(t, [1, R]);
frq_mat = repmat(frqs, [N, 1]);
krnls = exp(1j .* t_mat .* frq_mat);
fk = win_mat .* krnls;
fk_ders = (1j *  win_mat  .* frq_mat + win_der_mat) .* krnls;
end