Good Evening, I'm looking at lib/fst4_decode.f90, specifically the code where it calculates the frequency in the channel gain function, *g*, at which it reaches a certain percentage of the signal power. This can be found on line 999 of lib/fst4_decode.f90 <https://sourceforge.net/p/wsjt/wsjtx/ci/master/tree/lib/fst4_decode.f90#l999> .
To prevent zero Doppler Spreads it uses a linear interpolation to get a floating point "index" between bins of the FFT. It does this by setting xi1 (and xi2, xi3 in a similar fashion) to the current index minus one plus the difference between the current power (sum2) and the power we're looking for (sum2 * 0.25, for xi1) divided by the difference between the current power (sum2) and the previous power (sum2z): xi1=i - 1 + (sum2-0.25*sum1)/(sum2-sum2z) If I'm interpreting this correctly this will not yield a correct result. Let me give you an example: For simplicity, assume we have four bins with powers 1, 2, 9, 2, and 1 respectively. Assume the bins are enumerated from zero. [image: image.png] The total power would be 15 and 25% of that would be 3.75. As we look for that 25% mark, we'd find it in the do loop when i hits 2, sum2 is 12, and sum2z is 3. xi1 would then be set to: xi1 = 2 - 1 + (12 - 3.75)/(12 - 3) = 1 + 8.25/9 = 1.92 In other words, 92% of the way to bin 1 from bin 2. Shouldn't this be the other way around? Shouldn't it be 92% of the way working backwards from bin 2 to bin 1 or 8% of the way from bin 1 to bin 2? It seems like 3.25 is only slightly larger than 3 and significantly less than 12. i believe the overshoot correction should be the difference between the power we're looking for and the previous power divided by the difference between the current power and the previous power: xi1 = i - 1 + (0.25 * sum1) - sum2z)/(sum2 - sum2z) Which in this case would yield: xi1 = 2 - 1 + (3.75 - 3)/(12 - 3) = 1 + 0.75/9 = 1.08 Please let me know if I'm missing something and thanks for your time, -Ryan Tolboom N2BP
_______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel