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

Reply via email to