~ubuntu-branches/ubuntu/warty/soundmodem/warty

« back to all changes in this revision

Viewing changes to newqpsk/README.newqpsk

  • Committer: Bazaar Package Importer
  • Author(s): Joop Stakenborg
  • Date: 2004-01-13 20:36:59 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040113203659-hzegsyo6xfugvs3s
Tags: 0.7-1
* New upstream release. Closes: #202450.
* New maintainer.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
NEWQPSK modem for the Usermode Soundcard Modem driver
 
2
=====================================================
 
3
 
 
4
This package implements the NEWQPSK protocol (also known as Q15X25) as
 
5
designed and defined by Pawel Jalocha, SP9VRC, <pawel.jalocha@cern.org>.
 
6
Pawel's original modem is written in Motorola 56k assembler for the
 
7
DSP56002EVM evaluation module or the Alef Null DSP Card 4. This code
 
8
is a port of the original code to C.
 
9
 
 
10
Most of the features of the original modem are implemented. The most
 
11
important feature still lacking is the support for tuning the transceiver.
 
12
The modem has been used for real life QSOs with performance comparable to
 
13
the original modem.
 
14
 
 
15
Soundmodem configuration
 
16
========================
 
17
 
 
18
There is an IMPORTANT detail in soundmodem core configuration concerning
 
19
NEWQPSK. In the "Channel Access" section one should set "TxDelay" to a
 
20
non-zero value. The actual value does not matter, the modem will ignore
 
21
it. (If your transmitter is slow and you need to compensate that then you
 
22
can increase "Tune length" as explained later.) Equally important is that
 
23
one sets "TxTail" to zero. Failing to set these will cause the NEWQPSK
 
24
modem to behave erratically.
 
25
 
 
26
The actual NEWQPSK modulator and demodulator are subject to five
 
27
configuration parameters that can be set with the `soundmodemconfig' tool:
 
28
 
 
29
  Bits per second
 
30
 
 
31
        This sets the modem raw bit rate. The available range is 1000 to
 
32
        5000. Rates 2500bps and 3000bps correspond to sample rates of
 
33
        8000sps and 9600sps in the original code respectively.
 
34
 
 
35
  Interleave depth
 
36
 
 
37
        Sets the interleave depth. Allowed range is 0...16. Zero
 
38
        disables interleaving.
 
39
 
 
40
  FEC level
 
41
 
 
42
        Sets the used error correcting code. Possible values are:
 
43
 
 
44
                0       no FEC
 
45
                1       simple (15,11) FEC
 
46
                2       BCH (15,7) FEC.
 
47
                3       Walsh (15,5) FEC
 
48
 
 
49
        Note that BCH (15,7) is NOT compatible with the original
 
50
        EVM56K modem.
 
51
 
 
52
        The FEC overhead can be calculated from the figures in
 
53
        parenthesis. For example Walsh (15,5) lowers the user data
 
54
        rate to 2500*5/15 = 833.3 bps.
 
55
 
 
56
  Tune length
 
57
 
 
58
        On modulator side this sets the length of the tune preamble
 
59
        in symbols. Allowed range is 0...64.
 
60
 
 
61
        On demodulator side this sets the minimum of received
 
62
        tune preamble symbols needed to make a tuning decision.
 
63
        Allowed range is 0...32. Zero means the demodulator will jump
 
64
        directly to waiting sync state.
 
65
 
 
66
  Sync length
 
67
 
 
68
        On modulator side this sets the length of the sync preamble
 
69
        in symbols. Allowed range is 16...64.
 
70
 
 
71
        On demodulator side this sets the minimum of received
 
72
        sync preamble symbols needed to make a symbol sync decision.
 
73
        Allowed range is 8...32.
 
74
 
 
75
More detailed configuration of the modem parameters can be done at compile
 
76
time with the modemconfig.h file in this directory. The parameters there
 
77
are not to be changed unless you know what you are doing... :)
 
78
 
 
79
NEWQPSK FEATURES
 
80
================
 
81
 
 
82
NEWQPSK modem was designed primarily with HF in mind. You are supposed to
 
83
connect it to a normal HF SSB rig. However NEWQPSK might also find some
 
84
use in VHF/UHF FM packet. As FM has no frequency ambiquity the tune
 
85
preamble can be disabled (tune length = 0). Also it might make sense to
 
86
shorten the sync preamble.
 
87
 
 
88
NEWQPSK is an AX.25 packet modem and can be used for anything regular
 
89
packet can, including TCP/IP. Here is a short list of NEWQPSK highlights:
 
90
 
 
91
  - AX.25 compatible
 
92
 
 
93
  - 15 carriers spaced by 125 Hz (150 Hz) modulated with DQPSK
 
94
    (differential 4-level phase shift keying) at 83.33 baud (100 baud)
 
95
 
 
96
  - Total raw data rate 2500 bps (3000 bps)
 
97
 
 
98
  - Two phase preamble for frequency shift correction and fast symbol
 
99
    sync. The modem can correct frequency shift up to about 100 Hz.
 
100
 
 
101
  - Forward Error Correction: three simple schemes with different levels
 
102
    of data redundancy
 
103
 
 
104
  - Time/frequency diversity (interleave) to de-localize burst errors
 
105
 
 
106
(The figures in parenthesis above are for sample rate of 9600 sps.)
 
107
 
 
108
Note that the envelope of the transmitted signal is NOT constant. The
 
109
modulation has a crest factor of about XX dB which means that with a 100W
 
110
transmitter and a power meter that reads average power you should adjust
 
111
the output reading to about YY Watts. Exceeding this will cause clipping
 
112
that will not only cause interference to other band users but also make
 
113
copy at the other end worse.
 
114
 
 
115
Also keep in mind that this is a WIDE mode (about 2000...2400Hz wide). You
 
116
should be very careful not to transmit over other band users and you
 
117
should probably keep away from the narrow band digital segments.
 
118
 
 
119
DISCLAIMER
 
120
==========
 
121
 
 
122
The sole purpose for me to write this modem implementation was to learn
 
123
about DSP in general and Pawel's novel modem in particular. I'm fairly new
 
124
to DSP and this code is mostly a result of countless hours of staring at
 
125
the original Motorola 56K assembler source and banging my head against the
 
126
wall... I can't claim I understand all aspects and every detail in the
 
127
modem. There are probably misunderstandings and errors in the code and if
 
128
you spot one, please tell me. I want to learn more. Also if you have ideas
 
129
for further development please share them with me. I have already some
 
130
ideas of my own.
 
131
 
 
132
-- 
 
133
Tomi Manninen, OH2BNS <tomi.manninen@hut.fi>