IFKP-1.0
Spectrum
Sound

IFKP is a incremental frequency keyed mode with an offset of +1. It is designed for very high coding efficiency.  It uses 33 tones (32 differences) and a Varicoded Alphabet, with a rotating difference frequency.

Modem statistics

Parameter Value
Samplerate 16000
Bandwidth 386
Center freq 1500(1)
Symbol length 4096
Lower case cps 3.65

(1) nominal, adjustable from 500 to 3500 Hertz


Tone differences are expressed as decimal numbers 0 - 31. The alphabet design uses single-symbol and two-symbol character codes. The character set does not include much extended ASCII, and has only 116 different codes. It is a strongly 'unsquare' design (29 x 3), which restricts the number of codes, but we don't need the maximum anyway. This 'unsquare' code maximizes the single-symbol set to 29, so will fit all lower case in one symbol. Using 29 initials means using a comparison process to discover where the initial symbols are.

Amateur communications does not follow standard English text for letter frequency. It has a higher incidence of letters such as Q, X and Z (in Q codes and callsigns). Lower case letters are more common than upper case. Numbers are considered equal in frequency of occurance to upper case characters.

The IFKP character set has been designed for one set of 29 single-symbol characters, and three two-symbol sets of upper case letters, number and punctuation. There is some spare space, and a few extended ASCII characters have been included ( ).

There are 29 single-symbol characters, 87 two-symbol codes, and a total alphabet of 116 codes. This allows coding all upper case, lower case and punctuation. The most common symbol is the NULL, a non printing character and is assigned a single symbol entry in the table.

The nomenclature used for the character symbol numbers in the tables is

[1st_symbol], ([2nd_symbol])

expressed in decimal, where the [1st_symbol] always has values less than 29, and the [2nd_symbol] will have a value of 30 or 31.

IFKP Varicode

The IFKP varicode table is defined as shown in the following tables:

CHAR ASCII VAR CHAR ASCII VAR CHAR ASCII VAR
IDLE 0 0 @ 64 0,29 ` 96 9,31
! 33 11,30 A 65 1,29 a 97 1
" 34 12,30 B 66 2,29 b 98 2
# 35 13,30 C 67 3,29 c 99 3
$ 36 14,30 D 68 4,29 d 100 4
% 37 15,30 E 69 5,29 e 101 5
& 38 16,30 F 70 6,29 f 102 6
' 39 17,30 G 71 7,29 g 103 7
( 40 18,30 H 72 8,29 h 104 8
) 41 19,30 I 73 9,29 i 105 9
* 42 20,30 J 74 10,29 j 106 10
+ 43 21,30 K 75 11,29 k 107 11
, 44 27,29 L 76 12,29 l 108 12
- 45 22,30 M 77 13,29 m 109 13
. 46 27 N 78 14,29 n 110 14
/ 47 23,30 O 79 15,29 o 111 15
0 48 10,30 P 80 16,29 p 112 16
1 49 1,30 Q 81 17,29 q 113 17
2 50 2,30 R 82 18,29 r 114 18
3 51 3,30 S 83 19,29 s 115 19
4 52 4,30 T 84 20,29 t 116 20
5 53 5,30 U 85 21,29 u 117 21
6 54 6,30 V 86 22,29 v 118 22
7 55 7,30 W 87 23,29 w 119 23
8 56 8,30 X 88 24,29 x 120 24
9 57 9,30 Y 89 25,29 y 121 25
: 58 24,30 Z 90 26,29 z 122 26
; 59 25,30 [ 91 1,31 { 123 6,31
< 60 26,30 \ 92 2,31 | 124 7,31
= 61 0,31 ] 93 3,31 } 125 8,31
> 62 27,30 ^ 94 4,31 ~ 126 0,30
? 63 28,29 _ 95 5,31 DEL 127 28,31
CHAR ASCII VAR
CRLF 13/10 28,30
SPACE 32 28
241 10,31
246 11,31
248 12,31
158 13,31
156 14,31
BS 8 27,31


Here is a simple analysis of projected text efficiency compared with DominoEX:

          |                       Symbols                         | Nbr
Message   |The Quick Brown Fox jumps over the lazy dog 1234567890.|     
DominoEX  |2211221221211211212122222112111121121221212122222222222|88   
IFKP      |2111211111211111211111111111111111111111111122222222221|69   
Message   |vk2abc de zl1xyz ge om ur rst529 name fred. hw? kkk    |     
DominoEX  |222121111122222212111211111112221112112111212221222    |75   
IFKP      |112111111111211111111111111112221111111111111121111    |57   


It is about 27% more efficient than DominoEX. Note especially the score sending typical 'ham speak' - some 30% more efficient than DominoEX.  The typing speed at 3.65 cps is about 37 WPM. Q codes and callsigns should be sent in lower case when possible.

Character rate statistics for various character sets when sent using IFKP,

text: abcdefghijklmnopqrstuvwxyz
chars/sec: 3.65
text: ABCDEFGHIJKLMNOPQRSTUVWXYZ
chars/sec: 1.84
text: 0123456789
chars/sec: 1.84
text: !#$%&*()_+-=[]{}|;:'",<>/?<bs><lf>
chars/sec: 1.84

IFKP xmt speed

ifkp can transmit text in one of 3 speeds, 0.5X, 1.0X and 2.0X. The 1.0X speed is the natural speed of the modem. The 0.5X and 2.0X speeds are obtained by dividing or multiplying the symbol length by 2 respectively. You can expect to experience decreased decoding errors with the 0.5X speed. Use it when s/n conditions are well below minux 10 dB on the IFKP signal strength meter. The 2.0X speed should probably not be used unless the s/n is well above plus 10 dB on the IFKP signal strength meter.

The three speeds can be selected at the time that IFKP is chosen from the mode menu. The speed can also be changed using the IFKP modem configuration tab. The quickest way to change speed is to left click on the left-most status indicator on the fldigi status bar (lowest set of controls on the main dialog). A pop-up menu will appear with the speed selections. The quick mode change and the configuration tab changes will occur immediately even during transmission. The selection from the mode menu will cause a complete reset of the IFKP modem.