function F = Filter2D(N_cut,filter_order)

% 

Globals2D;

filterdiag = ones(N_p,1);
alpha_filter = -log(eps);

temp = 1;
for i = 0:N
    for j = 0:(N - i)
        if (i + j >= N_cut)
            filterdiag(temp) = exp(-alpha_filter * ((i + j - N_cut) / (N - N_cut)) ^ filter_order);
        end
    temp = temp + 1;
    end
end

F = V*diag(filterdiag)*invV;

return;