sim_in.Tcp = 0.002;
sim_in.Rs = 1/Ts; sim_in.bps = 2; sim_in.Nc = 16; sim_in.Ns = 8;
- sim_in.Nsec = Ntests*(sim_in.Ns+1)/sim_in.Rs;
+ sim_in.Nsec = (Ntests+1)*(sim_in.Ns+1)/sim_in.Rs;
sim_in.EbNodB = EbNodB;
sim_in.verbose = 0;
sim_in.ldpc_en = 0;
[sim_out rx states] = run_sim(sim_in);
-
- states.verbose = 0;
+
+ states.verbose = 2;
% set up acquistion
en = 2.5*Nsamperframe - 1;
ct_target = Nsamperframe/2;
- for w=1:Nsamperframe:length(rx)-3*Nsamperframe
+ for w=1:Nsamperframe:length(rx)-4*Nsamperframe
%st = w+0.5*Nsamperframe; en = st+2*Nsamperframe-1;
%[ct_est foff_est] = coarse_sync(states, rx(st:en), rate_fs_pilot_samples);
[ct_est foff_est] = coarse_sync(states, rx(w+st:w+en), rate_fs_pilot_samples);
%run_single
%run_curves
%run_curves_estimators
-acquisition_histograms(0, 0)
-%acquisition_test(10, 4, 5)
+%acquisition_histograms(0, 0)
+acquisition_test(10, -3, 5)
Ncorr = length(rx) - (Nsamperframe+Npsam) + 1;
assert(Ncorr > 0);
corr1 = corr2 = zeros(1,Ncorr);
+ av_level = Npsam*sqrt(rx*rx')/Ncorr + 1E-12;
for i=1:Ncorr
- corr1(i) = rx(i:i+Npsam-1) * rate_fs_pilot_samples';
- corr2(i) += rx(i+Nsamperframe:i+Nsamperframe+Npsam-1) * rate_fs_pilot_samples';
+ rx1 = rx(i:i+Npsam-1); rx2 = rx(i+Nsamperframe:i+Nsamperframe+Npsam-1);
+ corr1(i) = rx1 * rate_fs_pilot_samples';
+ corr2(i) = rx2 * rate_fs_pilot_samples';
end
- corr = abs(corr1) + abs(corr2);
+ corr = (abs(corr1) + abs(corr2))/av_level;
[mx t_est] = max(corr);
+ printf(" max: %f t_est: %d\n", mx, t_est);
#{
% original freq offset est code that never made it into C. Have some concerns about CPU
%printf("t_est: %d\n", t_est);
figure(7); clf;
plot(abs(corr))
+ axis([1 Ncorr 0 2])
#{
figure(8)
plot(C)
% update timing estimate --------------------------------------------------
- delta_t = 0;
+ delta_t = coarse_foff_est_hz = 0;
if timing_en
% update timing at start of every frame