mirror of
https://github.com/xdsopl/robot36.git
synced 2025-12-06 07:12:07 +01:00
omit transition in the sum
This commit is contained in:
parent
af06ae6fdc
commit
6f3cea00b2
|
|
@ -33,6 +33,7 @@ public class Decoder {
|
||||||
private final int scanLineToleranceSamples;
|
private final int scanLineToleranceSamples;
|
||||||
private final int leaderToneSamples;
|
private final int leaderToneSamples;
|
||||||
private final int leaderBreakSamples;
|
private final int leaderBreakSamples;
|
||||||
|
private final int transitionSamples;
|
||||||
private final int visCodeBitSamples;
|
private final int visCodeBitSamples;
|
||||||
private final int visCodeSamples;
|
private final int visCodeSamples;
|
||||||
private final Mode rawMode;
|
private final Mode rawMode;
|
||||||
|
|
@ -62,6 +63,8 @@ public class Decoder {
|
||||||
leaderToneSamples = (int) Math.round(leaderToneSeconds * sampleRate);
|
leaderToneSamples = (int) Math.round(leaderToneSeconds * sampleRate);
|
||||||
double leaderBreakSeconds = 0.01;
|
double leaderBreakSeconds = 0.01;
|
||||||
leaderBreakSamples = (int) Math.round(leaderBreakSeconds * sampleRate);
|
leaderBreakSamples = (int) Math.round(leaderBreakSeconds * sampleRate);
|
||||||
|
double transitionSeconds = 0.0005;
|
||||||
|
transitionSamples = (int) Math.round(transitionSeconds * sampleRate);
|
||||||
double visCodeBitSeconds = 0.03;
|
double visCodeBitSeconds = 0.03;
|
||||||
visCodeBitSamples = (int) Math.round(visCodeBitSeconds * sampleRate);
|
visCodeBitSamples = (int) Math.round(visCodeBitSeconds * sampleRate);
|
||||||
double visCodeSeconds = 0.3;
|
double visCodeSeconds = 0.3;
|
||||||
|
|
@ -203,17 +206,17 @@ public class Decoder {
|
||||||
if (preBreakFreq < 1850 || preBreakFreq > 1950)
|
if (preBreakFreq < 1850 || preBreakFreq > 1950)
|
||||||
return false;
|
return false;
|
||||||
float postBreakFreq = 0;
|
float postBreakFreq = 0;
|
||||||
for (int i = 0; i < leaderToneSamples; ++i)
|
for (int i = transitionSamples; i < leaderToneSamples - transitionSamples; ++i)
|
||||||
postBreakFreq += scanLineBuffer[syncPulseIndex + i];
|
postBreakFreq += scanLineBuffer[syncPulseIndex + i];
|
||||||
postBreakFreq = postBreakFreq * halfBandWidth / leaderToneSamples + centerFreq;
|
postBreakFreq = postBreakFreq * halfBandWidth / (leaderToneSamples - 2 * transitionSamples) + centerFreq;
|
||||||
if (postBreakFreq < 1850 || postBreakFreq > 1950)
|
if (postBreakFreq < 1850 || postBreakFreq > 1950)
|
||||||
return false;
|
return false;
|
||||||
Arrays.fill(visCodeBitFreqs, 0);
|
Arrays.fill(visCodeBitFreqs, 0);
|
||||||
for (int j = 0; j < 10; ++j)
|
for (int j = 0; j < 10; ++j)
|
||||||
for (int i = 0; i < visCodeBitSamples; ++i)
|
for (int i = transitionSamples; i < visCodeBitSamples - transitionSamples; ++i)
|
||||||
visCodeBitFreqs[j] += scanLineBuffer[syncPulseIndex + leaderToneSamples + visCodeBitSamples * j + i];
|
visCodeBitFreqs[j] += scanLineBuffer[syncPulseIndex + leaderToneSamples + visCodeBitSamples * j + i];
|
||||||
for (int i = 0; i < 10; ++i)
|
for (int i = 0; i < 10; ++i)
|
||||||
visCodeBitFreqs[i] = visCodeBitFreqs[i] * halfBandWidth / visCodeBitSamples + centerFreq;
|
visCodeBitFreqs[i] = visCodeBitFreqs[i] * halfBandWidth / (visCodeBitSamples - 2 * transitionSamples) + centerFreq;
|
||||||
if (visCodeBitFreqs[0] < 1150 || visCodeBitFreqs[0] > 1250 || visCodeBitFreqs[9] < 1150 || visCodeBitFreqs[9] > 1250)
|
if (visCodeBitFreqs[0] < 1150 || visCodeBitFreqs[0] > 1250 || visCodeBitFreqs[9] < 1150 || visCodeBitFreqs[9] > 1250)
|
||||||
return false;
|
return false;
|
||||||
for (int i = 1; i < 9; ++i)
|
for (int i = 1; i < 9; ++i)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue