An error correction method employed in amateur digital communication is known as Automatic Repeat reQuest (ARQ). I won’t get into those details here, but this mode can be used to ensure error-free delivery of simple messages over weak signal radio links as we often encounter in ham radio. In particular this method is available in the flarq program as part of the Narrow Band Emergency Messaging System (NBEMS) package. NBEMS provides amateur operators with the tools to operate several digital modes, regardless of whether they prefer Linux or Windows…
I follow a discussion group for NBEMS, and in response to some confusion over how much time it actually takes to transfer messages of various lengths using such error-correction, Dave – W1HKJ posted this nicely detailed summary of what all goes into the bit-stream. (I don’t expect everyone to fully appreciate this, but this is mostly for me and a few other hard-core bit-slippers) …
> — In NBEMSham@yahoogroups.com, “woodtownuk” wrote:
>> ‘When Image File is selected, Flarq can send a color, passport photo sized picture, in about 10 minutes using PSK250.’
>> Am I reading this correctly? 10-minutes? Passport size picture?
>> Angus – UKCF DataNet Manager
Assume that the passport photo is 200 x 250 pixels x 3 colors . This would typically be a compressed JPEG image with a file size of 10800 bytes.
That data must be formated using base64 encoding. Base64 encoding typically increases the data size by about 1.4. We are now at 15,120 bytes to transfer.
Lets say that you are using a block size of 64. The data is divided up into approximately 236 blocks of 64 bytes each. Each block requires both leading and trailing ARQ info.
Each data block transfer thus requires 8 + 64 + 1 = 73 bytes. 8 blocks are transmitted followed by a poll request. Each poll request can be up to 28 bytes long.
The receiving end responds with a status block report which again be as much as 28 bytes long.
A base64 encoded data file is a fairly uniformly distributed data set over the 64 allowable characters and averages about 9 symbols per byte.
Use this formula to estimate the transfer time using ARQ.
For an image:
Total ARQ Data = TQ = S * 1.4 * (1 + 16 / B))
Total ARQ transfer time = TQ / (60 * C)
S = file size in bytes
B = block size
C = average bytes / sec
C is dependent upon the encoding mechanism used for the modem in use. PSK, MFSK and others all use a VARICODE based upon the frequency with which each ASCII character is used in English documents.
Measured values of C for a 1024 byte uniformly distributed file:
PSK31 – 3.2 per second
PSK64 – 6.4 per second
PSK125 – 12.8 per second
PSK250 – 25.6 per second
MT63/1000 – 9 per second
MT63/2000 – 18 per second
MFSK-16 – 4.05 per second
THOR-22 – 5.6 per second
Transfer time = 12.3 minutes
You can use the TQ formula to estimate how long it would take to transfer a data file that is pure ASCII text (no base 64 encoding).
A 1 K text file transferred using 64 byte blocks takes :
I hope this helps to explain some of the ARQ transfer time questions.
73, Dave, W1HKJ
::::::::::(re-posted with permission from W1HKJ):::::::::::::
This is obviously presented without context, but you can learn LOTs more from the website http://www.w1hkj.com/NBEMS/index.html as well as from the Yahoo Discussion group NBEMSham. Hopefully I’ll be posting more about this digital communications package in the future. Maybe this is enough of a taste to make you want more…