Saturday, April 25, 2020

About the WSPRDaemon noise graphs - and repurposing for use in monitoring WWV(B) signal levels over time.

What is WSPRDaemon?

The WSPRDaemon program is largely a work of Rob, AI6VN and it exists for the purpose of facilitating the reception of WSPR signals off air, processing the data, and making that data available publicly - not only to, but also via the web site.  The WSPRDaemon script runs on a Linux computer - typically a Raspberry Pi - and typically takes data from a web-connected receiver (typically a KiwiSDR) - but it can also use the ubquitous RTL-SDR dongle or even the "raw" audio input from a receiver via a sound card.

For each of the (approximately) 2 minute receive "cycles" of WSPR transmissions (which are, worldwide, scheduled to start precisely at the beginning of each even-numbered minute) an audio (.wav) file is recorded for each receiver - and this audio is then processed using the "WSJT-X" program to decode the WSPR transmissions found within that audio stream.

Features not found in WSJT-X that are made available in the wsprdaemon script include the scheduling of receivers (e.g. switching a limited number receivers to most favorable bands) and the "merging" of several receivers - possibly using different antennas for diversity - that are listening to the same band so that only the best of the WSPR "spots" is reported, avoiding duplicate reports of a given transmission.

What it does:

While not precisely calibrated, having long-term, disparate records of WSPR signal reception from all over the world can provide useful information to amateur radio operators and researchers alike, providing a glimpse into the propagation of LF, HF and even VHF (and higher bands) which can help divine when propagation is occurring between two stations and when it occurred.  Having a "live" and past database of these events can help validate/tweak models of the Earth's geomagnetic field and its interaction with the sun on the ionosphere - and to satisfy the intellectual curiosity of anyone who wishes to study this by themselves.

Accumulation of "noise" data:

In addition to the accumulation of WSPR data, the wsprdaemon software is able to measure the apparent noise floor on the specific frequencies associated with WSPR transmissions on the amateur bands and with some hardware it is possible to calibrate this measurement in absolute terms of intercepted noise power.

If receivers taking these readings are found at disparate "RF quiet" sites around the world, this data can be informative of the natural, background noise which can be indicative of the state of the ionosphere and the Earth/Space environment:  In some cases, it is possible to observe the rising/setting of strong radio noise sources such as Sagittarius A and, occasionally, "noisy" planets in our solar system such as Jupiter not to mention the tremendous noise that can result when the Earth's magnetic field is being abused by our local star.

The software makes two separate noise measurements:
  • The noise "floor" within the passband.  This reading (the "RMS" level, in Red on the graphs) is the calculated noise floor level and its processing attempts to "remove" the effects of other signals within the detection passband.
  • The signal power within the passband.  This reading (the "FFT" level, in Blue on the graphs) is the total power within the passband.  Unlike the RMS reading, this is indicative of the cumulative power intercepted and will always be higher.
Even though the apparent detection bandwidth of these receivers is on the order of 400 Hz, all readings are scaled (by approximately 26 dB) such that the power readings reported are relative to a 1 Hertz detection bandwidth.

A typical graph may be seen below:
Figure 1:
A typical graph showing the last 24 hours of noise on the 40 meter amateur band a receiver at the Northern Utah WebSDR.
The displayed time, in UTC, shows the noise level rising at around local nighttime and then dropping off at night.  This graph is "skewed" somewhat by the overnight presence of strong thunderstorms in the Eastern United States, the intensity of which gradually tapered off overnight and into the day and by the fact that the antenna used is a log periodic beam has significant gain that is pointed in the direction of those storms.

Almost the "inverse" of this is the noise graph from another receiver at the Northern Utah WebSDR site:
Figure 2:
This graph depicts a 24 hour plot of the noise floor on the 20 meter band.

The noise floor can be seen to increase during the daylight hours, but drop to the floor during the night when propagation and ionospheric stimulation by the sun effectively ceased.  As expected - particularly during the period of low sun activity during which this is being written - the noise floor and signals decrease during local nighttime.

In theory, careful analysis of the noise data used to produce the above graphs can provide the opportunity to analyze HF propagation modes and the effects of Earth-Space environment.

Monitoring signals from consistent sources:

It occurred to me that the wsprdaemon script also afforded the opportunity for something else for which it was originally intended - the monitoring of consistent signal sources of known transmitter power and location.  From the Utah location, one source of signals - those from the NIST in the form of the WWV and WWVB  transmitters - was obvious.

A quick modification of the wsprdaemon script allowed the addition of additional frequencies:  While there would clearly be no WSPRnet reporting on these non-amateur channels, the noise measurements would still be posted as the graph below depicts:

Figure 3:
 A noise graph of the WWVB transmission at 60 kHz in Fort Collins, Colorado.

The red line shows the received signal level from WWVB - the same signal used to set many automatic clocks - on 60 kHz.  During daylight hours the signal level is pretty consistent at the "-100dBm" mark while during the night, signal levels vary a bit - particularly during sunrise/sunset where ionospheric perturbations are evident.

The "Blue" line is largely influenced by the 17dB amplitude modulation of the WWVB carrier used to convey time and date information, but it is also prone to being "diluted" by peaks in the background noise as can be seen during the nighttime hours (from about 0400-1100 UTC) where propagated lightning static is evident.

From the same site, on a frequency that is orders of magnitudes higher we get this plot:
Figure 4:
 A noise graph of the signal and noise levels on the 10 MHz WWV/H frequency.
The graph of Figure 4 is a bit more cluttered as one might expect.  The Red "line" shows the wildly varying signal of the signal on 10 MHz - which could be from either WWV in Colorado OR WWVH in Hawaii.  As is the nature of HF, these signals can vary significantly - not only between day and night, but also from one moment to the next.  The blue line generally depicts the noise level at 10 MHz, but this may not be truly representative as it may be being affected by the ever-present modulation on the WWV/H carrier - primarily in the form of the 100 Hz time code modulation.

The utility of the graph in Figure 4 may be debatable as there is not one, single signal source, but it does provide a general perception of the signal levels that one might expect - and how the time of day affects them.

Final comments:

In addition to the general monitoring of the noise floor on the HF bands where WSPR monitoring is taking place, the wpsrdaemon script can also be used to monitor signals from known transmitters.  To be sure, this wasn't the intended use of this software and if such data is useful, it's likely that the utility and accuracy of such measurements could be improved.

* * * * * * * * * * * * * * * * *

Modifications to the wsprdeamon script for version 2.8a:

In the "" file, one need only add a few lines to the code to produce the "new" bands in the array "WSPR_BAND_LIST", as in:

"WWVB        58.5"
"WWV_2_5  2498.5"
"WWV_5      4998.5"
"WWV_10     9998.5"
"WWV_15    14998.5"
"WWV_20    19998.5"
"WWV_25    24998.5"
"CHU_3       3328.5"
"CHU_7       7848.5"
"CHU_14     14658.5"

Each new "band" is named by the first entry on the line (e.g. "WWVB") and the frequency of the carrier that one wishes to monitor is defined in kHz in the second entry.  Note that the frequency used here is 1.5 kHz lower than the actual carrier frequency to be monitored.

In the "wsprdeamon.conf" file where the receiver and its use is to be defined, these "bands" - defined in - are used in exactly the same way as any other band in the list.  For example, one might schedule the start a hypothetical receiver called "KIWI_1" on the WWVB signal at 0000 local time as follows:

"00:00  KIWI_1,WWVB"

Comment:  At present, wsprdaemon will dutifully try to process the audio file for WSPR spots - but it will fail to do so.  It should be possible to modify the code to add an argument that will prevent this from happening to reduce processor loading.

* * * * * * * * * * * * * * * * *

This page stolen from