Copyright: Howard (Skip) Teller, KH6TY, 2004


Receiving PSK31

Single Channel Reception

PSK31 signals display as two parallel lines, resembling railroad tracks, in the Spectrum Window. Tune in a PSK31 signal by pointing to it with the mouse and clicking the left mouse button. The text being sent by the station will then appear in the Receive Window, which is the largest window, near the top of the DigiPan screen.

In this screen capture of a portion of the Spectrum Window of an actual DigiPan screen, the bright yellow-green stripe with the diamond-shaped cursor in the middle is a strong PSK31 station, the one to the left is a weak PSK31 station, but still printing perfect copy, and the faint signal to the right is a PSK31 station that is too weak to copy enough to sustain a QSO. The short trace between the two is a carrier that has already left the air, and the very faint signal to the far left is a weak PSK31 station that has just quit transmitting.

The diamond-shaped cursor has been placed in the middle of the strong signal by pointing to the signal and clicking the left mouse button, and indicates the station that is currently being printed.

It is also possible to move the diamond-shaped cursor for tuning using only the keyboard by holding down Ctrl and pressing the left or right arrow key.

Stations may also be tuned in by pressing the left or right arrow keys. Pressing the right arrow key will cause the cursor to jump to the next signal to the right of the current cursor position. Pressing the left arrow key will cause the cursor to jump to the next signal to the left of the current cursor position.

Multiple Channel Reception

Pressing the Multi button (F12) will toggle DigiPan between single channel reception and multiple channel reception. The division between single channel viewing and multiple channel viewing can be dragged to change the relative size of each area by placing the mouse cursor on the dividing bar, holding the left mouse button down, and dragging the division left or right.

If the text of a multiple channel is clicked with the left mouse button, that text will be copied over to the single channel window, and it will be retained when switching from multiple channel viewing to single channel viewing. Right-clicking in either area will present a menu of available actions.

To contact a station on one of the multiple channel rows, just click anywhere on the row and then double-click on the callsign in the single channel window (this does not work on a multiple channel row!) to capture that callsign and use it with the macros and log.

DigiPan also provides three colored alerts which can be used to watch for CQ calls, or other text, such as CQ DX, etc. Click Configure/Colors/Multichannel coloring effect and enter the desired text to watch for, and then click on the colored rectangle after the text to pop up a color selector. When a text string and color has been chosen, click OK and the background of any row printing the desired text will be colored in the chosen color. A light background color may be preferabe to a darker one to make the black text stand out better.

Under Configure/Multichannel activity timeout, a value in seconds may be entered that determines how long after no new text is received passes before that channel is cleared.

Checking Bookmarks under View will display the letters A-Z on the multichannel display and also display bookmarks from A-Z that correlate with each multichannel row to help indicate which row on the multichannel display correlates with a signal on the waterfall. However, often one bookmark may cover another, making it difficult to find the bookmarked signal. If using the Bookmarks becomes too confusing, just uncheck Bookmarks.

Practically, the multichannel display often becomes cluttered with stale text, so it is helpful to use the Clear button (F11) often to clear the displays, as one is most interested in the latest transmitted text, or a color alert, and printing will usually resume quickly.

The active cursor for transmit is denoted by a green flag on the dial scale above the cursor. The transmit frequency may also be locked in place, and when locked the flag will change to red color, warning you to notice the actual transmit frequency.

Positioning and Sizing Windows

Pointing to a vacant space on the Control Bar or Log Bar, holding the left mouse button down, and moving the mouse makes it possible to reposition and dock either of these bars. An outline of the bar will appear when the mouse is first moved, and when that outline shrinks, it indicates a position where the bar may be docked by releasing the mouse button. The docked position of the bar will be remembered from session to session.

Pointing to a window separator will cause the mouse cursor to change to a small pair of parallel lines, and pressing the left mouse button and keeping it pressed will make it possible to resize the Spectrum, TX or RX windows. Releasing the mouse button will leave the window in the resized position. For single channel operation, there is a double separator between the TX window and the RX window. It is necessary to move the lower separator to resize the TX window, and not the upper one.


Log Bar

Below the Control Bar is a Log Bar, which contains boxes for inserting a Call, a Name, QTH, Received and Sent RST's and a Notes. Operations of the Log Bar is controlled by the Save (floppy disk), Clear (blank sheet), and Search (eyeglasses) icon buttons.

A Call can be typed into the Call window or pointed to on the screen with the mouse, and double-clicking the left mouse button will copy the call into the Call window.

For Roundtable operation, a second, third, etc. call may be appended to the Call window by highlighting the call and selecting "Add call" from the right-click menu. If this is done, all buttons using the <CALL> macro will also use the additional calls.

A Name can be typed into the Name window or pointed to on the screen with the mouse, and double-clicking the left mouse button will copy that name into the Name window.

A RST may be entered into the Rec'd box by double-clicking on any three-number "word" on the RX screen.

Holding Shift and double-clicking on a word will append that word to the QTH box. By holding down Shift and double-clicking each word of a QTH in turn, a multi-word QTH can be entered into the log without typing.

All boxes can also be filled in by highlighting the information on the screen, holding down the left mouse button, "dragging" the information into the desired box, and releasing the mouse button.

A box may also be filled in by highlighting the information, pressing the right mouse button, and copying and pasting the information into the desired box, or choosing a location from the displayed menu.

When the desired windows are filled in, pressing the Save icon button will save the information into a log, and the asterisk next to the Save icon button, which indicates that the entries have not been saved, will disappear. Pressing the Search icon button will search and display all log entries for any call desired, with the default call being the one currently displayed in the Call window. You can search the log for any character or string of characters, by typing in a string to be found and pressing the Search button on the search dialog and you can also display the entire contents of the log by pressing the "Display Whole Log" button.

To print the log or a portion of the log, display the whole log, highlight the entries desired, and press the "To File" button. Enter a file name and save the file. This file may then be viewed or printed by any word processor program, or if saved with an extenstion of .txt, by Notepad.

To provide more screen area for the RX and TX windows, any or all of the bars can be hidden by unchecking the appropriate item under the View menu selection.

Making a selection in the RX window by highlighting with the mouse and right-clicking will display a menu of Log Bar boxes for data entry of the highlighted text.


Macro Programming

Macro commands in DigiPan may be combined with each other, or combined with text, to control many functions of DigiPan, and reduce the need for repetitive typing. Macro commands must be typed in all capital letters.

DigiPan's default macros offer an good example of macro programming:

Key	Label	Command
F1	Lookup
F2	CQ	<TX>CQ CQ CQ DE <MYCALL> pse K<RXANDCLEAR>
F3	Call 3	<TX><CALL> <CALL> <CALL> DE <MYCALL> <MYCALL> <MYCALL> K<RXANDCLEAR>
F4	Call	<TX><CALL> DE <MYCALL>
F5	BTU	BTU <CALL> DE <MYCALL> K<RXANDCLEAR>
F6	Signoff	73 <CALL> DE <MYCALL> SK<RXANDCLEAR>
F7	File	<FILE>
F8	Brag	Station equipment at <MYCALL> is:
F9	T/R	<TXTOGGLE>
F10	Squelch	<THRESHOLD>
F11	Clear	<CHANNELSCLEAR>
F12	Multi	<CHANNELSTOGGLE>

The default Macro Commands may be modified to reduce the automation of DigiPan by eliminating <TX> or <RX> or <RXANDCLEAR> if you use the typeahead feature most of the time and prefer to manually go in and out of transmit with F9.

To add a CW ID to the default signoff macro, add <CWID> to the end of the macro, such as, 73 <CALL> DE <MYCALL> SK<CWID>. Of course, <CWID> can also be assigned to a separate function key, as can <TIME> and <DATE>, but DigiPan's log also logs the time and date automatically. If you use CW ID, keep in mind that while it is executing, the other station is printing only garbage. For that reason, you might want to use CW ID only at the end of your signoff macro.

Macros may be assigned to buttons through the Configure/Fn macros or Configure/Ctrl-Fn macros menu selections or by displaying the macro button and right-clicking on it with the mouse, which will display a User Macro dialog, where you can enter a label for the button, or text, macro, or macros to be executed. Macros may also be selected from the drop-down list and inserted by pressing the Insert it button. To configure the Ctrl-Fn key macros with the mouse, press Ctrl and hold it down while you right-click on the label of the key you wish to configure.

As a useful example, if the macro <IMD> is assigned to a macro button, or included in another macro, pressing the button will display the IMD reading in the TX window. For example, if the last IMD reading was -20 dB, pressing the button will cause IMD :  -20 dB to be displayed in the TX window. Setting up such a macro button is a convenient way to report the other station's IMD reading obtained when it was idling.

An alternate syntax for the <FILE> macro is <FILE:FILENAME> which will send the specified file. FILENAME must include the full pathname of the file, unless it is in the same directory as the DigiPan executable, digipan.exe.

created with Help to RTF file format converter


Clear

Clear RX Window When this is selected, the left window, or single receive window is cleared.

Clear multichannel window When this is selected, the right window, with 26 rows, is cleared.

Clear TX When this is selected, the TX window is cleared.

Clear current window When this is selected, the current window, which means the one with the flashing text cursor, or the last one clicked in, is cleared.

Clear All clears all windows, of course.


Lock

Lock TX Frequency When this is selected, the TX frequency is fixed at the position of the active cursor, and the flag above the cursor changes to red. This allow you to transmit on one frequency and receive on another.

Unlock TX Frequency When this is selected, transmission will occur on the same frequency as receive, as indicated by the diamond or triangle cursor, and the flag above the  cursor will be green.


Configure

Personal Data	 Enter your call, name and QTH for use by DigiPan in macro commands.

Fn macros	 Allows editing of up to 12 function key user macros.

Ctrl-Fn macros	 Allows editing of up to 12 ctrl+function key user macros.

Load macros When selected, a dialog box will be displayed that allows a set of custom macros to be loaded into the Macro bar that were saved with a .mac extension with the Save macros selection.

Save macros When selected, will display a dialog box to enable the saving of the current set of macro labels and definitions with an extension of .mac.

Waterfall Drive This selection will display a volume control that controls the audio level to the sound input of the soundcard. This control acts the same as the Windows Adjust Volume for Recording control, and is used to control the audio drive from the transceiver audio output to the soundcard audio input on receive. There are two possible inputs to connect the soundcard to the transceiver output, the Microphone Input and the Line Input. Most transceivers have sufficient audio output to drive the Line Input. This control should be adjusted to produce a speckled blue noise background on the Digipan Spectrum Window. If the transceiver audio output is too low, the Spectrum Window will be black or very dark blue. In this case, try connecting the transceiver audio output to the Microphone Input of the soundcard, and it should then be possible to use the Microphone level control to produce a speckled blue noise background. If using the Microphone Input and the noise background is mostly yellow and the level cannot be reduced to produce a speckled blue noise background, the drive to the Microphone Input of the soundcard may be too high, and the Line Input should be used instead, to prevent overdriving the soundcard, which may result in a series of vertical lines on the spectrum display on strong signals.

If possible, use a fixed level output from the transceiver to the soundcard instead of one controlled by the transceiver volume control. If this is not possible, adjust the transceiver volume control to prevent overdriving the soundcard.

Transmitter Drive This selection will display a volume control that controls the level of the sound output of the soundcard for adjusting the audio drive level to the transceiver. This control acts the same as the Windows master volume control, so once the level is set for corrected undistorted power output on transmit, be careful not to accidentally change the setting with the Windows master volume control.

Sound Card Select the desired sound card or the MixW RigExpert as a sound card, if there are multiple cards installed.

Sample rate If there always seems to be an offset between the received frequency and the transmitted frequency, try different values in PPM for TX or RX to minimize the offset. Typical values range from 0 to about 7000 ppm.

Serial port	 Select an unused serial port for DigiPan to use to control the transceiver PTT line. The default is to use both RTS and DTR for PTT. If you wish to use only either RTS or DTR, be sure the one you want to use is checked, and uncheck the other one. The serial port selected must be one that is externally accessible on the computer!

Checking the box for "Use Icom CI-V" will display a selection for an Icom transceiver model, with the CI-V hex address of that model displayed first and the model number second. The default Baud rate is also shown, with selections for higher baud rates if supported by the transceiver. Check the transceiver manual to find out what baud rates are supported by the transceiver. The default baud rate is 1200 baud. An appropriate CI-V interface or accessory cable, such as the Icom CT-17 cable, must be used between the computer and the transceiver.

DigiPan will set the Icom transceiver to the spectrum start frequency specified under Configure/Band when either USB or LSB is selected. The DigiPan dialscale will then indicate the actual RF frequency of operation.

Font	 This selection will present a dialog for selecting the font used for the receive window.

Colors This selection will present a menu of color settings for fonts, background colors, and Waterfall colors, using a standard Windows color selector. Custom sets of Waterfall colors can be saved with an extension of .pal and reloaded as desired. When a button on the Waterfall color dialog is clicked, a standard Windows color selector is also displayed, with the button color as a starting point for modification. Press the Default button and then the apply button to return to the default colors, which have been chosen for good weak signal recognition and also for clear strong signal display.

Band This opens a dialog for setting the spectrum start frequency for the dial scale display of actual RF operating frequencies in either USB or LSB. When using LSB, enter the highest desired frequency, and when using USB, enter the lowest desired frequency. Digipan then scans the rest of the PSK31 portion of the band automatically and displays any stations found there. The spectrum start frequency must be entered in kHz, or kHz plus tenths of kHz, such as 14073, or 14073.1, or 14072, or 14070, or 14069, etc., as described in more detail in Setup.

Markers This opens a dialog for setting up to five markers at different tone frequencies. Enter the tone frequency of each desired marker in Hz. These markers will display whether the dial scale is reading RF frequency or tone frequency. To set Markers at a particular dial RF frequency, click on the desired frequency, read the tone frequency from the status bar, and enter that frequency in the Marker dialog in Hz.

Sound history This selection presents an input box for entering the number of seconds of previous reception to be stored in Digipan to be played back by holding down the Shift key while clicking on a signal. The signal will be played back at an accelerated rate.

Multichannel activity timeout Enter a value here which determines how long after no text is received that a multichannel is cleared.

created with Help to RTF file format converter


PSK31 Modulation Theory

The 31 baud BPSK modulation system used in PSK31 was introduced by SP9VRC in his SLOWBPSK program written for the Motorola DSP56002EVM. Instead of the traditional frequency-shift keying, the information is transmitted by patterns of polarity-reversals (sometimes called 180-degree phase shifts). This process can be thought of as equivalent to sending information by swapping-over the two wires to the antenna, although, of course, the keying is more usually done back in the audio input into the transceiver. A well-designed PSK system will give better results than the conventional FSK systems that amateurs have been using for years, and is potentially capable of operation in much narrower bandwidths than FSK. The 31 baud data rate was chosen so that the system will just handle hand-sent typed text easily. There is a problem with PSK keying which doesn't show up with FSK, and that is the effect of key-clicks.

 We can get away with hard FSK keying at moderate baudrates without generating too much splatter, but polarity reversals are equivalent to simultaneous switching-off of one transmitter and switching-on of another one in antiphase: the result being keyclicks that are TWICE AS BAD as on-off keying, all other things being equal. So if we use computer logic to key a BPSK modulator such as an exclusive-or gate, at 31 baud, the emission would be extremely broad. In fact it would be about 3 times the baudrate wide at 10dB down, 5 times at 14dB down, 7 times at 17dB down, and so on (the squarewave Fourier series in fact) The solution is to filter the output, or to shape the envelope amplitude of each bit which amounts to the same thing. In PSK31, a cosine shape is used.

To see what this does to the waveform and the spectrum, consider transmitting a sequence of continuous polarity-reversals at 31 baud. With cosine shaping, the envelope ends up looking like full-wave rectified 31Hz AC. This not only looks like a two-tone test signal, it IS a two-tone test signal, and the spectrum consists of two pure tones at +/-15Hz from the centre, and no splatter. Like the two-tone and unlike FSK, however, if we pass this through a transmitter, we get intermodulation products if it is not linear, so we DO need to be careful not to overdrive the audio. However, even the worst linears will give third-order products of 25dB at +/-47Hz (3 times the baudrate wide) and fifth-order products of 35dB at +/-78Hz (5 times the baudrate wide), a considerable improvement over the hard-keying case. If we infinitely overdrive the linear, we are back to the same levels as the hard-keyed system.

There is a similar line of reasoning on the receive side. The equivalent to "hard-keying" on the receive side is a BPSK receiver which opens a gate at the start of a bit, collects and stores all the received signal and noise during the bit, and then "snaps" the gate shut at the end. This process gives rise to the receive-side equivalent of key-clicks, namely sidelobes on the receiver passband. So, although this "integrate-and-dump" method is 100% efficient in the task of sorting out signal from noise, it will only reject signals by 10dB at 3 times the baudrate wide and so on, the same spurious rejection figures that we got as spurious emission figures for the transmit side. The PSK31 receiver overcomes this by filtering the receive signal, or by what amounts to the same thing, shaping the envelope of the received bit. The shape is more complex than the cosine shape used in the transmitter: if we used a cosine in the receiver we end up with some signal from one received bit "spreading" into the next bit, an inevitable result of cascading two filters which are each already "spread" by one bit. The more complex shape in the receiver overcomes this by shaping 4 bits at a time and compensating for this intersymbol interference, but the end result is a passband that is at least 64dB down at +/-31Hz and beyond, and doesn't introduce any inter-symbol-interference when receiving a cosine-shaped transmission.

Note that the transmitter and receiver filters have to be "matched" to each other for the ISI performance to be right. Some systems like this use a pair of identical receive and transmit filters which are matched. If I did this and someone else came along wanting to improve the performance, they would have to get everyone else to change their transmit filters. I have therefore chosen to use the simple cosine shape for the transmitter and match that in the receiver. This leaves the way open for others to develope better receivers without new transmitters being incompatible with old. This is slightly different from the SP9VRC approach.


Equipment Setup

Receive Audio Connection

Connect an audio cable between the transceiver audio output and the soundcard LINE IN jack. The audio output of the transceiver may be the speaker output, an auxiliary audio output, or an earphone jack. It is best to use a transceiver audio output that is unaffected by the transceiver volume control if available.

In case the audio output of the transceiver is too low to produce a blue speckled background on the DigiPan Spectrum Window, change the connection at the soundcard end of the cable from the soundcard LINE IN jack to the soundcard MIC jack.

Receive audio level is controlled by the DigiPan Receive Volume and, if coming from the transceiver speaker or earphone audio output, also by the transceiver volume control.

Set the soundcard for the best sample rate conversion quality for the sharpest  possible display of received signals. DigiPan works best at a sample rate of 11025 Hz or higher.

Transmit Audio Connection

Connect a shielded audio cable between the transceiver MIC input and the soundcard LINE OUT jack through a 40 db attenuator, consisting of a 100K series resistor feeding a 1K parallel resistor. This attenuator will reduce the soundcard LINE OUT level from about 1 Volt down to the normal MIC input level of about 10 millivolts, so the higher soundcard output level does not overdrive and distort the transceiver MIC input.

If the transceiver is equipped with a high-level auxiliary input, then the attenuator is unnecessary, and the transceiver auxiliary input may be connected directly by shielded cable to the soundcard LINE OUT. If using the auxiliary input of the transceiver, be sure the transceiver microphone is disabled when operating PSK31, to prevent illegal modulation of the transceiver in the CW band by sounds picked up by the microphone!

T/R Connection

The transceiver’s VOX can theoretically be used to control the transmit/receive function, however it is often difficult to adjust for reliable operation while still maintaining the proper audio levels needed to preserve an undistorted PSK output signal. For this reason, Digipan provides for positive control of the transceiver’s PTT via the RTS and/or DTR  outputs of the computer’s RS-232 serial port.

Signal	DB9 Connector	DB25 Connector
RTS	Pin-7	Pin-4
DTR	Pin-4	Pin-20
Ground	Pin-5	Pin-7
The RTS and DTR outputs of the serial port are not directly compatible with the PTT control of most transceivers. The serial port outputs +12 to +15 VDC for transmit and –12  to –15 VDC for  the receive condition. Transceiver PTT circuits on the other hand, generally require a ground for transmit and an open circuit for receive. For most modern solid-state transceivers, a simple NPN switching transistor (2N2222 or equivalent), with a  2.2K resistor inserted in series between the base and the serial port, emitter connected to ground, a diode connected between the base and emitter (to prevent the –12 to –15 VDC from reaching the transistor), and the collector to the transceiver PTT line will suffice.

Connect a cable from the computer RS-232 connector to the transceiver PTT line, through a switching transistor as described above, using pin 7 or pin 4 if a DB-9 (small) connector, or pin 4 or pin 20, if a DB-25 connector (large).

In case there is no voltage available at the transceiver PTT input, try connecting the coil of a 12 volt, 1020 ohm, sensitive reed relay between ground and the output of the RS-232 connector, with a small signal silicon diode in series with the RTS or DTR output and the relay coil, cathode to the coil, and using the relay contacts to operate the transceiver PTT input. Also connect a small signal silicon diode in parallel with the reed relay coil, with the anode connected to the ground, in order to absorb any "inductive kick", or transient, created by the relay coil when de-engergized.

Transceiver PTT operation can also be switched manually if necessary.

Software Adjustment

After connecting the RS-232 port to the transceiver, the correct serial port must be selected in DigiPan, under Configure/Serial Port, and the "RTS as PTT" or "DTR as PTT" box checked. Since the internal modem, or other device, of the computer may be using one of the serial ports, it is necessary to physically connect to an unused serial port and then select that same serial port in DigiPan. DigiPan will send a PTT signal to either RTS or DTR, or both, so either one can be used for PTT. However, your cable wiring must agree with your PTT selection.

Troubleshooting

In some installations, ground loops on receive or transmit, or RF feedback on transmit, may cause problems in reception or transmission. In these cases, it is sometimes helpful to isolate one of both of the audio lines connecting the transceiver and the soundcard with a 1:1 audio isolation transformer to break the ground loops or even help keep unwanted RF out of the audio lines. Feeding the audio lines through small ferrite beads as RF chokes is often helpful in reducing feedback caused by RF on the lines.

Sometimes, simply muting the Microphone and Line inputs on the Windows Volume Control panel, which controls the sound fed to the computer speakers, is enough to stop audio feedback. In this case, never mute the Volume or Wave level controls, or the soundcard audio that is generated for transmitting will be shut off. Only mute the Microphone and Line controls, which will then make it necessary to use the transceiver audio system for monitoring the band by ear, as the receiver sound will no longer be passed to the computer speakers. However, since DigiPan is a visual method of reception, actually hearing what is happening on the band is only seldom necessary.


Setup

General setup:

Connect your transceiver to the soundcard and a serial port (for T/R switching) as described in Equipment Setup.

Under Configure/Personal Data, enter your Call, the Name you use on the air, and your QTH. Fill in the CW ID information and check Use CW ID  if you want to activate it.

Under Configure/Waterfall drive, adjust the appropriate Windows Recording Control level controls for a speckled blue background on the Spectrum Window, which is the window on the bottom of the DigiPan screen with the calibrated scale across the top, as described in Setup. If you are using Windows 95, to get to the Recording Control window, select Options/Properties/Adjust volume for recording and press OK. Be sure either Microphone or Line level controls are checked for display.

Press the T/R button on the Control Bar, which is the one with the twelve buttons at the top of the DigPan screen.Under Configure/Transmitter drive, adjust the Volume and Wave level controls for undistorted RF output as described in Setup. Press the T/R button again to stop transmission and return to Receive mode.

Setting up the DigiPan dial scale to read actual transmitted RF frequency:

Under Configure/Band, mark the band you wish to be displayed on the dial scale as active, tab to the Spectrum Start box and enter the Spectrum start frequency in kHz, or kHz and tenths of kHz, and check if you want the dial scale to display the Tone frequency, USB, or LSB. If you select USB, the Spectrum start frequency to enter is the low end of the band segment you want to cover and if you select LSB, it is the upper end of the band segment. It is important to note that the Spectrum Start frequency is the "zero beat" frequency, which is the same as the transceiver dial setting, so it is suggested that the Spectrum start frequency, and accordingly the transceiver dial, be set about 0.5 kHz away from the first desired frequency of operation.

As an example, for 20 USB meter operation starting at 14070,

Enter 14069.5 as the Spectrum start frequency.

Set your transceiver dial to 14.069.5 MHz and DigiPan will tune from 14.069.5 MHz

to 14.073 MHz for you. Do not touch the transceiver dial after setting it and the DigiPan dial scale will read correctly. Assign the frequency to a memory if you have one. Use the widest IF filter available. If the IF filter is 3.5 kHz wide, stations between 14.070 and 14.0730 should be workable. If the IF filter is only 2.5 kHz wide, stations between 14.070 and 14.072 will be workable. Even though it may be possible to copy strong stations somewhat outside the filter bandwidth, attempted transmission too far from the filter passband will usually result in operation at greatly reduced power levels.

If you need to use LSB, check LSB, set the transceiver to 14.073 MHz, and the Spectrum Start frequency to 14073.0 kHz, and DigiPan will tune down 2.5 kHz or the width of the IF filter for you.

DigiPan will remember the dial scale settings you enter, so when you change band, it will usually only be necessary to select the active band and the dial scale will read correctly.

You can edit the default Band and Spectrum start frequency to any band and any frequency and the DigiPan dial scale will read correctly, as long as the frequency is entered in kHz.

Just remember to always set the Spectrum start frequency and the transceiver dial frequency to the same value and select the same sideband on each.

Feedback problems

If you experience audio feedback on Receive, try muting the Microphone and LINE inputs by checking the mute boxes on those controls on the Windows Volume Control panel, which you can access under Configure/Transmitter drive, or by double-clicking on the speaker icon in the Windows system tray. Do not mute the Volume or Wave controls, or you will not be able to transmit. You will not be able to audibly monitor the band using the computer speakers, but DigiPan uses the Recording Control panel to adjust drive to the spectrum display and will function normally. Depending upon your equipment setup, you may still be able to monitor the band using the transceiver speaker.


Transmiting PSK31
Transmitting PSK31

To transmit to a station, first tune it in. Type outgoing text in the Transmit Window, which is the smaller window between the Receive Window and the Spectrum Window. Press the T/R button, and the text in the Transmit Window will be transmitted. You can continue to type, and that text will also be transmitted. As it is being transmitted, text in the transmit Window will also appear in the Receive Window. To stop transmitting, press the T/R button again with the mouse. Pressing ESC will abort transmission and return DigiPan to receive mode, but the last several characters typed will not be transmitted. For this reason, the T/R button should be used to switch from transmit to receive.

When transmitting, the waterfall will freeze and remain frozen until returning to Receive. At that time, DigiPan will display a thin green line to mark where the previous reception had been ended.

The standard operating mode for PSK31 is called BPSK, and is sideband-insensitive, but under difficult operating conditions, communication may be improved by switching to QPSK mode. When using QPSK mode, both stations must use the same sideband.

When you are transmitting, and not typing or sending text, the Transmit Volume should be increased until the RF output power of the transceiver just stops increasing, and then reduced until the power falls to half of the amount when it just stopped increasing. This should result in maximum undistorted output power under PSK31 operation. However, some transceivers cannot handle the duty cycle of PSK31 without overheating. In this case, quickly reduce the power until the transceiver is running at the recommended power output for continuous-duty operation.

This screen capture of a DigiPan screen shows several PSK31 stations. The station to the far left is idling (not typing) and the two desired sidebands of the PSK31 signal can clearly be seen as parallel lines, with a connection between them (at the bottom of the signal), which resulted from the last character typed before idling. Also visible are two more, fainter parallel lines on each side of the solid parallel lines, which are unwanted sidebands produced by slightly overdriving the transceiver. The IMD of this signal, as displayed on the Status Bar, at idle is about -20 dB, and can already cause interference to a weak adjacent station. There is no sign of any extra, unwanted, sidebands visible on the other two stations. Although they are not very strong, they are transmitting very clean signals.

The transceiver should always be operated at a very linear power output, resulting in IMD readings of -25 dB or less, if possible, and producing no visible unwanted sidebands. IMD readings of greater than -25 dB, such as -20 dB, usually result from the transceiver being operated in a non-linear fashion, and can often be improved by merely reducing the audio drive to the transceiver from the soundcard audio output.

Text in the TX window may be edited before it is sent out with the standard Windows editing functions, except that insert is not supported. It is necessary to use the Backspace key and retype text that needs to be changed in the TX window. If the left and right arrow keys are used for the Seek function, those keys are not available for cursor movement in the TX and RX windows. To make them available, you must uncheck "Arrows for Seek" under the Options menu selection.

Lock can be used to operate what is normally referred to as "Split frequency" operation, or transmitting on one frequency and listening on another. In order to set the transmit frequency, position the cursor to the frequency where you want to transmit and Lock it there. Then move to the frequency where you want to receive or where there is a station of interest. If you see a "pileup" and want to transmit to the side of the pileup, first place your transmit frequency to the side of the "pileup", lock it, and then tune to the station generating the "pileup". With a little experimentation or experience you may find Lock useful in other ways.

Another way to use the Lock feature is to set a bookmark on a station frequency that you wish to call off-frequency. Then move to the transmit frequency you want to use and Lock the transmit frequency there. Clicking on the Bookmark will easily return you to the station's frequency. However Bookmarks only function with the diamond cursor, or for Channel A, unless the cursors have been switched.


Control Bar

The Control Bar contains twelve buttons, each associated with a keyboard Function Key, that can be used to control the operation of DigiPan. The labels on the buttons are self-explanatory, and are controlled by Macros, which can changed for each button. In the default configuration of DigiPan, the Control Bar buttons are used to automate the operation of DigiPan to reduce the need for repetitive typing.

Lookup	F1	looks up the callsign on QRZ.COM or BUCK.COM, if there is an existing Internet connection.
CQ	F2	starts transmission, sends text three times in the format, CQ CQ CQ DE KH6TY KH6TY KH6TY pse K and returns to receive
Call 3	F3	starts transmission, sends text in the format, UT2UZ UT2UZ UT2UZ DE KH6TY KH6TY KH6TY K, and returns to receive
Call	F4	starts transmission, sends text in the format, UT2UZ DE KH6TY, and waits. Usually used during a QSO.
BTU	F5	sends text in the format, BTU UT2UZ DE KH6TY K, and returns to receive
Signoff	F6	sends text in the format, 73 UT2UZ DE KH6TY SK, and returns to receive.
File	F7	sends a text file, such as a "brag" file
Brag	F8	sends a text description of the station equipment, etc.
T/R	F9	places DigiPan in transmit and transmits the contents of the Transmit Window. Pressing F9 again returns DigiPan to Receive mode
Squelch	F10	Displays the squelch level controls
Clear	F11	Clears both the multichannel display and the single channel display
Multi	F12	Toggles between multichannel display and a single channel display

The function of all the buttons that send text is to place the text in the Transmit Window for Transmitting when the T/R button is pressed. Transmit and Receive commands can be added to any button to automate switching between Transmit and Receive modes, as explained in the Macros section, and all labels and functions of these buttons can be reassigned.

Pressing the small button with the caret will change the Control Bar to display the Macro Bar in its place. Pressing it again will again display the Control Bar. However, it is not necessary for a bar to be displayed for the functions to be available through the keyboard.


Status Bar

A Status Bar is located at the bottom of the DigiPan screen. The currently active Calls, Name and number of QSO's display on the left end and the status of TX, RX, Swap, IMD, Squelch (Sq), AFC, Snap, BPSK31/QPSK31/QPSK63/FSK31, date and time are displayed on the rest of the Status Bar. Clicking on TX or RX will activate the mode, and clicking on Swap, IMD, Sq, AFC, or Snap will toggle the function and the label will be grayed out and "pushed out" when disabled. Clicking on the IMD box will freeze the IMD at the last observed value. Clicking on it again will active IMD reading again. Clicking on BPSK (PSK31) or BPSK63 will alternate between these modes of operation. When the screen printing is "squelched", or not printing because the signal is below the squelch threshold, the "Sq" on the status bar will turn red. If DigiPan appears to stop decoding, be sure the squelch threshold is not set too high. For reception of weak signals, it is usually best to turn the squelch completely off. This will result in "garbage" print some of the time, but whenever the signal becomes strong enough that copy is possible, the text will appear on the screen along with the garbage characters.

An image of the active spectrum window cursor will be displayed beside the TX and RX on the Status Bar.

IMD is a measure, in dB, of the level of the first pair of unwanted sidebands (at +/-46Hz from the center-frequency) compared to the main pair of wanted sidebands (at +/-15Hz). The readout is accurate only when the signal is idling, and at that time, the emission is actually the same two-tone signal that is used for checking the quality of SSB transmitters, and the IMD dB figure is the same as the third-order intermodulation performance figure given for SSB transmitters.

IMD readings are only accurate, and only display when the station is idling, and there is not another station very close in frequency, and when the S/N ratio of the received station is about 20 dB or greater. Typical IMD readings are -25 dB to -30 dB for a well-adjusted transceiver, and readings of -20 dB or worse indicate that the transceiver's extra sidebands can cause QRM to adjacent stations.

To record an IMD reading during ildling, click the IMD window on the status bar, and the last IMD reading measured will be displayed. If the macro <IMD> is assigned to a macro button, or included in a macro, pressing the button will display the IMD reading in the TX window. For example, if the last IMD reading was -20 dB, pressing the button will cause IMD :  -20 dB to be displayed in the TX window. Setting up such a macro button is a convenient way to report the other station's IMD reading obtained when it was idling.

Right-clicking on the status bar will display a control panel for selecting many DigiPan functions.


Macro Commands

DigiPan contains a macro language and twenty-four Macro keys, each of which is associated with one of the Function keys. Twelve are associated with F1 through F12 and another twelve associated with CTRL-F1 through CTRL-F12. When CTRL is pressed, the labels of the Control Bar momentarily change to labels for the CTRL-Function Key keys. Clicking on the small Control Bar key marked with the caret will do the same thing. A second click will again display the Control Bar buttons. DigiPan is equipped with the following Macro commands, which must be typed in all capital letters:

<TX>	Places DigiPan in Transmit mode
<RX>	Places DigiPan in Receive mode
<CALL>	The remote station's call
<MYCALL>	The Call entered in DigiPan's Personal Data dialog
<MYNAME>	The Name entered in DigiPan's Personal Data dialog
<NAME>	The Name of the remote station
<MYQTH>	The QTH entered in DigiPan's Personal Data dialog
<QTH>	The QTH of the other station
<RXANDCLEAR>	Places DigiPan in Receive mode and clears the TX window
<CLEARWINDOW>	Clears the contents of the window with the blinking cursor
<FILE>	Opens a dialog to send a text file
<TIME>	Enters the time of day
<DATE>	Enters the current date
<AFC>	Toggles the  AFC function
<SQUELCH>	Toggles the Squelch function
<SNAP>	Toggles the Snap function
<AFCON>	Switch AFC on
<AFCOFF>	Switch AFC off
<CWID>	Sends the Call entered in Personal Data in morse code
<RST>	RST for other station
<MYRST>	Your RST
<CR>	Send Carriage Return symbol
<LF>	Send Line Feed symbol
<CRLF>	Send both CR and LF
<VER>	Insert DigiPan version number
<SNAPON>	Switch SNAP on
<SNAPOFF>	Switch SNAP off
<VOLUME>	Set soundcard volume
<TUNE>	Provides a full-power carrier for tuning a transmitter
<IMD>	Reports the last saved received IMD reading
<SEEKLEFT>	Searches for next station to the left
<SEEKRIGHT>	Searches for next station to the right
<SQUELCHON>	Set squelch on
<SQUELCHOFF>	Set squelch off
<BOOKMARK>	Places or removes a bookmark at the spectrum cursor
<TXTOGGLE>	Toggles between TX and RX
<STARTSCAN>	Starts frequency scanning
<STOPSCAN>	Halts frequency scanning
<CLEARA>	Clears the contents of the top RX screen
<CLEARB>	Clears the contents of the bottom RX screen
<CLEARTX>	Clears the contents of the TX screen
<LOGBAR>	Displays or hides the Log Bar
<PHASE>	Displays or hides the Phase Scope
<STARTSCAN>	Starts the scan mode
<STOPSCAN>	Stops the scan mode
<SAVEQSO>	Save the QSO data to the log
<LOCKTX>	Lock the TX frequency at the cursor
<UNLOCKTX>	Unlock the TX frequency
<LOCKTXTOGGLE>	Lock/unlock the TX frequency
<SWAP>	Swap the active TX channel between Channel A and Channel B
<Dual>	Toggles Single/Dual channels


File

Print (CTRL-P)	 Prints the contents of the Receive window to the printer.

Print Preview	 Displays an image of the printed page.

The Print commands will be grayed out until a selection is made on the RX screen.

Print Setup	 Displays a dialog for setting printer parameters.

Send file	 Transmits the contents of a specified text file. This must be text only! Be sure to always "close" your file. The easiest way to insure this, if you create your text file in Notepad, is to always end the file by pressing the Enter key before saving it.

Save QSO data (Alt-A)	 Saves the contents of the Log bar.

Clear QSO data (Alt-L) Clears the contents of the Log bar.

Search in log file (ALT-S)	 Searches for a specified text string in the log file.

QSO details (ALT-O)	 Displays a dialog of the current Log bar QSO details.

Open RX log file	 Opens a specified receiving log file.

Close RX log file	 Closes the active receiving log file.

Save last 20 seconds  Saves the last 20 seconds of incoming audio for Sound History playback.

Import ADIF Imports a log file in ADIF format into DigiPan.

Export ADIF Exports the DigiPan log file in ADIF format.

Merge Merges a log file in ADIF format into the DigiPan log.

Exit	 Quits DigiPan


Edit

Undo (CTRL+ Z)	 Undo's last action.

Cut (CTRL + X)	 Cuts selected text and places it in the Windows clipboard.

Copy (CTRL + C)	 Copies selected text to the Windows clipboard.

Paste (CTRL +V)	 Pastes the clipboard contents at the cursor.

Insert '®' (Alt - End)	 Inserts a "return to receive" command at the cursor.


Mode

BPSK31  When checked, Binary Phase Shift Keying at 31.25 baud is received and transmitted.

BPSK63  When checked, Binary Phase Shift Keying at 62.5 baud is received and transmitted.

QPSK	 When checked, Quadrature Phase Shift Keying is received and transmitted.

PACTOR RX  When checked, pacTOR (Pactor-1) reception is enabled. PacTOR transmission is not supported.

FSK31 When checked, an experimental narrow Frequency Shift mode is activated. Use this only when in agreement with another station to use FSK31. Under certain conditions, FSK31 may provide better copy than BPSK. For experimental purposes, transmitters using non-linear amplifiers, such as Class-C amplifiers, may use FSK31 without creating unwanted sidebands, and SSB transmitters are less easily overdriven.

Inverted 	 When using a different sideband than the receiving station, this must be checked to enable Inverted QPSK.

Tune When selected, this provides a single tone at 100% modulation for tuning the transmitter or antenna tuner by means of a single carrier. Power adjustment using this Tune level should be done to accomplish an output power which about twice the power at idle if linear operation is to be accomplished. When tuning is finished, click the OK button to return to Receive mode. It is recommended that you then check the power output at idle by pressing the TX button, which should be about half the Tune power level for most linear operation, and press TX again, or press RX to return to Receive mode.

IMD Measurement When selected in Dual Channel operation, this will place an IMD flag over the triangle cursor and place Digipan in full duplex operation to enable display of the output of a receiver connected to the soundcard microphone input for observation and measurement of IMD. The microphone input of the soundcard must be selected for this mode. This IMD Measurement menu selection is not the same as measuring IMD of the received signal as reported on the status bar, but applies only to the transmitted IMD measurement.

This means that, while you are transmitting, the audio that is being sent to the transceiver, which is WAVE audio, will display at the diamond cursor frequency. If the output of another source, such as a second receiver, is fed into the soundcard Microphone input, that signal will be displayed along with the WAVE audio. This is useful for checking the quality of the transmitted signal by receiving it on a second receiver (being careful not to overload the receiver or overdrive the soundcard microphone input with the receiver audio), and observing the quality of the signal on the DigiPan spectrum display. The IMD of the signal can be measured by tuning to the signal by using the mouse and right-clicking on the signal.This will move the triangle cursor which will have an IMD flag over it to the signal and the IMD will be displayed.

The audio drive to the transmitter can be adjusted while observing the distortion of the signal being picked up by the second receiver and the appearance of unwanted sidebands can be noticed. This allows the transmitter power output and audio drive to be adjusted for an acceptable level of IMD while watching the DigiPan spectral display.

When checking off-th-air IMD in this manner, very great care must be taken to insure there is no distortion or background noise generated by the second receiver which would result in erroneous IMD readings. If a special very low sensitivity receiver is not used, such as the DigiPan IMD Detector, it is probably a good idea to remove the antenna from the second receiver and reduce the RF gain of the receiver as necessary to prevent distorting the signal being fed to the soundcard Microphone input from the second receiver. IMD readings obtained in this way will generally agree with reports from other stations, except they will usually  indicate slightly lower IMD due to the absence of noise and QRM. The spectrum window background will not be blue speckled while transmitting, but will be black, or whatever background color has been configured to.

It is important to adjust the Microphone gain control of the soundcard to keep the soundcard from being overdriven by the input to the Microphone channel, or erroneous IMD readings will result.

To check IMD in this way, the transceiver audio must be fed into the soundcard LINE input and the second receiver audio fed into the Microphone input. If the audio output level of the second receiver is very high, a resistive pad should be used to attenuate the audio fed to the Microphone input so the input itself is not distorted by overdriving.

It is easy to verify which signal on the spectral display is from the secondary receiver by simply tuning the secondary receiver slightly  and noting which signal moves on the display. The WAVE signal will not move under any conditions.

If your soundcard does not support more than one channel during full duplex operation, it will be necessary to select the Microphone channel to observe and measure IMD and then re-select the LINE channel before returning to receive in order to see received signals on the spectrum window. However, most soundcards allow any combination of channels to be active under full duplex operation.

When IMD measurement is completed, uncheck Measure IMD to return the soundcard and cursor to normal operation.

Note: Some soundcards and some computers, and even the near field radiation of some transceivers,  may produce interfering signals when trying to observe or measure IMD. These will show up as extra lines or noise on the spectral display. Tuning the secondary receiver slightly or selecting a slightly different operating frequency before attempting to measure IMD often makes it possible to avoid these interfering signals.


Options

AFC	 When this is checked, DigiPan will keep a station accurately tuned. It is recommended to keep AFC checked unless it prevents you from tuning to a desired station. Uncheck AFC if a nearby strong station makes it impossible to tune to a weaker station.

SNAP 	When Snap is checked, DigiPan will automatically find the correct tuning point for a station. Uncheck Snap if a nearby strong station makes it impossible to tune to a weaker station.

Squelch	 When this is checked, only signals above the Squelch threshold will be printed. This can be used to prevent random characters created by noise from being printed. Right-clicking on the Spectrum Window will display a Squelch Threshold control.

When the screen printing is "squelched", or not printing, because the signal is below the squelch threshold, the "Sq" on the status bar will turn red. If DigiPan appears to stop decoding, be sure the squelch threshold is not set too high. For reception of weak signals, it is usually best to turn the squelch completely off. This will result in "garbage" print some of the time, but whenever the signal becomes strong enough that copy is possible, the text will appear on the screen along with the garbage characters.

Squelch Threshold	 Making this selection will display a level control for the Squelch threshold. The threshold can be adjusted as high as possible to prevent noise from printing as random characters but still allow print of a desired station.

RX	 Selecting RX places DigiPan in the receive mode.

TX	 Selecting TX places DigiPan in the transmit mode.

Sb off	 Sb off disables the soundcard and releases it for other programs.

Arrows for Seek When this is checked, the left and right arrow keys can be used for most comfortable operation of Seek, and F11 and F12 used for other one-finger macro keys, but the arrow keys are not then available for editing the RX and TX window. Uncheck Arrows for Seek to make the left and right arrow keys available for RX and TX window editing. In this case, you might want to re-assign F11 and F12 to Seek.

When using Arrows for Seek with BPSK63, if the cursor stops on either side of the PSK63 signal, just click with the mouse in the middle of the PSK63 signal to start decoding.

Call Lookup at Selecting either QRZ.COM or HAMCALL.COM will lookup the selected call using an existing Internet connection.


View

Control Bar	 When checked, the Control Bar will be displayed. The Control Bar may be moved and repositioned (docked) by pointing to an empty area of the bar, holding the left mouse button down, moving the outline of the bar until it changes shape, and then releasing the mouse button. The usual alternate docking location for the Control Bar is just underneath the Spectrum Window.

Log Bar When checked, the Log Bar will be displayed.

Phase Scope When checked, a phase display of the received signal will be displayed at the right end of the Spectrum Window. This will display as multicolored radial lines, like spokes of a wheel, when DigiPan is not tuned to any signal. A diamond or a triangle near the display indicates the cursor signal that is being displayed. When tuned to a BPSK signal, there will be only two vertical, or nearly vertical, spokes displayed. When tuned to a QPSK signal, there will be two vertical spokes and two horizontal spokes forming a cross, and when tuned to a FSK31 signal, two horizontal spokes will be displayed.

Bookmarks When checked, bookmarks from A-Z will be displayed for multichannels labeled A-Z. When unchecked, no bookmarks will be shown, and no letter labels for the mutiple channels.

Multichannel window When checked, a window with 26 channels will appear to the right of the RX receive window. When unchecked, only a single receive window will be shown.

Status Bar  When checked, the Status Bar will be displayed.

UTC  When checked, the time displayed on the right end of the status bar will be in Universal Coordinated Time, and when unchecked, will be in local time. If the clock of the host computer is set to UTC instead of local time, the Time Zone setting under Windows needs to be set to GMT and adjustment for "daylight savings changes" disabled.

Flashing 'TX'	 When checked, the 'TX' indicator for transmit will be displayed on the status bar and will blink on and off. When unchecked, the 'TX' indicator will still be displayed, but will not blink.

Underline sent text  When checked, the text in the TX window will be underlined as it is transmitted. Transmitted text will also be echoed to the RX screen in a user-assigned color as configured under Configure/TX font color.


PSK31 and Propagation

PSK31 uses a much narrower bandwidth than any other mode used by radio-amateurs, except maybe on the VLF bands. By using only the minimum bandwidth needed to transmit the data, the signal-to-noise ratio is as high is possible, and this is why the performance is so good. But there are some situations where using very low bandwidth is not possible. For example, it would not have been a good idea thirty years ago because the frequency stability of the old VFO-controlled transmitters was not good enough. This is why the RTTY systems of those days used much wider bandwidths. Anything that introduced frequency instability will prevent us from making use of the narrow bandwidth idea.

But there is one source of frequency instability that we cannot eliminate because it is not inside our equipment. Up to now we have always assumed that if we transmit a signal on one precise frequency, it will be received on exactly the same frequency in a distant receiver. This has always been true enough for most purposes, but sometimes the ionosphere can be disturbed, by solar emissions, in a way which causes the length of the path to vary, and this introduces a frequency-modulation of all signals reflected from it. The effect on HF is sometimes called flutter fading, but it is not so much a fading effect as a slight wobble of the carrier, and hence a broadening of the spectrum of the signal.

With narrow-band PSK31 this kind of "Doppler spread" means that the ionosphere is introducing it's own "frequency instability noise" onto the signal. In these conditions any narrow bandwidth mode will suffer. It's not so much that PSK31 is not very good at handling flutter fading, but that because flutter-fading is actually a broadening of the signal spectrum, we cannot use a narrow-spectrum mode to give us a better signal-to-noise ratio when conditions are like this.

The parts of the ionosphere which are worst affected are over the north and south magnetic poles: high energy particles from solar emissions are forced along magnetic field lines and bombard the ionosphere around the poles. So paths across the polar regions are worst affected during solar events, and on the LF bands similar conditions can occur during bad solar storms on winter nights in high latitudes.

To summarise: PSK31 is so good because it uses minimum bandwidth to give maximum SNR. In most situations the propagation path is stable enough in frequency and the results are very good. Occasionally, when the sun is active, on paths which are close to the north and south poles, the frequency stability of the ionosphere gets too bad and a minimum-bandwidth system like PSK31 will suffer.


PSK31 Coding Theory

The asynchronous ASCII coding used on the original version of this system by SP9VRC, and indeed the asynchronous system used for transmission of RTTY for the last 50 years, uses one start-bit, a fixed number of data-bits, and one or more stop-bits. The start-bit is always the opposite polarity to that of the stop-bit. When no traffic is being sent the signal sits in stop polarity. This enables the receiver to start decoding as it receives the edge between the stop-signal and the start-bit, and drop back to idle when the stop bit arrives.

One disadvantage of this process is that if, during a long run of traffic, an error occurs in either a stop-bit or a start-bit, the receiver will lose synchronisation, and may take some time to get back into sync, depending on the pattern of following characters: in some situations of repeated characters the receiver can even stay in a false sync. for as long as the repeated character pattern persists.

The code used in PSK31 overcomes this problem by signalling the gap between one character and the next, not by means of the stop-start sequence which can occur in the middle of a character, but by designing the code carefully so that the sequence which marks the boundary between characters can never be mimicked inside a character. There can therefore never be a cascade of errors if the code loses synchronisation. This idea also has another advantage, in that the character-codes no longer need to be a fixed length.

If, as in normal amateur radio contacts, the traffic being sent consists of plain language, there are some characters which occur more often that others and there are some which may hardly ever be used. In morse code this is used to advantage by using short codes for the common letters and longer codes for less-common ones. In such a variable-length code, the average character rate is faster than in a code where all the characters are the same length. Or, stated in a different way, a variable-length code can be transmitted at a lower bit-rate, and therefore a lower bandwidth, and hence suffer less errors. The code used in PSK, called Varicode, works like this:

1. All characters are separated from each other by two consecutive 0 bits.

2. No character contains more than one consecutive 0 bit.

In the same way that it is obvious that all morse code characters begin and end with a "keydown" element, all characters in Varicode must begin and end with a 1, and the "00" between characters is equivalent to the letterspace in morse code.

With such a code, the receiver detects the end of one code and the beginning of the next by detecting the occurrence of a 00 pattern, and since this pattern never occurs inside a character, the "loss of sync" problem that gives trouble with asynchronous systems can never occur.

The variable-length coding used in PSK31 was chosen by collecting a large volume of English language ASCII text files and analysing them to establish the occurrence-frequency of each of the 128 ASCII characters. Next a list was made of all the binary patterns that start and end with a "one", and only ever have single "zeros" in the pattern. This list was generated by computer, starting at the shortest. The list was stopped when 128 patterns had been found. Next the list of ASCII codes, in occurrence-frequency order was matched to the list of binary patterns, in length order, so that the most frequently-occurring ASCII codes were matched to the shortest patterns. To see how well this would perform, a simple calculation was made to predict the average number of bits in typical plain language text transmitted by this code, taking into account the 00 gap between characters. The result was between 6 and 7 bits per character. This compares very favourably with 9 bits per character for the asynchronous system. The shortest character is the "space code", transmitted as a single 1. The longest is 10 bits long, or rather 12 bits since we must include the 00 separator.

In order to make sure that the receiver can regenerate the symbol timing, the logic zero state in Varicode is mapped to the "polarity reversal" state in the BPSK and QPSK modulation. In this way, when idling, there is a continuous modulation of the carrier and this amplitude modulation at the bit-rate is used in the receiver to keep in sync. The worst-case is transmission of a repeated "!" character in BPSK mode, where there will be a 9-bit period of unmodulated carrier followed by two reversals. This is enough to keep the receiver in sync, and in any case this is not a common character! In BPSK, every reversal gives a little boost to the bit-sync. process. In QPSK, even the +90 and -90 degree phase-shifts contain some amplitude modulation and there are no characters with long runs of 1's.


QPSK and Error Tolerance

The QPSK mode used in PSK31 takes the binary data-stream, at the point where it would otherwise go direct to the BPSK modulator, and feeds that through a 5-bit shift-register. A logic operation then forms the parity function of the 1st, 2nd, and 5th stages, and another forms the parity function of the 1st, 3rd, and 5th, giving two bit-streams at the same 31.25 bps rate as the original data. These two bits form a binary number, the four values of which are mapped to the four possible phase-shifts in the QPSK modulation. Thus a single data-bit from the source results in a 5-bit-long predictable sequence of 90-degree and 180 degree phase-shifts, interleaved with those of following and preceding bits.

In the receiver, a Viterbi decoder is used to keep track of all 32 possible combinations of guesses at the transmitted datastream, and a running total of how well the received pattern of phase-shifts matches each guess. The clever thing about the Viterbi decoder is that it can be sure that if it throws out the worst 16 guesses before it receives the next signal (which doubles the number of guesses to 32 again), it can never get it wrong, and after about 20 more signals it can be pretty certain that it's guess 20 signals ago was right. The snag is that it can only output it's best guess after a delay of 20 signals, or 640mS in the case of PSK31. Longer Viterbi decoders are possible, but the amount of computation doubles at each extra signal delay, and for PSK31 which is used for live QSO's the delay would be too long.