**DominoEX Performance
**

Kok Chen, W7AY [w7ay (at) arrl (dot) net]

Last updated: July 28, 2009

**Measurement Methodology**

The actual character error rate for the beacon channel of DominoEX is measured over a 20 minute period. Sound files are used to ensure there is no adverse contribution from sound cards. For each mode, a noiseless DominoEX audio is first recorded into a "clean" file. The file is then read by cocoaPath to add a known amount of noise and the result written directly to an AIFF file.

The noisy sound files are then read in by the cocoaModem file import method. Error counting instrumentation is added to cocoaModem to detect character errors and accumulate the count. To save time, both cocoaPath and cocoaModem are set to process the sound files at an accelerated rate (about 4x to 6x real time).

The DominoEX secondary ("beacon") channel encodes each character into three nibbles (a nibble represents 4 bits -- i.e., the unit of transmission of the DominoEX channel symbol). The beacon channel is used to measure errors since it is the easiest way to get a constant modulated DominoEX stream.

The characters for the normal or primary channel are encoded into one to three nibbles.

To estimate the average number of nibbles per primary channel character, I have assumed that lower case alphabets occur 75% of the time, upper case alphabets occur 4% of the time, space characters occur 12% of the time, numbers occur 5% of the time and punctuation occurs 4% of the time. The English alphabet frequency is then used in conjunction with the DominoEX Varicode to come up with the estimate of

__1.45 nibbles per character__for the primary DominoEX varicode.

**Error Probabilities**

For a symbol (nibble) error probability of P

_{n}, the probability of error of the beacon channel when sync errors are low (i.e., when total error probability is low) can be written as:

P

_{b}= 1 - ( 1 - P

_{n})

^{3}

Given that each primary channel character is encoded into an average of 1.45 nibbles, the probability of error for the primary channel of DominoEX is approximately

P

_{d}= 1 - ( 1 - P

_{n})

^{1.45}

Given the measured probability of error of the beacon channel for each DominoEX mode and Signal-to-Noise ratio (SNR) combination, we can solve for the probability of error of a nibble for that combination. From there, we can compute the estimate of the probability of error of the primary channel.

To compare DominoEX against BPSK31, similar steps are taken to obtain the character error rates for BPSK31. By making the same assumptions with the letter frequency of English, and using the standard PSK31 Varicode table, each BPSK31 character takes an average of

__6.33 bits__(this includes the two sync bits) of channel symbols to encode.

The probability of error for a differential PSK signal is known to be

P

_{e}= 0.5 e

^{-Eb/No}

An ideal BPSK31 demodulator will have Eb/No that is equal to the SNR normalized to a bandwidth of 31.25 Hz. Practical BPSK31 error rates will be a little worse than this. The charts here therefore represent the most optimistic view of a BPSK31 demodulator. As with the DominoEX case, the probability of a BPSK31 character error is (again, this ignores sync errors that can cause the character error rate to double):

P

_{psk}= 1 - ( 1 - P

_{e})

^{6.33}

**DominoEX FEC**

DominoEX FEC modes use the binary MFSK16 varicode table, which is partitioned into two sets. The larger partition is used to encode a subset of the characters that are available in the non-FEC DomimoEX primary characters. The characters that are mapped away to the smaller partition, and thus no longer available as primary characters, are mapped to the underscore character.

The smaller partition of the varicode table is used to encode upper case characters, numbers and a limited number of punctuation characters for the beacon channel. This includes the beacon channel's own underscore character. Lower case beacon characters are mapped to the upper case. Variants of the roman alphabet are mapped to their based upper case character (e.g., ä is mapped to A). Some other characters are likewise mapped (e.g., mapping curly braces to parentheses, the degree symbol to the letter D, etc). The leftover beacon characters which lack a codeword are then mapped to the beacon underscore character.

Using the same English letter frequency methodology explained above, the MFSK16 varicode is found to average about

__5.6 bits per character__. For N bits of data, MFSK16 allows many more codewords than the PSK31 varicode since PSK31 only allows a maximum of two consecutive zeros within a codeword. This contributes to the reason why the MFSK16 varicode (5.6 bits per character) is more efficient than the PSK31 varicode (6.33 bits per character).

Like the non-FEC case, the FEC case were measured using the secondary channel using a character with 8 MFSK16 varicode bits. Just as with the PSK31 computation above, the measured secondary character error for the DominoEX FEC case can therefore be written as

P

_{s}= 1 - ( 1 - P

_{u})

^{8}

where P

_{u}is the probability of error of a single bit. Solving for P

_{u}and inserting it into the following equation therefore gives the estimate of the character error rate of the primary FEC channel:

P

_{fec}= 1 - ( 1 - P

_{u})

^{5.6}

In addition to the default 4 stage interleaver,cocoaModem can select interleave lengths between 5 and 10. The charts for the ITU Propagation profiles show the error rate curves for both the default interleaver and the 10 stage interlever.

**DominoEX under Additive White Gaussian Noise (AWGN) Conditions**

The performance of DominoEX under AWGN are charted here.

**DominoEX under ITU and CCIR Propagation Conditions**

The performance of DominoEX under the ITU and CCIR propagation for HF Channel Simulation are charted here.