mirror of
https://github.com/xdsopl/robot36.git
synced 2026-01-27 18:04:14 +01:00
estimate frequency offset using leader tone
This commit is contained in:
parent
6f3cea00b2
commit
0a506406f8
|
|
@ -208,13 +208,14 @@ public class Decoder {
|
|||
float postBreakFreq = 0;
|
||||
for (int i = transitionSamples; i < leaderToneSamples - transitionSamples; ++i)
|
||||
postBreakFreq += scanLineBuffer[syncPulseIndex + i];
|
||||
float freqOffset = postBreakFreq / (leaderToneSamples - 2 * transitionSamples);
|
||||
postBreakFreq = postBreakFreq * halfBandWidth / (leaderToneSamples - 2 * transitionSamples) + centerFreq;
|
||||
if (postBreakFreq < 1850 || postBreakFreq > 1950)
|
||||
return false;
|
||||
Arrays.fill(visCodeBitFreqs, 0);
|
||||
for (int j = 0; j < 10; ++j)
|
||||
for (int i = transitionSamples; i < visCodeBitSamples - transitionSamples; ++i)
|
||||
visCodeBitFreqs[j] += scanLineBuffer[syncPulseIndex + leaderToneSamples + visCodeBitSamples * j + i];
|
||||
visCodeBitFreqs[j] += scanLineBuffer[syncPulseIndex + leaderToneSamples + visCodeBitSamples * j + i] - freqOffset;
|
||||
for (int i = 0; i < 10; ++i)
|
||||
visCodeBitFreqs[i] = visCodeBitFreqs[i] * halfBandWidth / (visCodeBitSamples - 2 * transitionSamples) + centerFreq;
|
||||
if (visCodeBitFreqs[0] < 1150 || visCodeBitFreqs[0] > 1250 || visCodeBitFreqs[9] < 1150 || visCodeBitFreqs[9] > 1250)
|
||||
|
|
|
|||
Loading…
Reference in a new issue