This is exactly what I was missing! Thanks for explaining it. Have a great day,
Ryan N2BP On Tue, May 9, 2023, 1:57 PM Steven Franke <s.j.fra...@icloud.com> wrote: > 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