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).

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