Ryan,

See my comment, inline below:

> On May 9, 2023, at 11:19 AM, Tolboom, Ryan <ryan.tolb...@njit.edu> wrote:
> 
> Good Morning,
> 
> First of all thank you for taking the time to explain the process. I
> know it can be exhausting and I greatly appreciate it.
> 
> Secondly, I'd point out that the noncoherent_sequence_detection
> function is called before  (line 1330) the subtract_signal2 function
> (line 1430) in the pass loop. This means that on the last pass the
> idat and qdat which were modified by subtract_signal2 are not used
> anywhere (except if you have to write a C2 file).

No. Look again and consider that the “pass” loop contains the “candidate” loop; 
i.e. in each pass we first identify the signal candidates (signals which are 
likely to decode) and then in the candidate processing loop we step over the 
candidates from highest to lowest SNR and try to decode each candidate. 

The routines noncoherent_sequence_detection and subtract_signal2 are inside of 
the candidate loop. The candidate loop starts at line 1304 and the closing 
brace for the loop is at line 1478. 

After each decode, subtract_signal2 modifies [idat,qdat] when it subtracts the 
decoded signal. Then, unless there are no more candidates, execution proceeds 
back to the top of the candidate loop so that when processing the next 
candidate noncoherent_sequence_detection will use the modified [idat,qdat].

Steve k9an

> Again, apologies if I'm mistaken.
> 
> Ryan Tolboom N2BP
> 
> On Tue, May 9, 2023 at 12:08 PM robert evans LAST_NAME <n...@comcast.net> 
> wrote:
>> 
>> I used to code that signal processing in fortran
>> because of the complex data type matrix
>> 
>> I now code that in python for the same reason.
>> 
>> K9AN DE N2LO~>
>> 
>> 
>>> On 05/09/2023 10:10 AM Steven Franke via wsjt-devel 
>>> <wsjt-devel@lists.sourceforge.net> wrote:
>>> 
>>> 
>>> Hi Ryan,
>>> 
>>> On each pass signal candidates are sorted in order of decreasing 
>>> signal-to-noise ratio (SNR) and then wsprd sequentially attempts to decode 
>>> each candidate. If a decoding attempt is successful, then a reconstructed 
>>> version of the signal is subtracted from the data vector and the algorithm 
>>> moves on to try to decode the next candidate.
>>> 
>>> Even on the last pass, subtraction of high-SNR signal “A” may remove enough 
>>> interference from low-SNR signal “B” so as to render signal “B” decodable 
>>> when signal “B” would not have been decodable otherwise.
>>> 
>>> You stated that “The updated I/Q data isn’t used as the loop doesn’t 
>>> execute again.”. This isn’t true. On each pass the [idat,qdat] vector is 
>>> updated in subtract_signal2 after each successful decode and the updated 
>>> [idat,qdat] vector is then used to find the bit metrics for subsequent 
>>> candidates in routine noncoherent_sequence_detection.
>>> 
>>> 73 Steve k9an
>>> 
>>>> On May 8, 2023, at 7:05 PM, Tolboom, Ryan via wsjt-devel 
>>>> <wsjt-devel@lists.sourceforge.net> wrote:
>>>> 
>>>> Hello,
>>>> 
>>>> When wsprd runs multiple passes, it still calls subtract_signal2() as
>>>> well as get_wspr_channel_signals() on the last pass.
>>>> The updated I/Q data isn't used as the loop doesn't execute again.
>>>> 
>>>> When I modified wsprd.c to skip subtraction on the last pass I noticed
>>>> better timing numbers (since subtract_signal2() is called one less
>>>> time) and no detriment to my decodes.
>>>> This was my change on line 1430 of wsprd.c
>>>> 
>>>>   if( subtraction && !noprint && (ipass != (npasses - 1))) {
>>>> 
>>>> Please let me know if there's something I'm not thinking of.
>>>> 
>>>> 73,
>>>> 
>>>> Ryan Tolboom N2BP
>>>> 
>>>> 
>>>> _______________________________________________
>>>> wsjt-devel mailing list
>>>> wsjt-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/wsjt-devel
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> wsjt-devel mailing list
>>> wsjt-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/wsjt-devel



_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to