For a bridged tap length calculation (I wrote that code before to figure out my tap - gave 77m, so seems to be good enough):
tones is the number of tones between troughs and dips are the number of troughs across the measurement (2 if you measure two adjacent troughs)
lengths = new double[16,5] { { 100, 231.9, 463.8, 695.7, 927.5},
{ 150, 154.6, 309.2, 463.8, 618.4},
{ 200, 115.9, 231.9, 347.8, 463.8},
{ 250, 92.8, 185.5, 278.3, 371.0},
{ 300, 77.3, 154.6, 231.9, 309.2},
{ 350, 66.3, 132.5, 198.8, 265.0},
{ 400, 58.0, 115.9, 173.9, 231.9},
{ 450, 51.5, 103.1, 154.6, 206.1},
{ 500, 46.4, 92.8, 139.1, 185.5},
{ 550, 42.2, 84.3, 126.5, 168.6},
{ 600, 38.6, 77.3, 115.9, 154.6},
{ 650, 35.7, 71.3, 107.0, 142.7},
{ 700, 33.1, 66.3, 99.4, 132.5},
{ 750, 30.9, 61.8, 92.8, 123.7},
{ 800, 29.0, 58.0, 87.0, 115.9},
{ 850, 27.3, 54.6, 81.8, 109.1}
};
private double TonesToLength(int tones, int dips)
{
if (tones > 850 && dips>2)
{
tones = tones / (dips - 1);
dips = 2;
}
double ret=0.0;
int i = 0;
while (lengths[i, 0] < tones)
{
i++;
}
//assume each is straight
if (i == 0)
ret = 300.0;
else
{
if (dips ==1)
{
ret = 0.0;
}
else
{
dips = dips - 1;
double aboveprev = tones - lengths[i - 1, 0];
double betweenTones = lengths[i , 0] - lengths[i - 1, 0];
ret = lengths[i - 1, dips] + (lengths[i, dips] - lengths[i - 1, dips]) * (aboveprev / betweenTones);
}
}
return ret;
}
being dragged to the shops - but I'll stick in the figures when I'm back and could tell what length a tap would need to be to cause that periodicity.
Edit: kids weren't ready... if it's a bridged tap, it's about 92m long (254 tone period)