W3SZ 10/31 LF Blog – Using WSPRnet to Quantitate Receive Performance

wsprnet capture w3sz

One of the first questions I have had as I am getting started with 630m is, “How well am I doing in terms of my receive system”?

Fortunately, there is a great tool available to all of us for testing our receive systems. That tool is WSPRNET, and we can use it to compare our receive systems with those of anyone else who is uploading their WSPR spots to WSPRNet!

In addition to showing you a map of WSPR spots, WSPRNet will allow you to see a list containing the details of all of the spots uploaded over the past 24 hours (or even as long ago as two weeks) by any station participating. To see these details go to this page and complete it so that is looks something like what is below, and then click “Update”:

wsprnet query page

Note that I used “W3SZ” as the reporting station. This means that the server will return all of the spots that I heard and uploaded. If I wanted to see what Bill, AA2UK heard, I would enter “AA2UK” into the “reporter” box, for example.

Doing this will give you a screen similar to what is below. I am displaying only a small portion of the spots displayed. The web page will let you display up to 1000 spots, so if it was a busy night you may not get all of the spots from a superstation. I generally leave the count set to 1000 so that I get the data on as many spots as possible, in order to optimize the statistics:

wsprnet capture w3sz

I am certainly NOT a superstation, but you can see that the web page maxed out at displaying 999 of my MF spots for the previous 24 hours and didn’t show the MF spots that I uploaded that were in excess of that.

So what can you do with this information? Well, here is a graph that I made using AA2UK’s and my WSPRNet spots from October 30:

w3sz vs aa2uk wsprnet spots

The graph shows the DIFFERENCE in signal strength of signals that were SIMULTANEOUSLY received at W3SZ and AA2UK. I calculated the difference as (the signal strength at my station) MINUS (the signal strength at Bill’s station). So if my station receives a signal better than Bill’s station does, then this number will be positive. If Bill’s station receives the signal better, then the number will be negative. You can see from the graph that at azimuths relative to my station of 3, 203, 228, 261, and 290 degrees Bill and I received signals equally well. At 25 degrees I was down by 10 dB, and at 63 degrees I was down by 5 dB.

You can compare this with the graph for simultaneous signals that produced from the data for October 31, shown below:

w3sz vs aa2uk wsprnet spots

There are fewer data points, because Bill was chasing DX using other modes, so the data is less statistically robust. Still, while we only heard 7 stations simultaneously the first night, this night we heard 9 stations simultaneously. We copied AA1A at 63 degrees/413 km and K5DNL at 261 degrees/2023 km from my location equally well, Bill copied K2BLA at 203 degrees/1350 km and VE3CIQ at 357 degrees/591km better, and I had possibly better reception for W3LPL, KC4SIT, N1DAY, W9XA, and WD8DAS, whose azimuths and distances from me are shown along the bottom axis of the graph. The data for the second day is statistically weaker due to the smaller dataset, and given the error bars, I would say that overall it looks as though Bill and I are closely matched in terms of our receive capability. So we are doing well, right?

Well, NO!!! Look at the graph below, comparing my reception overnight with that of Mike, WA3TTS:

w3sz vs wa3tts wsprnet spots

Mike and I received 12 stations simultaneously, with a total of 683 simultaneous decodes uploaded to WSPRNet. We are about even in terms of our reception of AA1A and W3LPL. But I am 5 dB down for K9FD at 281.3 degrees and 7439 km (he is in Hawaii), and roughly 10 dB down for AE5X, N8OOU, and VE3CIQ. I am roughly 15 dB down for ZF1EJ, KC4SIT, N1DAY, and WD8DAS. I am roughly 20 dB down for K2BLA and K5DNL. Mike is located near Pittsburgh, 347 km from me in EN90xn. So distance does NOT explain my signal deficit for most of the stations noted.

Here is how Mike’s and my signals compared using cumulative data from 10-30 through 11-2. We received 16 stations simultaneously,and the total number of data points was 1254. Mike heard 7 stations that I did not, including some Europeans. I heard only 1 station that he did not:

w3sz vs wa3tts wsprnet spots

Mike also outperformed Bill on receive, as is seen on the graph below. Here the results are WA3TTS minus AA2UK, so a positive number means that WA3TTS’s receive performance is superior,and a negative number means that AA2UK Bill’s receive performance is superior. WA3TTS is better by approximately 20 dB for WD8DAS and K2BLA’s signals, and by about 15 dB for N1DAY and K5DNL. There are no stations where Bill outperforms Mike.

aa2uk vs wa3tts wsprnet spots

Mike is an experienced Lowfer, and he has paid great attention to his receive system and to MINIMIZING noise. Mike gave me these suggestions in one of his extremely valuable emails:

Separate grounding for receive, isolation transformer at receiver antenna input, and a battery for antenna preamp are pretty much essential for serious MF/LF performance. A single BN73202 W8JI beverage transformer should only be a dB or so down in performance at 475kHz, that BN73-6802 “double length” ferrite core about optimal for 630m band for antenna and isolation transformer applications.

You need enough magnetizing force with the toriod material to be efficient at LF/MF, so generally the 73, 77, and 75 materials are used for low-Q broadband efficiency and 61 material reserved for high Q filter applications

Mike also gave me some great references on managing receive noise in general, including for example this web page from W3EEE on reducing EMI noise on receive antennas and this web page describing using an optical link to isolate the antenna from EMI brought from the mains along the feedline from the shack.

Mike also pointed out that for some, overload from AM Broadcast Band transmitters can be a show stopper, and he gave me a link to a schematic for the W1VD Hi-Q preselector.

After seeing how relatively bad my receive performance is by way of the graphs I generated and shared with you above, I am very motivated to start undertaking some of Mike’s suggestions on how to improve my receive sensitivity.

If you are interested in producing similar graphs for yourself once you are starting out on 630m, continue reading below. If you are not, then stop reading here! There be dragons below!!

To do this yourself you need to be computer savvy. IF you are thinking about doing this, then read all of what is below before giving it a try. If you don’t understand any of what is below, turn back now.

There is more detail below than you need to set things up. So I put text that discusses things that you actually need to do to get this going in bold, in order to make it easier to find these “must do” items.

1. Turn on the “Upload spots” function in your WSJT-type software. If you are using WSTJX, then make sure the “Upload spots” function is checked as is shown below:

wsjtx upload spots

2. After you’ve acquired a session’s worth of spots, go to this page and complete it as outlined above, setting the maximum number of downloaded spots to 999, entering your call in the REPORTER box, and then clicking on “Update”.

3. Then, once the spots have appeared, left click and scroll and once you have selected all of the spots, right click and click “Copy” to save them to the clipboard.

4. Then open your favorite text editor that will allow you to save a simple “.txt” file, open an empty document, and right click on the document and then click “Paste”. Then save the document as “Whatever.txt”.

5. Now repeat steps 2 through 4 above, but this time in the “REPORTER” box place the receive station with which you want to compare yourself.

6. For this example below, rather than comparing myself with another station, I will compare WA3TTS (the primary station) with K3RWR. This means that receive signal strength differences will be expressed as (Signal Strength at WA3TTS) minus (Signal Strength at K3RWR), and azimuth and distances to the received stations will be given the values for WA3TTS.

7. Download and install R from here. You want one of the precompiled binary versions, NOT the source.

8. Download and install the free version of R Studio Desktop from here.

9. Start R Studio and go to the “Packages” window in the lower right hand corner and install, if they are not already listed there as being installed:

ggplot2
foreach
sqldf
dplyr

10. Now click on “File >> New File >> R Script to open a new empty script file and copy and paste the code from this file into it:

11. Save the code by clicking “File >> Save” while the source code window has focus.

12. The beginning of the script will look like the image below.

RStudio-1

13. The first four lines:

require(ggplot)
require(foreach)
require(sqldf)
require(dplyr)

load libraries that are needed to process and display the data. You can find out more about each of these if you want by Googling, “R ggplot” or “R foreach”, etc.

14. The next line,

saveit=FALSE

sets a flag that causes the script to delete many of the intermediate files it creates just before it finishes. Setting saveit to TRUE may help with debugging if things are not working as expected.

15. The next two lines, 11-12,

filenames <- c("WA3TTS-11-30-2017.TXT", "K3RWR-11-30-17.TXT")

define the two WSPRNET data files that you created as above, and want to analyze with this script. For this example they are “WA3TTS-11-30-2017.TXT” and “K3RWR-11-30-17.TXT”. These files NEED TO BE PLACED IN THE SAME DIRECTORY AS YOUR R SCRIPT FILE.

Changing these two file names to the names that you used when you created the two WSPRNet data files above are the ONLY changes that you should need to make to the script code!

16. The next line,

filenames2 <- c("Callsign.csv")

refers to a csv file that you need to create if you want to create and display a list of “new” stations heard.

17. You need to create this csv file named Callsign.csv and put it in the same directory that has your R script file. This file needs to have 1 column, named Callsign. You need to create in this file a row for each station that you have previously spotted, and in that row to supply in the appropriate column the callsign of that station. This script will import this spreadsheet into R, and once imported the spreadsheet should look like this:

spreadsheet

18. Lines 16-21 just separate out (and print in the console, for debugging purposes) the main part of the file names to be compared, dropping the “.TXT” or whatever the file extensions are:

RStudio-2

When the script is run, this portion of the script will produce the console printout:

RStudio-3

Of course, the actual file names listed under “names” will be the names that you gave your WSPRNet files when you created them above.

19. Lines 24-30 import the Callsign.csv file into R Studio:

RStudio-4

20. Lines 33-44 import the two WSPRNet files to be compared into R Studio:

RStudio-5

21. The remaining code sets up the graphs and then displays them. If you want to learn more about the details of that code, Google is your friend. But I have written the code to be “generic”, and the only code details that you need to know to do all of this at your location are explained above.

22. Create a subdirectory named “Images” in the directory where you have saved the R script file. This is where your graph files will be placed.

23. Now you should be ready to create your first graphs. Left-click and scroll to select the code and then run it by clicking Control-Enter or clicking the “Run” icon at the upper right corner of the code window. If there are no errors, then RStudio will display two graphs in the lower right quadrant Plot window, and write the plots to “../Images/filename_1_filename_2_Vs_Azimuth.PNG” and “../Images/filename_1_filename_2_Vs_Call.PNG”, where filename_1 and filename_2 are the names of the two files being compared. If you want to put the graph files elsewhere, then you need to change the code appropriately. Or you can just click on “Export” above the displayed graphs and then select the directory and file names that you want to use to store the graphs.

24. Look in the Console window at bottom left to see what calls were unique to each station.
For this set of data, I see:

RStudio-6

The graphs produced by this data and script look like this:

TTS_RWR_1

TTS_RWR_2

25. If things don’t look as they should, then look in the console for error statements. Don’t worry about warnings.

73 and Good Luck!

Roger
W3SZ