Linux HAM/Amateur Radio development
 help / color / mirror / Atom feed
* JT44 on Linux
@ 2002-08-14  8:55 Jonathan Naylor
  2002-08-14 11:57 ` Bob Nielsen
  2002-08-14 12:24 ` Tomi Manninen OH2BNS
  0 siblings, 2 replies; 6+ messages in thread
From: Jonathan Naylor @ 2002-08-14  8:55 UTC (permalink / raw)
  To: linux-hams

Hi Folks

Long time no see.

I am interested in writing an implementation of JT44 for Linux. JT44 is 
the data mode written by Joe Taylor K1JT for weak signal work like EME 
and things, it has become hugely popular but the software only runs 
under Windows at present. Thankfully Joe has published the 
specification of the mode allowing others to (potentially) copy it. 
There is another mode called FSK441 which is used for meteor scatter, 
but I do not aim to implement that until JT44 is operational.

It is a relatively simple mode, the transmit side is simply FSK using 
44 tones. The receive side is probably a FFT the result of which is 
used by the software to determine where the clock is and also to use 
averaging to extract the signal from the noise.

The transmit side could probably be adapted from a sound modem 
implementation that already exists, and could probably be done quite 
quickly, the receive side is more complex but there are GPL FFT display 
programs around that could be used as the basis of the receive side. Of 
course Joe has probably done a few clever things that we will in due 
course discover, however we will worry about that later.

I did send an e-mail to Joe about writing a Linux implementation, but I 
got no response, however I think that is probably down to him being a 
busy man. Perhaps once we have some software running then he may take 
more of an interest in us. Everything that I do will appear under the 
GPL of course.

Jonathan  HB9DRD/G4KLX

PS has anyone got a good circuit for interfacing a sound card into a 
radio ?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JT44 on Linux
  2002-08-14  8:55 JT44 on Linux Jonathan Naylor
@ 2002-08-14 11:57 ` Bob Nielsen
  2002-08-14 12:24 ` Tomi Manninen OH2BNS
  1 sibling, 0 replies; 6+ messages in thread
From: Bob Nielsen @ 2002-08-14 11:57 UTC (permalink / raw)
  To: linux-hams

On Wed, Aug 14, 2002 at 10:55:53AM +0200, Jonathan Naylor wrote:
> 
> PS has anyone got a good circuit for interfacing a sound card into a 
> radio ?

I don't usually recommend this as a source of accurate information, but
K4ABT has some interface diagrams on his web site,
http://www.packetradio.com.  He also sells kits and assembled
interfaces (less expensive than the others I've seen).

Bob, N7XY

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JT44 on Linux
  2002-08-14  8:55 JT44 on Linux Jonathan Naylor
  2002-08-14 11:57 ` Bob Nielsen
@ 2002-08-14 12:24 ` Tomi Manninen OH2BNS
  2002-08-14 13:05   ` Jonathan Naylor
  1 sibling, 1 reply; 6+ messages in thread
From: Tomi Manninen OH2BNS @ 2002-08-14 12:24 UTC (permalink / raw)
  To: g4klx; +Cc: linux-hams

On Wed, 14 Aug 2002, Jonathan Naylor wrote:

> I am interested in writing an implementation of JT44 for Linux. JT44 is 
> the data mode written by Joe Taylor K1JT for weak signal work like EME 
> and things, it has become hugely popular but the software only runs 
> under Windows at present. Thankfully Joe has published the 
> specification of the mode allowing others to (potentially) copy it. 
> There is another mode called FSK441 which is used for meteor scatter, 
> but I do not aim to implement that until JT44 is operational.

FWIW you could take a look at my gMFSK. While I don't claim it's
necessarily very well coded or anything, it could serve as some sort of
basis for a Linux JT44 implementation. At the least there might be some
code that can be reused.

Do you have a pointer to the mode specification. I would like to take a
look.

-- 
Tomi Manninen           Internet:  oh2bns@sral.fi
OH2BNS                  AX.25:     oh2bns@oh2rbi.fin.eu
KP20ME04                Amprnet:   oh2bns@oh2rbi.ampr.org


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JT44 on Linux
  2002-08-14 12:24 ` Tomi Manninen OH2BNS
@ 2002-08-14 13:05   ` Jonathan Naylor
  2002-08-16  6:27     ` Jason Flynn G7OCD
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Naylor @ 2002-08-14 13:05 UTC (permalink / raw)
  To: Tomi Manninen OH2BNS; +Cc: linux-hams

Hi Tomi

>  FWIW you could take a look at my gMFSK. While I don't claim it's
>  necessarily very well coded or anything, it could serve as some sort
> of basis for a Linux JT44 implementation. At the least there might be
> some code that can be reused.
>
>  Do you have a pointer to the mode specification. I would like to
> take a look.

I've downloaded the user-mode soundmodem code which includes yours, and 
will use it heavily as a basis. The AFSK modem is great as a basis for 
the TX side, in fact JT44 is simpler, no scrambling, no bit-stuffing, 
etc. From the soundmodem code I can also get the soundmodem interface 
code, the PTT interface code and probably other things also.

I will cut & paste a document into this e-mail which was the original 
JT44 specification document. A more modern description is available as 
a PDF from Joe's web pages at 
http://pulsar.princeton.edu/~joe/K1JT/WSJT222.PDF

In some ways the older description says more about the internals of the 
WSJT implementation, although the newer document has more details and 
you really need both for an implemenation. I've already started on the 
TX sidem with a simple command line based program to test some of the 
concepts. I have a friend who has JT44 receive capability who is over a 
variable 250kms 23cms path which would be an interesting test. I can 
give you the URL of a web page with .wav files of JT44 signals at 
various strengths if you are intersted.

Jonathan  HB9DRD/G4KLX


                     Development Notes on JT44
                     -------------------------
                         Joe Taylor, K1JT
                          March 28, 2002
 
I have not yet committed a technical description of the JT44 protocol
to paper.  It will be posted here as soon as it becomes available.  In
the meantime, for the curious, here are some notes on the essentials.
Some familiarity with the WSJT program will be necessary for full
understanding of what follows.
 
1.  Transmit and receive periods are nominally 30 sec each, starting
on UTC half-minutes.  JT44 is a time-synchronized communication mode,
and in WSJT the only way to transmit or receive it is to set the
program to "Auto Mode ON".
 
2. Transmit audio starts 1 second into the TX interval and lasts for
135 * 2048 samples at the 11025 Hz soundcard sampling rate, or about
25.08 seconds.
 
3. The last 3.9 seconds (minus necessary relay switching time, etc.)
of the transmit period will probably be used for a fast CW ID.  (This
function is not yet implemented in WSJT v1.9.4).  The idle time also
serves to accommodate EME propagation delays.
 
4. The message format involves 135 intervals of data transmission,
each 2048 samples long.  Of these, 69 intervals carry a synchronizing
tone at frequency 118*11025/1024=1270.5 Hz (approximately).
 
5. The remaining 66 intervals carry tones at frequencies
(120+N)*11025/1024, with 1 <= N <= 43.  The value of N conveys the
character code.  Permissible characters include the digits 0-9,
letters A-Z, and special characters .,/#?$ and <space>.  The 66
character intervals carry a 22-character message, repeated three
times.
 
6. The 69 sync-tone intervals and 66 character-tone intervals are
interleaved according to a pseudo-random pattern having the desirable
property that its auto-correlation function has a single spike at lag
zero and falls to low values everywhere else.  Detecting and aligning
with this sync-tone pattern is one of the the main "secrets" of JT44,
allowing the software to accommodate large frequency and clock errors.
 
7. At present the program synchronizes reliably with frequency errors
in the range +/- 600 Hz and clock offsets from -2 to +4 seconds.  The
time range was made asymmetrical so as to accommodate EME delays.
 
8. The cost of using about half of the transmission time for the sync
tone is approximately 1.5 dB.  This seems to be a very good compromise
in practice.  It means that transmissions will "sync up" reliably at
the receive end even when the S/N is -25 dB relative to the system
noise in a 2500 Hz bandwidth.  Note that by comparison, the minimum CW
signal strength that can be copied is about -11 dB relative to same
noise level.  JT44 can get through with solid copy whan you cannot
even hear the other station's signals.
 
9. Single letters in the 22-character message will have worse
signal-to-noise ratios than that of the sync tone by a factor equal to
the square root of 69/3, or 6.8 dB.  However, that loss can be made up
by averaging the received character-tone spectra over many 30-second
reception periods. For such incoherent averaging, each doubling of the
number of periods buys you 1.5 dB in S/N.  Four periods gets you 3 dB
improvement, 16 periods gets 6 dB, and so on. If the signal strength
remains fairly steady, these numbers mean that good copy of any
reliably synchronizable message can be achieved in about 15-20
minutes.
 
10. See also the accompanying file EXAMPLE.TXT, which describes an
example of JT44 usage.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JT44 on Linux
  2002-08-14 13:05   ` Jonathan Naylor
@ 2002-08-16  6:27     ` Jason Flynn G7OCD
  2002-08-16  7:13       ` Jonathan Naylor
  0 siblings, 1 reply; 6+ messages in thread
From: Jason Flynn G7OCD @ 2002-08-16  6:27 UTC (permalink / raw)
  To: g4klx; +Cc: Tomi Manninen OH2BNS, linux-hams

> I have a friend who has JT44 receive capability who is over a 
> variable 250kms 23cms path which would be an interesting test. 

We've been doing similar tests here, trying all the 'new' data
and weak signal modes. They're designed for EME or MS etc, and
don't cope very well with scintilations introduded by long
atmospheric distortion. They work, but if you do a waterfall,
you can see the signal spread is at least one tone wide so a
system for tropo would probably work better with less tones.
So we're thinking about a new system specifically for tropo
contacts, your ideas would be appreciated...

	Jason


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JT44 on Linux
  2002-08-16  6:27     ` Jason Flynn G7OCD
@ 2002-08-16  7:13       ` Jonathan Naylor
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Naylor @ 2002-08-16  7:13 UTC (permalink / raw)
  To: Jason Flynn G7OCD; +Cc: linux-hams

Hi Jason

>  We've been doing similar tests here, trying all the 'new' data
>  and weak signal modes. They're designed for EME or MS etc, and
>  don't cope very well with scintilations introduded by long
>  atmospheric distortion. They work, but if you do a waterfall,
>  you can see the signal spread is at least one tone wide so a
>  system for tropo would probably work better with less tones.

I remember reading that JT44 was designed for 2m (and lower) and that 
any others bands it worked on were a bonus. I know that it has been 
used on 23cms EME by a very marginal station, but I doubt it would work 
on 3cms EME where the spreading is rather large.

I think that going to 1 minute periods would also be a good step and as 
you mention going for less tones with wider spacing. To do a proper 
implementation, it would be good to have some data from the 3cms EME 
ops on what spreading is like, quantitative rather than qualitative.

>  So we're thinking about a new system specifically for tropo
>  contacts, your ideas would be appreciated...

My first priority is to get my JT44 program working, and then maybe 
FSK441 for MS work. I do think that my work could be the basis of 
better things as it uses a C++ framework that is rather flexible. I 
also make use of external libraries such as FFTW and libaudiofile to 
enable me to get round the tedious bits. BTW I am active on 6cms and 
3cms tropo work with quite an effective system.

My JT44 TX program made its first noises last night ! The timings are 
right (PTT, sound start and end, etc), but I would like a wav file of 
real JT44 sending Z's and/or 0's for me to compare. I don't have real 
JT44 here (no Windows) so I am working a little in the dark.

Just shout if you want a snapshot of the code.

>  	Jason

Jonathan  HB9DRD/G4KLX

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2002-08-16  7:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-08-14  8:55 JT44 on Linux Jonathan Naylor
2002-08-14 11:57 ` Bob Nielsen
2002-08-14 12:24 ` Tomi Manninen OH2BNS
2002-08-14 13:05   ` Jonathan Naylor
2002-08-16  6:27     ` Jason Flynn G7OCD
2002-08-16  7:13       ` Jonathan Naylor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox