makes mistakes when used continuously. So we use it until we have
acquired the BPSK pilot, then switch to a more robust "fine"
tracking algorithm. If we lose sync we switch back to coarse mode
- for fast-requisition of large frequency offsets.
+ for fast re-acquisition of large frequency offsets.
\*---------------------------------------------------------------------------*/
}
}
+
+ /* update filter memory */
+
+ for(i=-(FDMDV_OS_TAPS/FDMDV_OS); i<0; i++)
+ in8k[i] = in8k[i + n];
+
}
/*---------------------------------------------------------------------------*\
for(j=0; j<FDMDV_OS_TAPS; j++)
out8k[i] += fdmdv_os_filter[j]*in48k[i*FDMDV_OS-j];
}
+
+ /* update filter memory */
+
+ for(i=-FDMDV_OS_TAPS; i<0; i++)
+ in48k[i] = in48k[i + n*FDMDV_OS];
}
/*---------------------------------------------------------------------------*\
in8k[MEM8+i] = 16000.0*cos(TWO_PI*t*freq/FS);
#endif
- /* upsample and update filter memory */
+ /* upsample */
fdmdv_8_to_48(out48k, &in8k[MEM8], N8);
+ /*
for(i=0; i<MEM8; i++)
in8k[i] = in8k[i+N8];
+ */
/* save 48k to disk for plotting and check out */
for(i=0; i<N48; i++,t1++)
in48k[i+FDMDV_OS_TAPS] = out48k[i] + 16000.0*cos(TWO_PI*t1*1E4/FS);
- /* downsample and update filter memory */
+ /* downsample */
fdmdv_48_to_8(out8k, &in48k[FDMDV_OS_TAPS], N8);
+ /*
for(i=0; i<FDMDV_OS_TAPS; i++)
in48k[i] = in48k[i+N48];
+ */
/* save 8k to disk for plotting and check out */