WINMOR…A Sound Card ARQ Mode for Winlink HF Digital Messaging

Document Sample
WINMOR…A Sound Card ARQ Mode for Winlink HF Digital Messaging Powered By Docstoc
					WINMOR…A Sound Card ARQ
 Mode for Winlink HF Digital
  Rick Muething, KN6KB/AAA9WK

   PowerPoint Presentation available at
•   Today’s Objectives
•   WINMOR… A work in progress… Follow-on to SCAMP
•   Motivation… Why another sound card mode?
•   Unique requirements for a message oriented protocol
•   RF Footprint and Robustness Agility
•   Modulation schemes investigated
•   Implementation details
     – DSP processing diagram
     – Tuning, Modulation, Demodulation, Error recovery methods
     – Screen captures of the WINMOR “Virtual TNC”
     – WINMOR Movies!
•   Measurements Using the HF channel simulator
•   Preliminary Comparisons with Pactor 1, 2, and 3
•   Deployment strategy
•   Remaining work to be done
         Today’s Objectives

Provide you an update on a promising sound card mode targeted
at message systems.

Give some (within our time limits) of the technical details on how
we are approaching this.

Show some preliminary test results and “apples-to-apples”
comparisons with the defacto standard Pactor.

Encourage others to learn about and get competent in DSP as it
applies to amateur radio.

Get feedback from you on alternate approaches and suggestions
for implementation and deployment.
      Acronym Cheat Sheet!
CCIR Consultative Committee on International Radio (now The ITU-R)
WGN White Gaussian Noise (a simple HF channel model)
MPG      CCIR Multipath Good (a standard moderate HF channel model)
MPP      CCIR Multipath Poor (a standard poor HF channel model)
OFDM Orthogonal Frequency Division Multiplexing
PSK      Phase Shift Keying (carrier phase is modulated) BPSK(2), QPSK(4)
FSK      Frequency Shift Keying (frequency of the carrier is modulated)
4FSK FSK using one of 4 tones per symbol (2 bits per symbol)
QAM      Quadrature Amplitude Modulation (phase and amplitude are modulated)
16QAM Phase and Amplitude modulation with 16 states (4 bits per symbol)
FEC      Forward Error Correcting (use of error correcting codes)
MCA      Multiple Carrier Assignment (same data to multiple carriers)
RDFT Redundant Digital File Transfer (mode by Barry Sanderson, KB9VAK)
ARQ      Automatic Retry reQuest (mechanism to eliminate errors)
FFT      Fast Fourier Transform (digital method of a discrete Fourier Transform)
IFFT     Inverse Fourier Transform ( Frequency to Time transform)
NCO      Numerically Controlled Oscillator (done in software)
I, Q     The “In phase” and “Quadrature” channels of the Fourier Transform
TNC      Terminal Node Controller (RF Modem)
DSP      Digital Signal Processing
Hilbert Transform      A mathematical transform to generate I and Q
WINMOR… A work in progress
              WINMOR      =   WINlink Message Over Radio
An outgrowth of the work presented on SCAMP at DCC 2004:
SCAMP put an ARQ “wrapper” around Barry Sanderson’s RDFT then integrated
SCAMP into a Client and Server for access to the Winlink message system.

SCAMP proved it COULD be done and it worked in GOOD channels but…
      Barry’s batch oriented DLLs were slow and required frame pipelining…
               Increasing complexity and overhead
      RDFT only changed the RS encoding on it’s 8PSK multi carrier
        waveform to achieve a 3:1 range in speed/robustness… not enough
      RDFT was inefficient in Partial Frame recovery (no Memory ARQ)
      RDFT was a 2.4 KHz mode…limited to narrow HF sub bands.
      SCAMP’s Simple multi-tone ACK/NAK did not carry Session ID info
                …increasing chances of fatal cross session contamination.

WINMOR is an ARQ mode generated from the ground up to address the
limitations of SCAMP/RDFT and leverage on what was learned.
Winlink has grown over the years and expanded applications…
        Many RVers and Boaters use it for remote E-mail and weather
        Now many more adopting it for Emergency Communications:
                ARES/RACES EmComm
                UK Cadet
                Humanitarian Missions (IHS, Red Cross, Salvation Army etc)

      Emergency applications dictate special requirements:
       Station Cost is an issue:
               Limited budgets and resources…
               Seldom used (often equipment sits idle unless drills,
               training, or actual emergency)
       Consistency across multiple stations…. Training issues.
       VHF is used but HF is needed to bridge out of affected areas.
       Many with limited budgets get by with Pactor 1 and accept
               it’s throughput and robustness limitations.

What is needed and much requested is a lower cost “plug and play”
alternative to Pactor that approaches P2 and P3 performance.
          Requirements for a Message
          Oriented Sound card Protocol

  Absolute Requirements                      Wish List

Standard SSB Radio hardware                Modest OS and CPU demands
Automatic connections (no manual tuning)   200Hz, 500Hz, 2000Hz bandwidths
Error-free transmission/confirmation       Compatible with most sound cards
Fast lock for reasonable ARQ cycles        Good bits/sec/Hz ( >.5 target)
Auto adapt to wide range of HF channels    Efficient Mod/Demod for low latency
Support true binary with compression       Selective ARQ and Memory ARQ
“Loose” ARQ timing to accommodate             for throughput & robustness
   OS and sound card latency.              Near Pactor ARQ efficiency (70%)
All packets tagged with session ID         Effective busy channel detection

  When you analyze the details and make true apples-to-apples
  comparisons you quickly realize that P2 & P3 set the bar pretty high!
RF Footprint and Robustness Agility
                                   Comparison of Some Popular Modes in ARQ Environments
  Net bits/sec/Hz of BW

                          (After ARQ overhead)

                                                                                                                          1) 70% ARQ efficiency
                                                                                                                             (typical of Pactor)
                                                                                                                          2) Max RAW data rate
                                                 .5           Target For WINMOR                                              (good channel assumed)
                                                                                                                          3) 200 Hz guard band used in
                                                                                                                              bandwidth calculations.
                                                                                                                            (allows automatic connections)


                                                                                                               Pactor 3
                                                                                                    Pactor 2
                                                                                         Pactor 1
                                                                             HF Packet

A small RF foot print requires maximizing the net Bits/Sec/Hz BUT….
We ALSO must be able to adapt the modulation for more robustness
In poorer signal conditions. This “robustness agility” is why Pactor 2
and 3 perform so well across a wide range of channel conditions.
    Modulation Schemes Investigated
One of the wish list items was to offer 3 bandwidth modes to be able to operate
In the various (or future?) bandwidth segments of 200Hz, 500Hz and < 3KHz

Current FCC regulations (arguably obsolete) require a maximum HF symbol
rate of 300 symbols / sec. This eliminates high symbol rate adaptive schemes.

Improved multipath operation is obtained with lower symbol rates (< 100 Hz)

The following modes were investigate in the early development phases:

Multi carrier OFDM BPSK, QPSK @ carrier spacing = 1 x symbol rate
Multi carrier OFDM BPSK, QPSK, 16QAM at carrier spacing = 2 x symbol rate
Single and multiple carrier FSK (2 FSK and 4 FSK) at spacing 1 x symbol rate

Recently the development effort has been focused on 62.5 baud BPSK, QPSK
and 16QAM and 31.25 baud 4FSK using 1 (200 Hz), 3 (500Hz) and 15 (2000Hz)
Carriers spaced at 2 x symbol rate. These appear to offer high throughput
and robustness especially when combined with multi-level FEC coding.
    Implementation Details
WINMOR DSP Processing Diagram
          Implementation Details
    Frame Leader…Tuning and Frame ID
         Non reversed phase frame sync
         Phase reversing “Two Tone” Leader           Frame ID DBPSK
                  256 ms BPSK                        8,4 Ex Hamm Dmin = 4

                                                     Soft Decode with        4FSK
Sequential 1024 Point FFTs
                                                     distance threshold
Algorithm has good detection
sensitivity and selection
@-5dB S/N                                              Frame ID defines:
                                                               Control/Data Function
                                                               Modulation Mode
  Leader defines:
                                                               FEC Coding level
          Required NCO freq (interpolated to .1Hz)
                                                               Number of Carriers
          Initial Symbol Sync (Envelope matching)
                                                               Frame length
          Framing (Frame Sync)
          Implementation Details
      OFDM PSK, QAM DSP Modulation
The Symbol Data is used to set the Real and Imaginary
 Frequency magnitudes for each OFDM Carrier.
 e.g. Data = 0,1 (QPSK) > FReal24 = 0 FImag24 = 1 (90Deg)
                (repeat for each carrier)
        128 Point Inverse FFT (one IFFT per symbol)

  Time sample values for all carriers generated simultaneously!

   Shape Envelope (raised cosine) to bound Spectrum

                                   Convert to WAV file
                                   for Sound Card
          Implementation Details
     OFDM PSK, QAM DSP Demodulation

Use 123 point Hilbert Transform, NCO and balanced LSB Mixing to
generate I and Q samples with signal re centered on 1250.0 Hz

Perform 128 point FFT for each symbol using I and Q values

Use the Real and Imaginary frequency values for each carrier
to compute phase and amplitude for each symbol of each carrier.

Subtract phase values of prior symbol to get differential PSK symbol

For QAM use dynamic threshold adjustment to track Phasor
amplitude ratios in fading channels.

Decode Phase and Amplitude symbol to corresponding binary data
(BPSK = 1bit, QPSK=2 bits, 8PSK= 3 bits, 16QAM=4 bits)
               Implementation Details
                 FEC, Selective ARQ
WINMOR uses several mechanisms for error
recovery and redundancy:

1) FEC Data Encoding… Currently used:
    4,8 Extended Hamming Dmin = 4 (used in ACK and Frame ID)
   16 Bit CRC for data verification
   Two-level Reed-Solomon (RS) FEC for data:
        First level Weak FEC e.g. RS 140,116 (corrects 12 errors)
        Second level Strong FEC e.g. RS 254,116 ( corrects 69 errors)

2) Selective ARQ. Each carrier’s data contains a Packet Sequence
Number (PSN).
The ACK independently acknowledges each PSN so only
carriers with failed PSNs get repeated.

(the software manages all the PSN accounting and re-sequencing)
          Implementation Details
   Memory ARQ, MCA, Dynamic Threshold

3) Memory ARQ. The analog phase and amplitude of each demodulated
symbol is saved for summation (phasor averaging) over multiple
frames. Summation is cleared and restarted if max count reached.
Reed-Solomon FEC error decoding done after summation.

4) Multiple Carrier Assignment (MCA) . The same PSN can be assigned
to multiple Carriers (allows tradeoff of throughput for robustness).
Provides an automatic mechanism for frequency redundancy and
protection from interference on some carriers.

5) Dynamic threshold adjustment (used on QAM modes) helps
compensate for fading which would render QAM modes poor
in fading channels.
           Implementation Details
          The “Virtual TNC” Concept
In trying to anticipate how WINMOR might be integrated into
applications we came up with a “Virtual TNC” concept.

This essentially allows an application to integrate the WINMOR
protocol by simply treating the WINMOR code as just another TNC
and writing a driver for that TNC…. A “Virtual TNC”

Like all TNCs there are some (<10) parameters to set up:
         call sign, timing info, sound card, keying mechanism, etc

The WINMOR Software DLL can even be made to appear as a
physical TNC by “wrapping” the DLL with code that accesses it
through a virtual serial port or a TCPIP port.

Like a physical TNC WINMOR has a “front panel” with flashing
lights. But since operation is automatic with no front panel user
interaction required the WINMOR TNC can be visible or hidden.
    WINMOR “Virtual TNC”
Screen Capture: 15 Carrier QPSK                          QPSK Constellation
  Connection State                                         (heavy fading)
                     Frame Type   Bytes Received
                                                         Each pixel = 1 symbol

                                                   “+”   decoded OK
  “M” recovery after Summation
   (memory ARQ)                                2KHz waterfall
                                      “-” no decode, poor ID match
         “m” no decode, Good ID
                                          (not added to summation)
          (added to summation)
    WINMOR “Virtual TNC”
Screen Capture: 3 Carrier 16QAM
                                    16QAM Circular Constellation
                    Tuning Offset   (White Gaussian Noise @ 5dB)
Receive Level                       Each pixel = 1 symbol

                ”+” 3 Carriers              Relative decode Quality
                 decoded OK         1 KHz waterfall
      Measurement Approach
     The HF Channel Simulator
 The way to get true repeatable comparisons!

            Station 1                                Station 2
Computer & SignaLink USB Sound Card    Computer & SignaLink USB Sound Card
       WINMOR Virtual TNC                     WINMOR Virtual TNC

   SC Out                      SC In          SC Out                    SC In

                                                         CCIR Channel Options:
                    Audio In             Audio Out       S/N –5, 0, 5, 10, 15 dB
                                                         White Gaussian Noise
                                                         Multi path:
                Oregon Hardware/Software
                                                           Good, Fair, Poor
                  HF Channel Simulator                   Flat Fading:
                  (used in both directions)                Moderate, Severe
            RS232                                        Flutter
                                                        (Channels in red were
                                                        Used in simulations)
                                    Preliminary Comparisons
                                   WINMOR 200 Hz vs. Pactor 1
                                                WINMOR 200 Hz vs Pactor 1
                                                                                              WINMOR 1 Car QPSK FEC
                                                                                              WINMOR 1 Car 4FSK FEC
                             800                                                              WINMOR 1 Car 16QAM FEC
                                                                                              Pactor 1 SCS PTCII (400 Hz)
ARQ Trhoughput (bytes/min)







                                                  10dB               5dB                  0dB                  -5dB
                                                                   S/N (3 Khz Bw)
                                   Tests Run 9/2008 by Rick Muething, KN6KB
                                   Average of 4 channels (WGN, CCIR Multipath Poor, Multipath Good, Moderate Flat Fading)
                                   Throughput averaged over 5 minute period
                                   WINMOR has Ex Hamm 4,8 on ACK , RS FEC on Data
                               Preliminary Comparisons
                             WINMOR 500 Hz vs. Pactor 1,2
                                                       WINMOR 500 Hz vs P1, P2

                    3500                                                         WINMOR 3 Car QPSK FEC
                                                                                 Pactor 1 (PTC II)
                                                                                 Pactor 2 (PTC II)
                    3000                                                         WINMOR 3 Car 16QAM FEC
ARQ Throughput (bytes/min)

                                                                                 WINMOR 3 Car 4FSK FEC





                                                10dB               5dB               0dB              -5dB
                                                                  S/N (3 KHz Bw)

                              Tests Run 9/2008 by Rick Muething, KN6KB
                              Average of 4 channels (WGN, CCIR Multipath Poor, Multipath Good, Moderate Flat Fading)
                              Throughput averaged over 5 minute period
                              WINMOR has Ex Hamm 4,8 FEC on ACK, RS FEC on Data
   Preliminary Comparisons
 WINMOR 2000 Hz vs. Pactor 2,3
                         WINMOR 2000 Hz vs. Pactor 2,3
                                                                WINMOR 15 Car QPSK FEC
                                                                WINMOR 15 Car 4FSK FEC
                                                                Pactor 2
                                      15 Car
ARQ Throughput

                                                                Pactor 3

                                           WGN &



                                  10dB              5dB               0dB             -5dB
                                              S/N (3 KHz Bw)

        Tests Run 9/2008 by Rick Muething, KN6KB
        Average of 4 channels (WGN, CCIR Multipath Poor, Multipath Good, Moderate Flat Fading)
        15 Car 16QAM points averaged for WGN and Moderate Flat Fading channels only
        Throughput averaged over 5 minute period
        WINMOR has Ex Hamm 4,8 FEC on ACK, RS FEC on Data
      WINMOR Deployment Strategy
Produce the final Virtual TNC as a DLL (Graphics display is optional)

Integrate the DLL into the Paclink MP client and RMS Server programs
For full and immediate access to the WL2K system for beta testing.

Offer “Wrapper” functions to interface the WINMOR DLL via
a virtual serial port or TCP/IP port.
(allows easier access by other existing applications)

These slides and preliminary WINMOR spec will be posted on the web site.

No decision to date as to licensing or open source.
WINMOR may be released through the Amateur Radio Safety
Foundation Inc. a 501C(3) public charity corporation which
supports amateur radio emergency communications.

Estimated start of beta test (Winlink 2000 system) 3 – 6 months.
        Remaining Work to be Done
Investigate inner cyclic FEC codes for PSK data modes (1-2 dB gain?)

Optimize “gear shifting” algorithm (basic algorithm operational)

Integrate Busy Channel Detector (SCAMP ?) and ID (CW, Waterfall?)

Investigate crest factor minimization (possible 1-2 dB improvement?)

Investigate 15 Car 16QAM mode (2 Kbits/sec) for VHF/UHF applications.

Finalize WINMOR documentation and release

Document DLL interface and release

Build drivers for Paclink MP and RMS and beta test in Winlink.

Complete help and statistical logging functions
WINMOR looks promising and the testing to date confirms:

1) Sound card ARQ is possible with a modern CPU and OS
   while making acceptable CPU processing demands.
    ( CPU Loading of < 20% on a 1.5 GHz Celeron/Win XP)

2) Throughput and robustness can be adjusted automatically
to cover a wide range of bandwidth needs and channel conditions.
       (10:1 bandwidth range, 57:1 throughput range)

3) ARQ throughput in excess of .5 bits/sec/Hz is possible
in fair to good channels (.68 - .82 bits/sec/Hz measured)

4) Good ARQ efficiency ….70-75%

5) Throughput is currently competitive with P2 and P3 and
significantly better than P1
                          Thank You!

Shared By: