Topics

Noiseblanker in kiwirecorder as a pre-processor to reduce local fence noise before wd writes the wav-files


ON5KQ
 

Rob, this is a question for the code-expert...:

Sometimes I have some fence pulse noise on one of my antennas.
I found out, that when listening on this antenna with the kiwi, I can completely erase the noise, when switching on the kiwi noise blanker in standard mode.
I believe that the wav-files written by wsprdaemon do no process the audio information before it is written in memory for later decoding. It means that kiwirecorder do NOT use the noiseblanker normally, when writing the WAV files.

Now I found there are many options, which can be set for the kiwirecorder.
One can find the options in the wsprdaemon/kiwiclient directory by doing:

$ python3 kiwirecorder.py --help

This calls a list of all available options for the kiwirecorder. In this list of available options we can find for example:

--nb         Enable noise blanker with default parameters

This is exactly I was looking for...
Now my question:
- Can I use this option somehow as a parameter setting in the wsprdaemon.conf file, to activate the noise blanker as an pre-processor for Wsprdaemon ?
- How would I do it ? What is the syntax, I would need to use, to activate the noise blanker by an additional line in Wsprdaemon.conf...

I am thinking about something similar, as you once showed how to change the parameters for 'wsprd'  decoding engine...
Could you post an example, what exactly I would need to add in wsprdaemon.conf ?

If this is not possible in the conf - file, is there a different method how to activate the noise blanker for some tests ?

Many thanks for some help....

Ulli, ON5KQ


Rob Robinett
 

Hi Ulli,

Make sure you are running v2.10i:

pi@Pi-2-KJ6MKI:~/wsprdaemon $ git pull
Already up to date.
pi@Pi-2-KJ6MKI:~/wsprdaemon


It will be interesting to learn the results of your experiment.  Before making changes, save a copy of the unmodified wsprdaemon.sh, e.g.

pi@Pi-2-KJ6MKI:~/wsprdaemon $ cd ~/wsprdaemon/
pi@Pi-2-KJ6MKI:~/wsprdaemon $ cp -p wsprdaemon.sh wsprdaemon.sh.save

Then you can add the "-nb" to line 1446 of V2.10i, i.e::

        python3 -u ${KIWI_RECORD_COMMAND} -nb \

Rob


On Tue, Dec 15, 2020 at 1:07 AM ON5KQ <ON5KQ@...> wrote:
Rob, this is a question for the code-expert...:

Sometimes I have some fence pulse noise on one of my antennas.
I found out, that when listening on this antenna with the kiwi, I can completely erase the noise, when switching on the kiwi noise blanker in standard mode.
I believe that the wav-files written by wsprdaemon do no process the audio information before it is written in memory for later decoding. It means that kiwirecorder do NOT use the noiseblanker normally, when writing the WAV files.

Now I found there are many options, which can be set for the kiwirecorder.
One can find the options in the wsprdaemon/kiwiclient directory by doing:

$ python3 kiwirecorder.py --help

This calls a list of all available options for the kiwirecorder. In this list of available options we can find for example:

--nb         Enable noise blanker with default parameters

This is exactly I was looking for...
Now my question:
- Can I use this option somehow as a parameter setting in the wsprdaemon.conf file, to activate the noise blanker as an pre-processor for Wsprdaemon ?
- How would I do it ? What is the syntax, I would need to use, to activate the noise blanker by an additional line in Wsprdaemon.conf...

I am thinking about something similar, as you once showed how to change the parameters for 'wsprd'  decoding engine...
Could you post an example, what exactly I would need to add in wsprdaemon.conf ?

If this is not possible in the conf - file, is there a different method how to activate the noise blanker for some tests ?

Many thanks for some help....

Ulli, ON5KQ



--
Rob Robinett
AI6VN
mobile: +1 650 218 8896


ON5KQ
 

hi Rob,

I updated to latest version of WD with git pull now on my main WSPR Supermicro workstation...


I realize, that it is not possible to use the .conf-file, but edit directly in the wsprdaemon.sh file ?

Because changing the code in wsprdaemon.sh  it will take effect for all kiwis at once and not just a a specific kiwi with the disturbed antenna. It may not harm and I will try tomorrow.


But it is not possible to report any improvement with decent data from such a simple test, because there is no reference. Instead, I would need a different set-up:

- One kiwi run on a raspberry with the same (fence noisy) antenna and original WD version 2.10i

- Another kiwi controlled by a different PC with WD and enabled Noiseblanker with same fence noise antenna perhaps with modified callsign like ON5KQ-NB  ...

Then we can see any difference over time...

I need to set it up for testing... please qrx a while ...hi


Ulli, ON5KQ


Hi Ulli,
 
Make sure you are running v2.10i:
 
pi@Pi-2-KJ6MKI:~/wsprdaemon $ git pull
Already up to date.
pi@Pi-2-KJ6MKI:~/wsprdaemon
 
 
It will be interesting to learn the results of your experiment.  Before making changes, save a copy of the unmodified wsprdaemon.sh, e.g.
 
pi@Pi-2-KJ6MKI:~/wsprdaemon $ cd ~/wsprdaemon/
pi@Pi-2-KJ6MKI:~/wsprdaemon $ cp -p wsprdaemon.sh wsprdaemon.sh.save

Then you can add the "-nb" to line 1446 of V2.10i, i.e::
 
        python3 -u ${KIWI_RECORD_COMMAND} -nb \
 
Rob

On Tue, Dec 15, 2020 at 1:07 AM ON5KQ <ON5KQ@...> wrote:
Rob, this is a question for the code-expert...:

Sometimes I have some fence pulse noise on one of my antennas.
I found out, that when listening on this antenna with the kiwi, I can completely erase the noise, when switching on the kiwi noise blanker in standard mode.
I believe that the wav-files written by wsprdaemon do no process the audio information before it is written in memory for later decoding. It means that kiwirecorder do NOT use the noiseblanker normally, when writing the WAV files.

Now I found there are many options, which can be set for the kiwirecorder.
One can find the options in the wsprdaemon/kiwiclient directory by doing:

$ python3 kiwirecorder.py --help

This calls a list of all available options for the kiwirecorder. In this list of available options we can find for example:

--nb         Enable noise blanker with default parameters

This is exactly I was looking for...
Now my question:
- Can I use this option somehow as a parameter setting in the wsprdaemon.conf file, to activate the noise blanker as an pre-processor for Wsprdaemon ?
- How would I do it ? What is the syntax, I would need to use, to activate the noise blanker by an additional line in Wsprdaemon.conf...

I am thinking about something similar, as you once showed how to change the parameters for 'wsprd'  decoding engine...
Could you post an example, what exactly I would need to add in wsprdaemon.conf ?

If this is not possible in the conf - file, is there a different method how to activate the noise blanker for some tests ?

Many thanks for some help....

Ulli, ON5KQ




 
--
Rob Robinett
AI6VN
mobile: +1 650 218 8896



Rob Robinett
 

Yes, you must modify the WD.sh source code.
So do as you say, run a modified version on one Pi reporting as one call sign, and compare it against a standard versionof WD.sh

On Tue, Dec 15, 2020 at 9:42 AM ON5KQ <ON5KQ@...> wrote:

hi Rob,

I updated to latest version of WD with git pull now on my main WSPR Supermicro workstation...


I realize, that it is not possible to use the .conf-file, but edit directly in the wsprdaemon.sh file ?

Because changing the code in wsprdaemon.sh  it will take effect for all kiwis at once and not just a a specific kiwi with the disturbed antenna. It may not harm and I will try tomorrow.


But it is not possible to report any improvement with decent data from such a simple test, because there is no reference. Instead, I would need a different set-up:

- One kiwi run on a raspberry with the same (fence noisy) antenna and original WD version 2.10i

- Another kiwi controlled by a different PC with WD and enabled Noiseblanker with same fence noise antenna perhaps with modified callsign like ON5KQ-NB  ...

Then we can see any difference over time...

I need to set it up for testing... please qrx a while ...hi


Ulli, ON5KQ


Hi Ulli,
 
Make sure you are running v2.10i:
 
pi@Pi-2-KJ6MKI:~/wsprdaemon $ git pull
Already up to date.
pi@Pi-2-KJ6MKI:~/wsprdaemon
 
 
It will be interesting to learn the results of your experiment.  Before making changes, save a copy of the unmodified wsprdaemon.sh, e.g.
 
pi@Pi-2-KJ6MKI:~/wsprdaemon $ cd ~/wsprdaemon/
pi@Pi-2-KJ6MKI:~/wsprdaemon $ cp -p wsprdaemon.sh wsprdaemon.sh.save

Then you can add the "-nb" to line 1446 of V2.10i, i.e::
 
        python3 -u ${KIWI_RECORD_COMMAND} -nb \
 
Rob

On Tue, Dec 15, 2020 at 1:07 AM ON5KQ <ON5KQ@...> wrote:
Rob, this is a question for the code-expert...:

Sometimes I have some fence pulse noise on one of my antennas.
I found out, that when listening on this antenna with the kiwi, I can completely erase the noise, when switching on the kiwi noise blanker in standard mode.
I believe that the wav-files written by wsprdaemon do no process the audio information before it is written in memory for later decoding. It means that kiwirecorder do NOT use the noiseblanker normally, when writing the WAV files.

Now I found there are many options, which can be set for the kiwirecorder.
One can find the options in the wsprdaemon/kiwiclient directory by doing:

$ python3 kiwirecorder.py --help

This calls a list of all available options for the kiwirecorder. In this list of available options we can find for example:

--nb         Enable noise blanker with default parameters

This is exactly I was looking for...
Now my question:
- Can I use this option somehow as a parameter setting in the wsprdaemon.conf file, to activate the noise blanker as an pre-processor for Wsprdaemon ?
- How would I do it ? What is the syntax, I would need to use, to activate the noise blanker by an additional line in Wsprdaemon.conf...

I am thinking about something similar, as you once showed how to change the parameters for 'wsprd'  decoding engine...
Could you post an example, what exactly I would need to add in wsprdaemon.conf ?

If this is not possible in the conf - file, is there a different method how to activate the noise blanker for some tests ?

Many thanks for some help....

Ulli, ON5KQ




 
--
Rob Robinett
AI6VN
mobile: +1 650 218 8896




--
Rob Robinett
AI6VN
mobile: +1 650 218 8896


John
 

Ulli,
I remember articles written when WSPR was new and many were thinking of using noise reduction features. The developer recommended to not use any processing on the I/Q files as the WSPR algorithms were designed to find information deep down in the noise. Noise reductions remove information that WSPR  is able to use.

John
TI4JWC


ON5KQ
 

Yes,

It is my intention to compare the Noise blanker enabled WD script against a standard (original) WD script directly and see, if there is any significant difference in reporting statistics. For that purpose I will use two different computers. But antenna will be exactly the same (power splitter to two different kiwi-SDRs)

Most likely I will set it up beginning of next week.

The strength of the noise influencing the North West antenna is however changing - sometimes stronger, sometimes less... we will see.

I will set-up a different call sign for the modified WD-script such as on5kq-nb, so that we can compare easily the results in Grafana.

Ulli, ON5KQ

Yes, you must modify the WD.sh source code.
So do as you say, run a modified version on one Pi reporting as one call sign, and compare it against a standard versionof WD.sh

 



Cathal Ferris
 

I have a suspicion that the fence pulse might be overloading the Kiwi frontt-end, in which case information is lost anyway before it gets to the noise blanker stage.

Another option, assuming that you have the room at the bottom of your signal spectrum, is to put an attenuator on the Kiwi antenna input and push your received noise floor down closer to the Kiwi's hardware limit. If the numbers work out right it should mean that the peak of the fence pulse doesn't saturate the Kiwi frontend, but still allowing the Kiwi to have the full bit depth at the quiet end to have all of the information decoded from the incoming signal.

If my reading of the flow of wsprdaemon decoding is right, then the presence of the pulse is of no relevance in itself as the protocol will happily work around the presence of the impulse noise; but that makes the assumption that the inbound signal hasn't been clipped or otherwise affected between the pulses due to the impulse noise.

My two KiwiSDRs and the RaspberrySDR that I have pulling signal from an Active-Antenna AAA-1d amplified loop antenna (via one of SV1AFN's "DXer's High-Linearity Pre-Amp (LNA) for HF Receivers" to split and amplify the signal) all appear at times to have overloading, and I am suspecting the ethernet over powerline that the neighbours are claiming not to have. I have yet to try attenuating the signal into the mixer to see the difference, it's a project for over the Christmas.

Regards,
-Cathal