All kinds of things too precious not to share... constantly under
destruction.
Last modified: Tuesday, 18-Oct-2011 18:55:41 CEST
fkurz.net -> Ham Radio -> Stuff
A little Perl script which reads the question pools (Technician, General or Extra, plain text versions from http://www.ncvec.org/) and tests random questions. With minimal statistics.
Added: 13-May-2011. Last modified: 13-May-2011.
The Reverse Beacon Network (RBN) aggregates CW Skimmer spots, both to be displayed on their website and as a telnet feed. The latter can be used e.g. in contests to populate the bandmap with new stations.
In some contests it may be desirable to filter out certain spots. DX Spider (which runs on the RBN telnet server) offers some filtering options, but it gets very tedious or impossible to set up filters for a large number of individual callsigns, such as members of a club.
I found myself confronted with this problem before the FOC Marathon 2011, where a) only QSOs with FOC members count for points and b) only a slow and limited internet connection was available to access the spotting networks.
The solution came in form of a small Perl script, which connects to the RBN telnet feed and then acts as a telnet server itself, offering a filtered feed to the connected parties.
Since this may be useful for many different purposes (for clubs, particular contests, or to filter for certain DXpeditions, etc.), the program code is available here, for anyone to use and download. There are no restrictions whatsoever on its usage, feel free to copy, modify, redistribute, sell or smoke it.
Download: rbnfilter.txt (4kb)
Added: 23-Feb-2011. Last modified: 23-Feb-2011.
By default, the chat ("gab") function of Win-Test allows to chat with external stations by means of the DX-Cluster talk command. Since many of the WWYC crowd hang out on IRC during the contests, the idea of a bridge/gateway between an IRC channel and Win-Test gab was born.
Thanks to the Net::IRC-Module, and after a quick look at the Win-Test network protocol with Wireshark, this was very easy to implement in Perl.
The result can be downloaded here. If score broadcasting is activated in Win-Test, it also sends the current score to the IRC channel in regular intervals.
If you're running Windows and have no idea how to run it: Download and install ActivePerl
for free, use the package manager or CPAN to install the "Net::IRC" package and run irc2wt.pl after changing the
configuration (your call, IRC server, etc.) in it first.
Added: 04-Nov-2010. Last modified: 04-Nov-2010.
As a complement to the many practice modes for receiving Morse code at Learn CW Online, I have been investigating ways to implement some kind of sending practice in the browser.
Taking CW input from the mouse key works very well with millisecond resolution (certainly less in reality, but accurate enough), so writing a little decoder for straight key CW only took half an hour including all testing. But I failed to produce a reliable sidetone: Triggering an HTML5 audio-element that plays a OGG file with an infinite sine tone by the play() and pause() methods was the closest I got, but it was too sluggish for anything above 5wpm.
For what it's worth, feel free to play with it, sans side tone:
I released the code into the public domain. Do whatever you like with it.
Added: 14-Jul-2010. Last modified: 30-Oct-2010.
I've always been a night owl and never managed to get out of bed easily in the morning. That is, until I started using my Morse Code Alarm Clock!
Instead of listening to the usual beep beep, I added a line to my crontab, which starts my 'wakeup'-script. What does it do?
Depending on the amount of mail that arrived while I was sleeping, the whole thing takes between one and five minutes. And usually one of the mails is a good enough reason to get up!
It is running on my beloved little Dell Inspiron Mini 12 netbook, which I keep running overnight. It doesn't have any fans and the harddisk goes to sleep, so it's completely silent.
wakeup.pl script: wakeup.pl - Wrapper around ebook2cw for the 'morse' command: morse.sh
Added: 14-Jul-2010. Last modified: 26-Apr-2011.
A small C implementation (should compile on all platforms, but tested on Linux only) of a Martin 1 SSTV encoder. Converts a JPEG input file (using jpeglib) to a WAV output file (using libsndfile).
Originally written for transmitting live images from a high-altitude balloon, that carries a small embedded Linux computer. It could probably be optimized a bit for speed and timing accuracy, but already produces pictures with a usable quality (example: input, output). On the author's 1.8GHz machine generating a WAV file from a JPEG image takes about 2 seconds.
Update 11/08: Some actual pictures generated with it here and here.
sstvtx.c C source code - Licensed under the MIT License - SVN access
Added: 29-Jul-2008. Last modified: 26-Apr-2011.
Demo:
Added: 09-May-2008. Last modified: 09-May-2008.
Several Palindromes, which entirely consist of symmetric CW signs are obviously also palindromes in Morse code. But there are also some words which are not palindromes in letters, but only in Morse code.
A small Perl script cwpalindrom.pl was written to find some of those, using several word lists found on the internet.
| Language | Morse Palindromes |
|---|---|
| English | an, Bev, feel, waiting, sees, Wang, pop, footstool, gnaw, outdo, sexes, USD |
| German | an, Weg, du, stets, weg, tot, Ehe, Otto, Na, Pop, ewige, Reittier |
| French | du, ses, été, sans, n'a, an, tant, fil, pop |
| Dutch | tot, na, weg, du, Kok, fel, keek, pop, an, ere, kook, lof |
| Calls | AN5AN, DF0LU, DL5FU, G5W, OH5HO, OM5MO, S55S |
Added: 11-Apr-2008. Last modified: 04-Jun-2008.
Written in PHP and using the GD library. Output as GIF image (can easily be changed to PNG, JPEG etc). To use this on your own website, just download bcw.zip and follow the instructions of the readme file.
Added: 19-Mar-2008. Last modified: 19-Mar-2008.
Some examples (and a small program to generate such files) of different CW filter widths applied to the same received signal, at different signal levels.
| File | Description | SNR/dB (for each bandwidth) |
|---|---|---|
| sweep009.wav | Very weak signal (constant), bandwidth changing 100 -> 500 -> 1000 ->2100Hz | 1.8, -0.4, -3.4, -6.4 |
| sweep011.wav | Weak signal (constant), bandwidths as above | 3.7, 1.3, -1.6, -4.8 |
| sweep020.wav | Moderate signal (constant), bandwidths as above | 8.8, 6.5, 3.5, 0.36 |
| sweep060.wav | Loud signal (constant), bandwidths as above | 18.3, 16, 13, 9.8 |
| 400-800-400.wav | Weak signal, 2.1kHz bandwidth, pitch changing between 400 and 800Hz. |
noise.tar.gz - C source code (12. February: Added SNR calculation)
Psychoacoustics suggest that at lower frequencies you can hear weak signals better.
Why is that? The ear works like a filter bank, of 24 frequency bands. At low frequencies,
those bands are of equal width and about 100Hz wide each. With increasing frequency, their
width increases. (See e.g. Bark scale)
If you now hear a weak signal within wideband noise (no other signals present), what your ear/brain signal processor actually has to figure out is only the signal vs. noise in the particular frequency band. All other frequencies are pretty much irrelevant.
Now it seems logical, that it's easier to discern a signal at the same strength in a frequency band that is only 100Hz wide than in a wider frequency band.
That also explains, why it hardly matters whether you listen to a weak signal in a 100Hz filter or a 2kHz wide filter (with, mathematically, very different SNRs, as can be seen in the table). Your ear/brain does all the work. The filter bandwidth only matters in the presence of other signals, QRM etc.
Another point worth considering is, if you are listening to a desired signal, plus a jammer signal 100Hz above. At 800Hz, this means the signals are 12.5% separated, at 600Hz it is already 16.6%, etc.
There are many benefits from chosing a low BFO frequency, few benefits from spending a lot of money for super narrow filters. Note that (real) narrow filters also have a higher insertion loss than wide filters.
Added: 06-Feb-2008. Last modified: 12-Feb-2008.
Morse My IP. Plays your IP address in morse code
(embedded wave file using HTML5 audio). Useless and ridiculous.
Added: 29-Jan-2008. Last modified: 08-Jul-2011.
Unlike most antenna switches which use a rotary switch to select the antenna, this version uses push buttons to quickly select a receive antenna. The circuit is very simple and only uses two logic ICs (instead of a microcontroller) plus a few transistors to drive the relays.
While designed with Beverage antenna switching in mind, it may be used as a basis for any kind of antenna switchboxes. The circuit can easily be extended for a any required number of switches.
Added: 29-Jan-2008. Last modified: 29-Jan-2008.
There are some myths and some facts about copying high speed morse code. One is that you are hearing complete words as single units. That's neither right, nor wrong. I tried to explain how it works for me in this usenet posting a while ago.
You may also find interesting what Tommy, W4BQF has to say about this subject.
Added: 28-Jan-2008. Last modified: 28-Jan-2008.
Being tired of typing the same stuff into my calculator again and again, I wrote a small script in Perl to save some work. From the source:
# Input formats: # # 1) x POWERUNIT (+/- y RATIOUNIT) (in POWERUNIT) # e.g. db.pl 5W + 10dB in dBm # db.pl 100W + 6dB [in W] # db.pl 100W - 1SU # db.pl 100W in dBm # 2) x POWERUNIT to y POWERUNIT, output: dB and S-Units # e.g. db.pl 100W to 200W # db.pl 200W to 5W # # POWERUNITs: [pnumkMG]W, dBm, dBW, S (defined as S9 = -73dBm, 6dB per unit) # RATIOUNITs: dB, SU (S-Units, 6dB each)
download db.pl (2008-Jan-19)
Added: 23-Jan-2008. Last modified: 23-Jan-2008.
A few example MP3s created following a discussion on the AGCW mailing list, whether reception of CW can be improved by splitting dots and dashes between the right and left ear. Listen for yourself, at different speeds:
Conclusion: Confusion!
But there is more to it. While this may not work well for aural copy, you may want to check out what DF9IV, M0ERA and DK6TM are working on: Morse code reception via vibrotactile stimulation.
A modified version of my program ebook2cw which produces stereo output can be obtained here (source code. compiled versions on request.)
Added: 23-Jan-2008. Last modified: 13-Mar-2008.
From my CQWW CW 2007 log. Easy to see when I was CQing and S&Ping. The low number of sweeps over the band also explains the low number of multipliers...
| 10m | 15m | 20m | 40m | 80m | 160m |
Also a graph over all bands was made. The Gnuplot script is here.
Also created from a Cabrillo-File with very little effort, a map of CQ-zones vs. time
Always good to be on top :-). Saturday, Sunday.
Added: 23-Jan-2008. Last modified: 23-Jan-2008.
Sorted by country. Note that many countries with a relatively low number of contacts or QSLs are statistically not relavant and may have extreme values which are not representative.
Last updated: December 2008. Bureau QSL return rates
Updated: October 2009. LOTW confirmation rate.
Added: 23-Jan-2008. Last modified: 28-Oct-2009.
To be modified as needed. qsl.tex, Example PDF (DARC logo). What is LaTeX?
Jaakko, OH6FQI, made some improvements to the original design. The source can be found here: generic_qsl_back.tex.
Added: 23-Jan-2008. Last modified: 18-Oct-2011.