More reporting
This commit is contained in:
@@ -201,6 +201,37 @@ static void check_sinusoid_shifted(int n, int rate, float freq, float shift,
|
|||||||
|
|
||||||
int reportedDelay = shifter.getStartDelay();
|
int reportedDelay = shifter.getStartDelay();
|
||||||
|
|
||||||
|
int lastCrossing = -1;
|
||||||
|
int nCrossings = 0;
|
||||||
|
int accWavelength = 0;
|
||||||
|
int minWavelength = 0;
|
||||||
|
int maxWavelength = 0;
|
||||||
|
for (int i = reportedDelay; i < endpoint; ++i) {
|
||||||
|
if (out[i-1] < 0.f && out[i] >= 0.f) {
|
||||||
|
if (lastCrossing >= 0) {
|
||||||
|
int wavelength = i - lastCrossing;
|
||||||
|
accWavelength += wavelength;
|
||||||
|
if (minWavelength == 0 || wavelength < minWavelength) {
|
||||||
|
minWavelength = wavelength;
|
||||||
|
}
|
||||||
|
if (maxWavelength == 0 || wavelength > maxWavelength) {
|
||||||
|
maxWavelength = wavelength;
|
||||||
|
}
|
||||||
|
cerr << wavelength << " ";
|
||||||
|
nCrossings ++;
|
||||||
|
}
|
||||||
|
lastCrossing = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cerr << endl;
|
||||||
|
|
||||||
|
int avgWavelength = 1;
|
||||||
|
if (nCrossings > 0) {
|
||||||
|
avgWavelength = accWavelength / nCrossings;
|
||||||
|
}
|
||||||
|
double detectedFreq = double(rate) / double(avgWavelength);
|
||||||
|
cerr << "nCrossings = " << nCrossings << ", minWavelength = " << minWavelength << ", maxWavelength = " << maxWavelength << ", avgWavelength = " << avgWavelength << ", detectedFreq = " << detectedFreq << " (expected " << freq * shift << ")" << endl;
|
||||||
|
|
||||||
int slackpart = 2048;
|
int slackpart = 2048;
|
||||||
int delay = reportedDelay + slackpart;
|
int delay = reportedDelay + slackpart;
|
||||||
|
|
||||||
@@ -208,6 +239,7 @@ static void check_sinusoid_shifted(int n, int rate, float freq, float shift,
|
|||||||
|
|
||||||
for (int i = delay; i < endpoint; ++i) {
|
for (int i = delay; i < endpoint; ++i) {
|
||||||
if (out[i] < 0.f && out[i+1] >= 0.f) {
|
if (out[i] < 0.f && out[i+1] >= 0.f) {
|
||||||
|
cerr << "zc: at " << i << " we have " << out[i] << ", " << out[i+1] << endl;
|
||||||
delay = i+1;
|
delay = i+1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user