PSK31 Skimmer

Several years ago, May of 2013 in fact, I set out to create a "skimmer" for PSK31. A skimmer is a computer program that listens to all of the conversations it can hear and decodes all the data. After messing with it for a while, and not having much luck, I set it aside. Until a couple of weeks ago, that is. Ed Manuel N5EM gave me some of his old QEX's, and one of them had an article on PSK31 written by the guy who invented it. He talked about how his PSk31 detector worked, and gave me some ideas on how to improve what I'd written. After fixing some fundamental errors, and borrowing some ideas from the article, I made excellent progress to the point where I could reliably decode the BPSK sample file and another sample file that I had generated using a program called fldigi.

Receiving signals off the air continued to elude me, however, until I managed this morning to improve the synchronous detector code enough. This morning, I believe that I successfully received a signal from W1JTS transmitting to N7EF. Here is the actual data that my skimmer received on 20m PSK:

ndow leol)et ae e ?tT -tc.F Dooaldt.CregefG3 toevad WCJTS J Psk o + e Teeet ew l w ettie i5 eeN7EF de

That's all the information I have. There are no timestamps or indications that a signal was lost or acquired. That'll come later. For now, I'm just working on the PSK31 detector. The data is pretty garbled, I think because I'm not detecting the zero crossings very well in the presence of noise, but there is stuff that looks like real data in it. (Previous attempts had long strings of e's t's and spaces. That's clearly not real data.) The one thing I had to hang my hat on was the call sign N7EF, which is followed by "de" which implies that it is being transmitted to N7EF. I wrote to Don, N7EF, and asked if he'd been on 20m PSK this morning, and he informed me that he had and that, among other people, he'd had a QSO with W1JTS. I think that that got garbled to "WCJTS". Putting that all together, I conclude that was likely what I received. Not proof, by any stretch of the imagination, but definite progress over "not receiving anything that looks like real data."