Excellent Alan !

right, like I thought , tx_uw always zeros , and rx_uw goes to zero because input level falls.

OK David, I am sure you had other ideas in mind for tx_uw ?

that is it has been initialized to zero and never set..

Can you please fix this up? it is like you got a phone call while you were writing this bit..

(I am assuming this is your code- if not, will the person writing please pipe up ?

cheers

glen



On 16/07/2020 8:26 am, Al Beard wrote:
*Hi Glen,*
*Here we have the end of  ve9qrp_700d.wav well I pressed ^C.*
*
*
*BTW: squelch is turned off  freedv_set_squelch_en(f2, 0);*
*
*
*state: Rx Sync               peak:   1823 sync: 1  SNR: 14.6  triggered: 1 recordany: 0 rxDataCnt 1890 ncodec 14*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000  <- puzzled why no rx_uw bits here.*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*state: Rx Sync               peak:    129 sync: 1  SNR: 13.8  triggered: 1 recordany: 0 rxDataCnt 1988 ncodec 14*
*SYN: 2 6 1 0 ; tx_uw 0000000000 rx_uw ; 1101100110*
*SYN: 2 5 1 1 ; tx_uw 0000000000 rx_uw ; 0101010101    <- sync should drop here.*
*SYN: 2 1 1 2 ; tx_uw 0000000000 rx_uw ; 0010000000*
*SYN: 2 2 1 0 ; tx_uw 0000000000 rx_uw ; 0110000000*
*SYN: 2 1 1 0 ; tx_uw 0000000000 rx_uw ; 0010000000*
*SYN: 2 2 1 0 ; tx_uw 0000000000 rx_uw ; 0000100010*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*state: Rx Sync               peak:    128 sync: 1  SNR: 1.9  triggered: 1 recordany: 0 rxDataCnt 1988 ncodec 14*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 2 1 0 ; tx_uw 0000000000 rx_uw ; 0001010000*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*
*SYN: 2 1 1 0 ; tx_uw 0000000000 rx_uw ; 0000000100*
*SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000*

A few seconds later I whistle:
*
*
*
state: Rx Sync               peak:    130  sync: 1 SNR: 4.2  triggered: 1 recordany: 0 rxDataCnt 1988 ncodec 14
SYN: 2 1 1 0 ; tx_uw 0000000000 rx_uw ; 0100000000
SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000
SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000
SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000
SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000
SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000
SYN: 2 1 1 0 ; tx_uw 0000000000 rx_uw ; 0000000010
state: Rx Sync               peak:    123  sync: 1 SNR: 2.2  triggered: 1 recordany: 0 rxDataCnt 1988 ncodec 14
SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000
SYN: 2 0 1 0 ; tx_uw 0000000000 rx_uw ; 0000000000  <-  whistle starts
SYN: 2 5 1 0 ; tx_uw 0000000000 rx_uw ; 0110011001
SYN: 2 4 1 1 ; tx_uw 0000000000 rx_uw ; 0011001100
SYN: 2 7 1 2 ; tx_uw 0000000000 rx_uw ; 1101011011
SYN: 2 7 1 3 ; tx_uw 0000000000 rx_uw ; 0101011111
SYN: 2 6 1 4 ; tx_uw 0000000000 rx_uw ; 1011110100
state: Rx Sync               peak:    499  sync: 1 SNR: -6.5  triggered: 1 recordany: 0 rxDataCnt 1988 ncodec 14
SYN: 2 7 1 5 ; tx_uw 0000000000 rx_uw ; 1011110101
SYN: 2 5 1 6 ; tx_uw 0000000000 rx_uw ; 0010111010
state: Rx Maybe UnSync       peak:    254  sync: 0 SNR: -8.8  triggered: 1 recordany: 0 rxDataCnt 1988 ncodec 0

*
*Alan VK2ZIW*
*
*
*On Wed, 15 Jul 2020 22:45:24 +1000, glen english wrote*
> well, looks OK, looks like it is worked as expected. but...
> It's like the demod freezes. and freezes and doesnt update the UW buffer......
> and     rx_uw[i]  is not being updated.
> HMM but
> LINE 1495:
> ofdm->uw_errors+= ofdm->tx_uw[i] ^ rx_uw[i];
> ERRR AHH  ofdm->tx_uw[i]  IS set to zero (line 242....) and never updated in that file.
>
> and I cannot find it being updated anywhere else ?
>
> so is it waiting until rx_uw is all zeros, also? maybe , maybe not. and it waits until rx_uw is non zero ( a whistle) , because the input level is low (squelched ????) and rx_uw is zero filled.) ? > can you pls inspect ofdm->tx_uw[i] and rx_uw[i] ? they are ofdm->nuwbits in length of type uint8.
> you might need to add after the print that you added :
> for(i = 0; i < ofdm->nuwbits; i++) {
> printf("%0u",(unsigned int) ofdm->tx_uw[i]);
> }
> printf("\r\n");
> for(i = 0; i < ofdm->nuwbits; i++) {
> printf("%0u",(unsigned int) ofdm->rx_uw[i]);
> }
> printf("\r\n");
>
> AND OR
>
>  the amplitude is super low and the UW word buffer is not getting flushed with the new noisy frames because the demod goes unlocked.
>
> Do you have plenty of noise going into the demod when the signals disappear ? what happens if you crank up the level by 10x ?
> NOW.....
>
> (I dont know the demod very well, yet - learning little pieces a bit at a time)
>
> The UW being 0 in the period following the
>
>
> *state: Rx Sync               peak:    106  sync: 1 SNR: 1.2  triggered: 1 recordany: 0 rxDataCnt 1414 ncodec 14*
> *SYN: 2 0 1 0 *
> *SYN: 2 2 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 1 1 0
> *
>
> On 7/15/2020 9:09 PM, Al Beard wrote:
>

> *Hi Glen,*
> *
> *
> *Done as asked... SYN: sync_state, uw_errors, sync_mode, sync_counter*
> *
> *
>
> *SYN: 2 0 1 0                    good solid reception of ve9qrp_700d.wav* > *state: Rx Sync               peak:   1901  sync: 1 SNR: 15.7  triggered: 1 recordany: 0 rxDataCnt 1218 ncodec 14*
> *SYN: 2 0 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 0 1 0 *
> *  RX txtMsg: cq cq cq hello world*
> *  Tx triggered!*
> *SYN: 2 0 1 0 *
>
>
> *
> *
> *......*
> *
> *
>
> *SYN: 2 0 1 0 *
> *SYN: 2 2 1 0                   reception of ve9qrp_700d.wav is over, *
> *SYN: 2 1 1 0 *
> *state: Rx Sync               peak:    106  sync: 1  SNR: 1.2  triggered: 1 recordany: 0 rxDataCnt 1414 ncodec 14*
> *SYN: 2 0 1 0 *
> *SYN: 2 2 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 0 1 0 *
> *SYN: 2 1 1 0 *
> *SYN: 2 4 1 0                   here I whistle into the mic*
> *state: Rx Sync               peak:    748  sync: 1  SNR: 3.5  triggered: 1 recordany: 0 rxDataCnt 1428 ncodec 14*
> *SYN: 2 2 1 1 *
> *SYN: 2 1 1 0 *
> *SYN: 2 8 1 0 *
> *SYN: 2 5 1 1 *
> *SYN: 2 6 1 2 *
> *SYN: 2 6 1 3 *
> *SYN: 2 3 1 4 *
> *state: Rx Sync               peak:    821  sync: 1  SNR: -4.6  triggered: 1 recordany: 0 rxDataCnt 1428 ncodec 14*
> *SYN: 2 6 1 5 *
> *SYN: 2 3 1 6 *
> *state: Rx Maybe UnSync       peak:    110  sync: 0  SNR: -8.4  triggered: 1 recordany: 0 rxDataCnt 1428 ncodec 0*
>
> No more SYN: n n n n messages.
>
>
> *Over to you...*
> *
> *
> *Alan VK2ZIW*
> *
> *
> *
> * *On Wed, 15 Jul 2020 19:43:37 +1000, glen english wrote*
> > Alan, please be sure to keep correct subject line.
> > Right. ofdm.c
> > voidofdm_sync_state_machine(structOFDM *ofdm, uint8_t*rx_uw)
> >  there are two synced states, synced (ongoing) and trial sync (when sync is getting established for the first time- checking if this is real sync or bogus sync due to frquency offset aliasing)
> >
> > the difference in bits between the unique word template  and the actual received unique word is checked
> > (lines 1494..1496)
> >
> > When synced (ongoing)  if the unique_word (uw_errors) error count  is > 2 (IE more than 2 bits different from the template, ofdm->sync_counter is incremented. > > when ofdm->sync_counter is >6 AND ofdm->sync_mode== autosync (line 1540) , sync will be dropped. > > So, since you can compile from source, I'd like you to insert some extra debug printfs or whatever and above line 1533,
> > IE immediately before
> > if(ofdm->sync_state== synced) {
> > please print out : (just use %u style, that's fine, do a explicit cast to unsigned int for each variable in case they are chars )
> > ofdm->sync_state
> > ofdm->uw_errors
> > ofdm->sync_mode
> > ofdm->sync_counter
> > IE
> > printf("SYN: %u %u %u %u \r\n",(unsigned int) ofdm->sync_state, etc etc
> >
> > just the integer values will be fine, we can look up the numbers.
> > So the sync state machine could do with some refinement, could be error easily programmer error prone . I will put that on my to-do list to re write .
> >
> > On 7/15/2020 8:02 AM, Al Beard wrote:
> >
Hi Glen and David,
> >
> > In my testing of "parrot" derived from "freebeacon", mode 700D,
> > I'm "seeing" sync holding up when it shouldn't.
> >
> > I'm running relatively low input levels, similar to what
> >
> >

>
> ---------------------------------------------------
> Alan VK2ZIW
>
> OpenWebMail 2.53, nothing in the cloud.
>
>
>

>
_______________________________________________
Freetel-codec2 mailing
list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

--

Glen
English
RF Communications and Electronics
Engineer

CORTEX
RF

Pacific Media Technologies Pty Ltd trading as Cortex
RF

ABN 40 075 532
008

PO Box 5231 Lyneham ACT 2602,
Australia.
au mobile : +61 (0)418 975077




---------------------------------------------------
Alan VK2ZIW

OpenWebMail 2.53, nothing in the cloud.



_______________________________________________
Freetel-codec2 mailing list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

--
Glen English
RF Communications and Electronics Engineer

CORTEX RF
&
Pacific Media Technologies Pty Ltd

ABN 40 075 532 008

PO Box 5231 Lyneham ACT 2602, Australia.
au mobile : +61 (0)418 975077




_______________________________________________
Freetel-codec2 mailing list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to