function [omega_coarse, Xm] = fdet_coarse(x, N, Ng, omega_min, omega_step, omega_max) Xm = zeros(N,1); if 0 K = fix((length(x))/(N+Ng)); for k=1:K, xp = x((k-1)*(N+Ng)+1:k*(N+Ng)); Xm = 0.5*Xm + fft(xp(Ng+1:N+Ng), N); end Nmax = ceil(omega_max*N)+1 [v, ii] = max(abs(Xm(1:Nmax))) omega_coarse = (ii-1)/N; else omega_range = (omega_min:omega_step:omega_max); for k=1:lge(omega_range) x_est = exp(-j*(2*pi*omega_range(k)*(0:N-1)' + 0)); dmod(k) = sum(x(1:N).*x_est); end; [v maxk] = max(abs(dmod)); omega_coarse = omega_range(maxk); end