Files
matlab/ofdm/cfo_coarse_int.m
T
jens 652fbde455 - moved
git-svn-id: http://moon:8086/svn/matlab/trunk@29 801c6759-fa7c-4059-a304-17956f83a07c
2015-04-19 18:32:47 +00:00

31 lines
599 B
Matlab

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