Topics

A Solution To The Digital Mode Recognition Issue #Mode Recognition #mode

Tony
 

All:

Most are aware that mode identification became a necessity more than a decade ago as the number of sound card modes grew. The problem was solved early on thanks to the Reed Solomon Identifier developed by F6CTE. Yet here we are years later with more modes than ever before and we're still not using RS-ID when we should be.

It's puzzling because there are only a handful of modes that are discernible by sight and sound so we're left with dozens of variants and sub-modes that require RS-ID in order to be identified quickly and efficiently.

Prompt identification by observation is impossible because many variants share the same modem with their primary counterparts so their appearance is identical. We also have protocols that share the same modulation type which have visual and audible similarities that make it difficult to distinguish one from the other.

The solution would be to automate the process by having the TX-RSID engage by default whenever a difficult-to-decipher mode is selected. An easier approach for developers to implement might be to add a pop-up that reminds the user to engage the TX/RX ID when selecting certain modes.

It's not only bad practice not use mode ID when attempting to communicate with a protocol that's not easily recognized, it's a waste of time. It also sends the wrong message to new comers and it's certainly not the way to promote amateur radio to the public in a field day setting or at other public events.

This video explains the need for mode identifiers: https://www.youtube.com/watch?v=nwkz0GNpA0I

Tony -K2MO

Ken Meinken
 

Tony,

Good message and you are 100% correct.  Perhaps you should post it every month! And to other groups and Facebook digital groups. That might be too much effort but if you come up with a standard message, maybe we could spread the monthly distribution among a half dozen of us.

The only drawback is that RSID is not supported by all software. Perhaps you could note the popular software whick does support RSID.

73, Ken WA8JXM

On 4/15/19 6:29 PM, Tony wrote:
All:

Most are aware that mode identification became a necessity more than a decade ago as the number of sound card modes grew. The problem was solved early on thanks to the Reed Solomon Identifier developed by F6CTE. Yet here we are years later with more modes than ever before and we're still not using RS-ID when we should be.

It's puzzling because there are only a handful of modes that are discernible by sight and sound so we're left with dozens of variants and sub-modes that require RS-ID in order to be identified quickly and efficiently.

Prompt identification by observation is impossible because many variants share the same modem with their primary counterparts so their appearance is identical. We also have protocols that share the same modulation type which have visual and audible similarities that make it difficult to distinguish one from the other.

The solution would be to automate the process by having the TX-RSID engage by default whenever a difficult-to-decipher mode is selected. An easier approach for developers to implement might be to add a pop-up that reminds the user to engage the TX/RX ID when selecting certain modes.

It's not only bad practice not use mode ID when attempting to communicate with a protocol that's not easily recognized, it's a waste of time. It also sends the wrong message to new comers and it's certainly not the way to promote amateur radio to the public in a field day setting or at other public events.

This video explains the need for mode identifiers: https://www.youtube.com/watch?v=nwkz0GNpA0I

Tony -K2MO

Andrew O'Brien
 

I’ve tried and tried Tony but never been able to get people to use it .

On Apr 15, 2019, at 3:29 PM, Tony <DXDX@...> wrote:

All:

Most are aware that mode identification became a necessity more than a decade ago as the number of sound card modes grew. The problem was solved early on thanks to the Reed Solomon Identifier developed by F6CTE. Yet here we are years later with more modes than ever before and we're still not using RS-ID when we should be.

It's puzzling because there are only a handful of modes that are discernible by sight and sound so we're left with dozens of variants and sub-modes that require RS-ID in order to be identified quickly and efficiently.

Prompt identification by observation is impossible because many variants share the same modem with their primary counterparts so their appearance is identical. We also have protocols that share the same modulation type which have visual and audible similarities that make it difficult to distinguish one from the other.

The solution would be to automate the process by having the TX-RSID engage by default whenever a difficult-to-decipher mode is selected. An easier approach for developers to implement might be to add a pop-up that reminds the user to engage the TX/RX ID when selecting certain modes.

It's not only bad practice not use mode ID when attempting to communicate with a protocol that's not easily recognized, it's a waste of time. It also sends the wrong message to new comers and it's certainly not the way to promote amateur radio to the public in a field day setting or at other public events.

This video explains the need for mode identifiers: https://www.youtube.com/watch?v=nwkz0GNpA0I

Tony -K2MO






Tony
 

On 4/17/2019 5:53 PM, Andrew O'Brien wrote:
I’ve tried and tried Tony but never been able to get people to use it .
Andy:

Patrick Lindecker's implementation solves the problem by triggering
TX-RSID whenever a string of CQ's are detected within Multipsk's macros.
Common modes are excluded.

It would be beneficial if all digital mode developers would adopt this
approach. Not sure how difficult that would be in terms of code crunching.

Tony -K2MO

John Wiseman
 

Tony,

Where is the RS-ID system specified?

What is the process for allocating IDs for new modes?

73,
John G8BPQ

On 15/04/2019 23:29, Tony wrote:
All:

Most are aware that mode identification became a necessity more than a decade ago as the number of sound card modes grew. The problem was solved early on thanks to the Reed Solomon Identifier developed by F6CTE. Yet here we are years later with more modes than ever before and we're still not using RS-ID when we should be.

It's puzzling because there are only a handful of modes that are discernible by sight and sound so we're left with dozens of variants and sub-modes that require RS-ID in order to be identified quickly and efficiently.

Prompt identification by observation is impossible because many variants share the same modem with their primary counterparts so their appearance is identical. We also have protocols that share the same modulation type which have visual and audible similarities that make it difficult to distinguish one from the other.

The solution would be to automate the process by having the TX-RSID engage by default whenever a difficult-to-decipher mode is selected. An easier approach for developers to implement might be to add a pop-up that reminds the user to engage the TX/RX ID when selecting certain modes.

It's not only bad practice not use mode ID when attempting to communicate with a protocol that's not easily recognized, it's a waste of time. It also sends the wrong message to new comers and it's certainly not the way to promote amateur radio to the public in a field day setting or at other public events.

This video explains the need for mode identifiers: https://www.youtube.com/watch?v=nwkz0GNpA0I

Tony -K2MO






Patrick Lindecker
 

Hello John,

 

About the specifications

 

For information, several years ago, I wrote a technical paper about RSID and VIDEO ID (in English and French):

http://f6cte.free.fr/RS_ID_English.pdf

http://f6cte.free.fr/RS_ID_francais.pdf

 

For about RSID on Multipsk, here is a specific paper (not recent):

http://f6cte.free.fr/The_RS_ID_easy_with_Multipsk.doc

 

For Spanish users (thanks to Joaquin EA4ZB) Multipsk Identificadores Reed Solomon RS ID. Parte 1: http://youtu.be/czzgFAdMB3M Multipsk vs Fldigi Identificadores RS ID Video ID https://youtu.be/yoCtxNdPptI

 

 

About the RS ID list

 

Moreover, below is the updated list of RS ID. I manage this list. On demand, I can add a new mode to the list.

 

As it can be seen below, a RS ID appears with the code 6 (called “EXTENSION_FLDIGI”). It is introduced by a new system of extension (two sequences RS ID code) of the RSID.

 

It can be necessary to add more new modes, whereas the RS ID original list has a limited size (272 RS ID).

So, the system is the following: 13 particular RS ID are in reserve for extension RS IDs and the 70 last RS ID (of the 272 RS ID list) are in reserve for secondary RS ID use only. The secondary RS ID is sent 3 RS ID symbols (so about 0.3 seconds) after the extension RS ID.

With this system, it is now possible to manage 202+17*70=1392 RS ID instead of 272, without risk of confusion.

The first extension RS ID has the code 6. All the secondary RS ID for this extension are managed by Dave (W1HKJ), for Fldigi needs. For example, MFSK64 has the secondary RS ID code 620.

 

For programs supporting RS ID, it is necessary, on detection of an extension RS ID (EXTENSION_FLDIGI code 6 for example):

* to raise a flag (EXTENSION_FLDIGI_IN_PROGRESS ON for the example),

* to monitor during 3 seconds (1,7 seconds + margin) the secondary RS ID (let’s say the code 620 for MFSK64 in the example), which is sent about 0.3 seconds after the first one (6),

* to manage it, whether the corresponding mode is decoded by the program or not.

3 seconds after reception of the extension RS ID number 6, the flag EXTENSION_FLDIGI_IN_PROGRESS must be back to OFF.

 

The last versions of Fldigi and the last version of Multipsk support this new system (MFSK64 only for Multipsk).

 

UPDATED LIST OF RS ID

 

IF NUMBER=1 THEN MODE:='BPSK31' ELSE

IF NUMBER=2 THEN MODE:='BPSK63' ELSE

IF NUMBER=3 THEN MODE:='QPSK63' ELSE

IF NUMBER=4 THEN MODE:='BPSK125' ELSE

IF NUMBER=5 THEN MODE:='QPSK125' ELSE

IF NUMBER=7 THEN MODE:='PSKFEC31' ELSE

IF NUMBER=8 THEN MODE:='PSK10' ELSE

 

{"MT63" parameter 1 parameter 2 (parameter 1: "500", "1000" (1000 Hz) or "2000" (2000 Hz),

  parameter 2: "LG" (Long), "ST" (Short) or "VST" (Very short)

Example: MT63-1000-LG}

IF NUMBER=9 THEN MODE:='MT63-500-LG' ELSE

IF NUMBER=10 THEN MODE:='MT63-500-ST' ELSE

IF NUMBER=11 THEN MODE:='MT63-500-VST' ELSE

IF NUMBER=12 THEN MODE:='MT63-1000-LG' ELSE

IF NUMBER=13 THEN MODE:='MT63-1000-ST' ELSE

IF NUMBER=14 THEN MODE:='MT63-1000-VST' ELSE

IF NUMBER=15 THEN MODE:='MT63-2000-LG' ELSE

IF NUMBER=17 THEN MODE:='MT63-2000-ST' ELSE

IF NUMBER=18 THEN MODE:='MT63-2000-VST' ELSE

 

IF NUMBER=19 THEN MODE:='PSKAM10' ELSE

IF NUMBER=20 THEN MODE:='PSKAM31' ELSE

IF NUMBER=21 THEN MODE:='PSKAM50' ELSE

IF NUMBER=22 THEN MODE:='PSK63F' ELSE

IF NUMBER=23 THEN MODE:='PSK220F' ELSE

 

{"CHIP 64" parameter 1 (parameter 1: "64" or "128"), Example: CHIP-64}

IF NUMBER=24 THEN MODE:='CHIP-64' ELSE

IF NUMBER=25 THEN MODE:='CHIP-128' ELSE

 

IF NUMBER=26 THEN MODE:='CW' ELSE

 

{"CCW" parameter 1 parameter 2 (parameter 1: "OOK" or "FSK",

   parameter 2: "12" (12 wpm), "24" (24 wpm) or "48" (48 wpm)

  Examples: CCW-OOK-12 or CCW-FSK-24}

IF NUMBER=27 THEN MODE:='CCW-OOK-12' ELSE

IF NUMBER=28 THEN MODE:='CCW-OOK-24' ELSE

IF NUMBER=29 THEN MODE:='CCW-OOK-48' ELSE

IF NUMBER=30 THEN MODE:='CCW-FSK-12' ELSE

IF NUMBER=31 THEN MODE:='CCW-FSK-24' ELSE

IF NUMBER=33 THEN MODE:='CCW-FSK-48' ELSE

 

{Pactor1 ARQ not RX/TX in Multipsk 4.1.1}

IF NUMBER=34 THEN MODE:='PACTOR1-FEC' ELSE

 

{"PACKET" parameter 1 (parameter 1: "300" (bauds) or "1200" (bauds)),Example: PACKET-300}

IF NUMBER=35 THEN MODE:='PACKET-300' ELSE

IF NUMBER=36 THEN MODE:='PACKET-1200' ELSE

 

{"ASCII" parameter 1 (parameter 1: "7" (7 bits) or "8" (8 bits)), Example: ASCII-7}

IF NUMBER=37 THEN MODE:='ASCII-7' ELSE

IF NUMBER=38 THEN MODE:='ASCII-8' ELSE

 

{"RTTY" parameter 1 (parameter 1: "45" (45 bauds), "50" (50 bauds), "75" (75 bauds)), Example: RTTY-45}

IF NUMBER=39 THEN MODE:='RTTY-45' ELSE

IF NUMBER=40 THEN MODE:='RTTY-50' ELSE

IF NUMBER=41 THEN MODE:='RTTY-75' ELSE

 

IF NUMBER=42 THEN MODE:='AMTOR FEC' ELSE

 

{"THROB" parameter 1 (parameter 1: "1" (1 baud), "2" (2 bauds) or "4" (4 bauds)), Example: THROB-2}

IF NUMBER=43 THEN MODE:='THROB-1' ELSE

IF NUMBER=44 THEN MODE:='THROB-2' ELSE

IF NUMBER=45 THEN MODE:='THROB-4' ELSE

 

{"THROBX" parameter 1 (parameter 1: "1" (1 baud) or "2" (2 bauds)), Example: THROBX-2}

IF NUMBER=46 THEN MODE:='THROBX-1' ELSE

IF NUMBER=47 THEN MODE:='THROBX-2' ELSE

 

{"CONTESTIA" parameter 1 parameter 2 (parameter 1: "4" (4 tones),  "8" (8 tones), "16" (16 tones), "32" (32 tones), parameter 2: "250" (B=250 Hz), "500" (B=500 Hz) or "1000" (B=1000 Hz))...same parameters as OLIVIA

  Examples: CONTESTIA-32-1000 or CONTESTIA-8-500

  Note: the following are the main Contestia modes:

  CONTESTIA-4-250, CONTESTIA-4-500, CONTESTIA-8-250, CONTESTIA-8-500, CONTESTIA-16-500, CONTESTIA-16-1000, CONTESTIA-32-1000}

IF NUMBER=49 THEN MODE:='CONTESTIA-8-250' ELSE

IF NUMBER=50 THEN MODE:='CONTESTIA-16-500' ELSE

IF NUMBER=51 THEN MODE:='CONTESTIA-32-1000' ELSE

IF NUMBER=52 THEN MODE:='CONTESTIA-8-500' ELSE

IF NUMBER=53 THEN MODE:='CONTESTIA-16-1000' ELSE

IF NUMBER=54 THEN MODE:='CONTESTIA-4-500' ELSE

IF NUMBER=55 THEN MODE:='CONTESTIA-4-250' ELSE

 

IF NUMBER=56 THEN MODE:='VOICE' ELSE

IF NUMBER=57 THEN MODE:='MFSK16' ELSE

IF NUMBER=60 THEN MODE:='MFSK8' ELSE

 

{"RTTYM" parameter 1 parameter 2 (parameter 1: "4" (4 tones),  "8" (8 tones), "16" (16 tones), "32" (32 tones), parameter 2: "250" (B=250 Hz), "500" (B=500 Hz) or "1000" (B=1000 Hz))...same parameters as OLIVIA

Examples: RTTYM-32-1000 or RTTYM-8-500

Note: the following are the main RTTYM modes: RTTYM-4-250, RTTYM-4-500, RTTYM-8-250, RTTYM-8-500, RTTYM-16-500, RTTYM-16-1000, RTTYM-32-1000}

IF NUMBER=61 THEN MODE:='RTTYM-8-250' ELSE

IF NUMBER=62 THEN MODE:='RTTYM-16-500' ELSE

IF NUMBER=63 THEN MODE:='RTTYM-32-1000' ELSE

IF NUMBER=65 THEN MODE:='RTTYM-8-500' ELSE

IF NUMBER=66 THEN MODE:='RTTYM-16-1000' ELSE

IF NUMBER=67 THEN MODE:='RTTYM-4-500' ELSE

IF NUMBER=68 THEN MODE:='RTTYM-4-250' ELSE

 

{"OLIVIA" parameter 1 parameter 2 (parameter 1: "4" (4 tones),  "8" (8 tones), "16" (16 tones), "32" (32 tones), parameter 2: "250" (B=250 Hz), "500" (B=500 Hz) or "1000" (B=1000 Hz))

Examples: OLIVIA-32-1000 or OLIVIA-8-500

Note: the following are the main Olivia modes: OLIVIA-4-250, OLIVIA-4-500, OLIVIA-8-250, OLIVIA-8-500, OLIVIA-16-500, OLIVIA-16-1000, OLIVIA-32-1000}

IF NUMBER=69 THEN MODE:='OLIVIA-8-250' ELSE

IF NUMBER=70 THEN MODE:='OLIVIA-16-500' ELSE

IF NUMBER=71 THEN MODE:='OLIVIA-32-1000' ELSE

IF NUMBER=72 THEN MODE:='OLIVIA-8-500' ELSE

IF NUMBER=73 THEN MODE:='OLIVIA-16-1000' ELSE

IF NUMBER=74 THEN MODE:='OLIVIA-4-500' ELSE

IF NUMBER=75 THEN MODE:='OLIVIA-4-250' ELSE

 

IF NUMBER=76 THEN MODE:='PAX' ELSE

IF NUMBER=77 THEN MODE:='PAX2' ELSE

IF NUMBER=78 THEN MODE:='DOMINOF' ELSE

IF NUMBER=79 THEN MODE:='FAX' ELSE

{the sub-modes SSTV are automatically recognized in SSTV so no parameters are needed for SSTV}

IF NUMBER=81 THEN MODE:='SSTV' ELSE

 

{"DOMINOEX" parameter 1 and optionally parameter 2 (parameter 1: "4" (4 baud) , "5" (5 bauds),

  "8" (8 bauds), "11" (11 bauds), "16" (16 bauds), "22" (22 bauds),

  parameter 2 "" (no parameter 2 for non-FEC) or "FEC" (for FEC correction))

Example: DOMINOEX-11 or DOMINOEX-16-FEC (parameter 2 is optional)}

IF NUMBER=84 THEN MODE:='DOMINOEX-4' ELSE

IF NUMBER=85 THEN MODE:='DOMINOEX-5' ELSE

IF NUMBER=86 THEN MODE:='DOMINOEX-8' ELSE

IF NUMBER=87 THEN MODE:='DOMINOEX-11' ELSE

IF NUMBER=88 THEN MODE:='DOMINOEX-16' ELSE

IF NUMBER=90 THEN MODE:='DOMINOEX-22' ELSE

IF NUMBER=92 THEN MODE:='DOMINOEX-4-FEC' ELSE

IF NUMBER=93 THEN MODE:='DOMINOEX-5-FEC' ELSE

IF NUMBER=97 THEN MODE:='DOMINOEX-8-FEC' ELSE

IF NUMBER=98 THEN MODE:='DOMINOEX-11-FEC' ELSE

IF NUMBER=99 THEN MODE:='DOMINOEX-16-FEC' ELSE

IF NUMBER=101 THEN MODE:='DOMINOEX-22-FEC' ELSE

 

IF NUMBER=104 THEN MODE:='FELD HELL' ELSE

IF NUMBER=105 THEN MODE:='PSK HELL' ELSE

IF NUMBER=106 THEN MODE:='HELL 80' ELSE

 

{"FMHELL" parameter 1 (parameter 1: "105" (105 bauds) or "245" (245 bauds)),

Example: FMHELL-245}

IF NUMBER=107 THEN MODE:='FM HELL-105' ELSE

IF NUMBER=108 THEN MODE:='FM HELL-245' ELSE

 

IF NUMBER=110 THEN MODE:='QPSK31' ELSE

 

{"PACKET" parameter 1 (parameter 1: "110" (bauds),Example: PACKET-110}

IF NUMBER=113 THEN MODE:='PACKET-110' ELSE

 

IF NUMBER=114 THEN MODE:='141A' ELSE

 

IF NUMBER=116 THEN MODE:='OLIVIA-8-1000' ELSE

IF NUMBER=117 THEN MODE:='CONTESTIA-8-1000' ELSE

IF NUMBER=119 THEN MODE:='RTTYM-8-1000' ELSE

 

IF NUMBER=123 THEN MODE:='DTMF' ELSE

 

IF NUMBER=125 THEN MODE:='ALE400' ELSE

 

IF NUMBER=126 THEN MODE:='BPSK250' ELSE

IF NUMBER=127 THEN MODE:='QPSK250' ELSE

 

IF NUMBER=131 THEN MODE:='FDMDV' ELSE

 

IF NUMBER=132 THEN MODE:='JT65-A' ELSE

IF NUMBER=134 THEN MODE:='JT65-B' ELSE

IF NUMBER=135 THEN MODE:='JT65-C' ELSE

 

IF NUMBER=136 THEN MODE:='THOR-4' ELSE

IF NUMBER=137 THEN MODE:='THOR-8' ELSE

IF NUMBER=138 THEN MODE:='THOR-16' ELSE

IF NUMBER=139 THEN MODE:='THOR-5' ELSE

IF NUMBER=143 THEN MODE:='THOR-11' ELSE

IF NUMBER=145 THEN MODE:='THOR-22' ELSE

 

IF NUMBER=146 THEN MODE:='THROBX-4' ELSE

 

IF NUMBER=147 THEN MODE:='MFSK32' ELSE

IF NUMBER=148 THEN MODE:='MFSK11' ELSE

IF NUMBER=152 THEN MODE:='MFSK22' ELSE

 

IF NUMBER=153 THEN MODE:='CALL ID' ELSE

 

{"PACKET" parameter 1 (parameter 1: "PSKbauds")}

IF NUMBER=155 THEN MODE:='PACKET-PSK1200' ELSE

IF NUMBER=156 THEN MODE:='PACKET-PSK250' ELSE

IF NUMBER=159 THEN MODE:='PACKET-PSK63' ELSE

 

IF NUMBER=163 THEN MODE:='OLIVIA-8-125' ELSE

IF NUMBER=169 THEN MODE:='CONTESTIA-8-125' ELSE

IF NUMBER=170 THEN MODE:='RTTYM-8-125' ELSE

 

{MIL-STD-188-110A in asynchronous format 8N1 (8 data bits, no parity, 1 stop bit)}

IF NUMBER=172 THEN MODE:='110A-8N1' ELSE

 

IF NUMBER=173 THEN MODE:='BPSK500' ELSE

 

{ "PSK Robust" or "PSKR" in short}

IF NUMBER=183 THEN MODE:='PSK125R' ELSE

IF NUMBER=186 THEN MODE:='PSK250R' ELSE

IF NUMBER=187 THEN MODE:='PSK500R' ELSE

 

{"PACKET" PSK at 31 bauds (parameter 1: "PSKbauds")}

IF NUMBER=189 THEN MODE:='PACKET-PSK31' ELSE

 

{Contestia modes for UHF and emergency communications }

IF NUMBER=191 THEN MODE:='CONTESTIA-64-2000' ELSE

IF NUMBER=193 THEN MODE:='CONTESTIA-64-1000' ELSE

IF NUMBER=194 THEN MODE:='CONTESTIA-64-500' ELSE

IF NUMBER=201 THEN MODE:='CONTESTIA-32-2000' ELSE

 

{additive Olivia and Contestia modes}

IF NUMBER=203 THEN MODE:='OLIVIA-4-125' ELSE

IF NUMBER=204 THEN MODE:='CONTESTIA-4-125' ELSE

IF NUMBER=211 THEN MODE:='OLIVIA-64-2000' ELSE

IF NUMBER=214 THEN MODE:='OLIVIA-8-2000' ELSE

IF NUMBER=221 THEN MODE:='OLIVIA-32-2000' ELSE

IF NUMBER=229 THEN MODE:='OLIVIA-4-1000' ELSE

IF NUMBER=234 THEN MODE:='OLIVIA-16-2000' ELSE

IF NUMBER=238 THEN MODE:='OLIVIA-4-2000' ELSE

IF NUMBER=247 THEN MODE:='CONTESTIA-8-2000' ELSE

IF NUMBER=254 THEN MODE:='CONTESTIA-4-2000' ELSE

IF NUMBER=255 THEN MODE:='CONTESTIA-4-1000' ELSE

IF NUMBER=259 THEN MODE:='CONTESTIA-16-2000' ELSE

IF NUMBER=261 THEN MODE:='CONTESTIA-128-2000' ELSE

 

{mode Lentus}

IF NUMBER=262 THEN MODE:='LENTUS' ELSE

 

{modes AUTEX}

IF NUMBER=266 THEN MODE:='AUTEX2' ELSE

IF NUMBER=267 THEN MODE:='AUTEX4' ELSE

IF NUMBER=268 THEN MODE:='AUTEX7' ELSE

IF NUMBER=271 THEN MODE:='AUTEX13' ELSE

 

{Extension of RSID, for a two sequences RSID code}

IF NUMBER=6 THEN MODE:='EXTENSION_FLDIGI';

 

 

73

Patrick

 

 

-----Message d'origine-----
De : main@digitalradio.groups.io [mailto:main@digitalradio.groups.io] De la part de John Wiseman
Envoyé : jeudi 18 avril 2019 09:40
À : main@digitalradio.groups.io
Objet : Re: [digitalradio] A Solution To The Digital Mode Recognition Issue #Mode Recognition

 

Tony,

 

Where is the RS-ID system specified?

 

What is the process for allocating IDs for new modes?

 

73,

John G8BPQ

 

 

On 15/04/2019 23:29, Tony wrote:

> All:

> Most are aware that mode identification became a necessity more than a

> decade ago as the number of sound card modes grew. The problem was

> solved early on thanks to the Reed Solomon Identifier developed by

> F6CTE. Yet here we are years later with more modes than ever before

> and we're still not using RS-ID when we should be.

> It's puzzling because there are only a handful of modes that are

> discernible by sight and sound so we're left with dozens of variants

> and sub-modes that require RS-ID in order to be identified quickly and

> efficiently.

> Prompt identification by observation is impossible because many

> variants share the same modem with their primary counterparts so their

> appearance is identical. We also have protocols that share the same

> modulation type which have visual and audible similarities that make

> it difficult to distinguish one from the other.

> The solution would be to automate the process by having the TX-RSID

> engage by default whenever a difficult-to-decipher mode is selected.

> An easier approach for developers to implement might be to add a

> pop-up that reminds the user to engage the TX/RX ID when selecting

> certain modes.

> It's not only bad practice not use mode ID when attempting to

> communicate with a protocol that's not easily recognized, it's a waste

> of time. It also sends the wrong message to new comers and it's

> certainly not the way to promote amateur radio to the public in a

> field day setting or at other public events.

> This video explains the need for mode identifiers:

> https://www.youtube.com/watch?v=nwkz0GNpA0I

> Tony -K2MO

>

 

 




Avast logo

L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
www.avast.com


John Wiseman
 

Thanks, Patrick.

 

I’ll have a look at that.

 

73,

John

 


From: main@digitalradio.groups.io [mailto:main@digitalradio.groups.io] On Behalf Of Patrick Lindecker
Sent: 18 April 2019 09:45
To: main@digitalradio.groups.io
Subject: Re: [digitalradio] A Solution To The Digital Mode Recognition Issue #Mode Recognition

 

Hello John,

 

About the specifications

 

For information, several years ago, I wrote a technical paper about RSID and VIDEO ID (in English and French):

http://f6cte.free.fr/RS_ID_English.pdf

http://f6cte.free.fr/RS_ID_francais.pdf

 

For about RSID on Multipsk, here is a specific paper (not recent):

http://f6cte.free.fr/The_RS_ID_easy_with_Multipsk.doc

 

For Spanish users (thanks to Joaquin EA4ZB) Multipsk Identificadores Reed Solomon RS ID. Parte 1: http://youtu.be/czzgFAdMB3M Multipsk vs Fldigi Identificadores RS ID Video ID https://youtu.be/yoCtxNdPptI

 

 

About the RS ID list

 

Moreover, below is the updated list of RS ID. I manage this list. On demand, I can add a new mode to the list.

 

As it can be seen below, a RS ID appears with the code 6 (called “EXTENSION_FLDIGI”). It is introduced by a new system of extension (two sequences RS ID code) of the RSID.

 

It can be necessary to add more new modes, whereas the RS ID original list has a limited size (272 RS ID).

So, the system is the following: 13 particular RS ID are in reserve for extension RS IDs and the 70 last RS ID (of the 272 RS ID list) are in reserve for secondary RS ID use only. The secondary RS ID is sent 3 RS ID symbols (so about 0.3 seconds) after the extension RS ID.

With this system, it is now possible to manage 202+17*70=1392 RS ID instead of 272, without risk of confusion.

The first extension RS ID has the code 6. All the secondary RS ID for this extension are managed by Dave (W1HKJ), for Fldigi needs. For example, MFSK64 has the secondary RS ID code 620.

 

For programs supporting RS ID, it is necessary, on detection of an extension RS ID (EXTENSION_FLDIGI code 6 for example):

* to raise a flag (EXTENSION_FLDIGI_IN_PROGRESS ON for the example),

* to monitor during 3 seconds (1,7 seconds + margin) the secondary RS ID (let’s say the code 620 for MFSK64 in the example), which is sent about 0.3 seconds after the first one (6),

* to manage it, whether the corresponding mode is decoded by the program or not.

3 seconds after reception of the extension RS ID number 6, the flag EXTENSION_FLDIGI_IN_PROGRESS must be back to OFF.

 

The last versions of Fldigi and the last version of Multipsk support this new system (MFSK64 only for Multipsk).

 

UPDATED LIST OF RS ID

 

IF NUMBER=1 THEN MODE:='BPSK31' ELSE

IF NUMBER=2 THEN MODE:='BPSK63' ELSE

IF NUMBER=3 THEN MODE:='QPSK63' ELSE

IF NUMBER=4 THEN MODE:='BPSK125' ELSE

IF NUMBER=5 THEN MODE:='QPSK125' ELSE

IF NUMBER=7 THEN MODE:='PSKFEC31' ELSE

IF NUMBER=8 THEN MODE:='PSK10' ELSE

 

{"MT63" parameter 1 parameter 2 (parameter 1: "500", "1000" (1000 Hz) or "2000" (2000 Hz),

  parameter 2: "LG" (Long), "ST" (Short) or "VST" (Very short)

Example: MT63-1000-LG}

IF NUMBER=9 THEN MODE:='MT63-500-LG' ELSE

IF NUMBER=10 THEN MODE:='MT63-500-ST' ELSE

IF NUMBER=11 THEN MODE:='MT63-500-VST' ELSE

IF NUMBER=12 THEN MODE:='MT63-1000-LG' ELSE

IF NUMBER=13 THEN MODE:='MT63-1000-ST' ELSE

IF NUMBER=14 THEN MODE:='MT63-1000-VST' ELSE

IF NUMBER=15 THEN MODE:='MT63-2000-LG' ELSE

IF NUMBER=17 THEN MODE:='MT63-2000-ST' ELSE

IF NUMBER=18 THEN MODE:='MT63-2000-VST' ELSE

 

IF NUMBER=19 THEN MODE:='PSKAM10' ELSE

IF NUMBER=20 THEN MODE:='PSKAM31' ELSE

IF NUMBER=21 THEN MODE:='PSKAM50' ELSE

IF NUMBER=22 THEN MODE:='PSK63F' ELSE

IF NUMBER=23 THEN MODE:='PSK220F' ELSE

 

{"CHIP 64" parameter 1 (parameter 1: "64" or "128"), Example: CHIP-64}

IF NUMBER=24 THEN MODE:='CHIP-64' ELSE

IF NUMBER=25 THEN MODE:='CHIP-128' ELSE

 

IF NUMBER=26 THEN MODE:='CW' ELSE

 

{"CCW" parameter 1 parameter 2 (parameter 1: "OOK" or "FSK",

   parameter 2: "12" (12 wpm), "24" (24 wpm) or "48" (48 wpm)

  Examples: CCW-OOK-12 or CCW-FSK-24}

IF NUMBER=27 THEN MODE:='CCW-OOK-12' ELSE

IF NUMBER=28 THEN MODE:='CCW-OOK-24' ELSE

IF NUMBER=29 THEN MODE:='CCW-OOK-48' ELSE

IF NUMBER=30 THEN MODE:='CCW-FSK-12' ELSE

IF NUMBER=31 THEN MODE:='CCW-FSK-24' ELSE

IF NUMBER=33 THEN MODE:='CCW-FSK-48' ELSE

 

{Pactor1 ARQ not RX/TX in Multipsk 4.1.1}

IF NUMBER=34 THEN MODE:='PACTOR1-FEC' ELSE

 

{"PACKET" parameter 1 (parameter 1: "300" (bauds) or "1200" (bauds)),Example: PACKET-300}

IF NUMBER=35 THEN MODE:='PACKET-300' ELSE

IF NUMBER=36 THEN MODE:='PACKET-1200' ELSE

 

{"ASCII" parameter 1 (parameter 1: "7" (7 bits) or "8" (8 bits)), Example: ASCII-7}

IF NUMBER=37 THEN MODE:='ASCII-7' ELSE

IF NUMBER=38 THEN MODE:='ASCII-8' ELSE

 

{"RTTY" parameter 1 (parameter 1: "45" (45 bauds), "50" (50 bauds), "75" (75 bauds)), Example: RTTY-45}

IF NUMBER=39 THEN MODE:='RTTY-45' ELSE

IF NUMBER=40 THEN MODE:='RTTY-50' ELSE

IF NUMBER=41 THEN MODE:='RTTY-75' ELSE

 

IF NUMBER=42 THEN MODE:='AMTOR FEC' ELSE

 

{"THROB" parameter 1 (parameter 1: "1" (1 baud), "2" (2 bauds) or "4" (4 bauds)), Example: THROB-2}

IF NUMBER=43 THEN MODE:='THROB-1' ELSE

IF NUMBER=44 THEN MODE:='THROB-2' ELSE

IF NUMBER=45 THEN MODE:='THROB-4' ELSE

 

{"THROBX" parameter 1 (parameter 1: "1" (1 baud) or "2" (2 bauds)), Example: THROBX-2}

IF NUMBER=46 THEN MODE:='THROBX-1' ELSE

IF NUMBER=47 THEN MODE:='THROBX-2' ELSE

 

{"CONTESTIA" parameter 1 parameter 2 (parameter 1: "4" (4 tones),  "8" (8 tones), "16" (16 tones), "32" (32 tones), parameter 2: "250" (B=250 Hz), "500" (B=500 Hz) or "1000" (B=1000 Hz))...same parameters as OLIVIA

  Examples: CONTESTIA-32-1000 or CONTESTIA-8-500

  Note: the following are the main Contestia modes:

  CONTESTIA-4-250, CONTESTIA-4-500, CONTESTIA-8-250, CONTESTIA-8-500, CONTESTIA-16-500, CONTESTIA-16-1000, CONTESTIA-32-1000}

IF NUMBER=49 THEN MODE:='CONTESTIA-8-250' ELSE

IF NUMBER=50 THEN MODE:='CONTESTIA-16-500' ELSE

IF NUMBER=51 THEN MODE:='CONTESTIA-32-1000' ELSE

IF NUMBER=52 THEN MODE:='CONTESTIA-8-500' ELSE

IF NUMBER=53 THEN MODE:='CONTESTIA-16-1000' ELSE

IF NUMBER=54 THEN MODE:='CONTESTIA-4-500' ELSE

IF NUMBER=55 THEN MODE:='CONTESTIA-4-250' ELSE

 

IF NUMBER=56 THEN MODE:='VOICE' ELSE

IF NUMBER=57 THEN MODE:='MFSK16' ELSE

IF NUMBER=60 THEN MODE:='MFSK8' ELSE

 

{"RTTYM" parameter 1 parameter 2 (parameter 1: "4" (4 tones),  "8" (8 tones), "16" (16 tones), "32" (32 tones), parameter 2: "250" (B=250 Hz), "500" (B=500 Hz) or "1000" (B=1000 Hz))...same parameters as OLIVIA

Examples: RTTYM-32-1000 or RTTYM-8-500

Note: the following are the main RTTYM modes: RTTYM-4-250, RTTYM-4-500, RTTYM-8-250, RTTYM-8-500, RTTYM-16-500, RTTYM-16-1000, RTTYM-32-1000}

IF NUMBER=61 THEN MODE:='RTTYM-8-250' ELSE

IF NUMBER=62 THEN MODE:='RTTYM-16-500' ELSE

IF NUMBER=63 THEN MODE:='RTTYM-32-1000' ELSE

IF NUMBER=65 THEN MODE:='RTTYM-8-500' ELSE

IF NUMBER=66 THEN MODE:='RTTYM-16-1000' ELSE

IF NUMBER=67 THEN MODE:='RTTYM-4-500' ELSE

IF NUMBER=68 THEN MODE:='RTTYM-4-250' ELSE

 

{"OLIVIA" parameter 1 parameter 2 (parameter 1: "4" (4 tones),  "8" (8 tones), "16" (16 tones), "32" (32 tones), parameter 2: "250" (B=250 Hz), "500" (B=500 Hz) or "1000" (B=1000 Hz))

Examples: OLIVIA-32-1000 or OLIVIA-8-500

Note: the following are the main Olivia modes: OLIVIA-4-250, OLIVIA-4-500, OLIVIA-8-250, OLIVIA-8-500, OLIVIA-16-500, OLIVIA-16-1000, OLIVIA-32-1000}

IF NUMBER=69 THEN MODE:='OLIVIA-8-250' ELSE

IF NUMBER=70 THEN MODE:='OLIVIA-16-500' ELSE

IF NUMBER=71 THEN MODE:='OLIVIA-32-1000' ELSE

IF NUMBER=72 THEN MODE:='OLIVIA-8-500' ELSE

IF NUMBER=73 THEN MODE:='OLIVIA-16-1000' ELSE

IF NUMBER=74 THEN MODE:='OLIVIA-4-500' ELSE

IF NUMBER=75 THEN MODE:='OLIVIA-4-250' ELSE

 

IF NUMBER=76 THEN MODE:='PAX' ELSE

IF NUMBER=77 THEN MODE:='PAX2' ELSE

IF NUMBER=78 THEN MODE:='DOMINOF' ELSE

IF NUMBER=79 THEN MODE:='FAX' ELSE

{the sub-modes SSTV are automatically recognized in SSTV so no parameters are needed for SSTV}

IF NUMBER=81 THEN MODE:='SSTV' ELSE

 

{"DOMINOEX" parameter 1 and optionally parameter 2 (parameter 1: "4" (4 baud) , "5" (5 bauds),

  "8" (8 bauds), "11" (11 bauds), "16" (16 bauds), "22" (22 bauds),

  parameter 2 "" (no parameter 2 for non-FEC) or "FEC" (for FEC correction))

Example: DOMINOEX-11 or DOMINOEX-16-FEC (parameter 2 is optional)}

IF NUMBER=84 THEN MODE:='DOMINOEX-4' ELSE

IF NUMBER=85 THEN MODE:='DOMINOEX-5' ELSE

IF NUMBER=86 THEN MODE:='DOMINOEX-8' ELSE

IF NUMBER=87 THEN MODE:='DOMINOEX-11' ELSE

IF NUMBER=88 THEN MODE:='DOMINOEX-16' ELSE

IF NUMBER=90 THEN MODE:='DOMINOEX-22' ELSE

IF NUMBER=92 THEN MODE:='DOMINOEX-4-FEC' ELSE

IF NUMBER=93 THEN MODE:='DOMINOEX-5-FEC' ELSE

IF NUMBER=97 THEN MODE:='DOMINOEX-8-FEC' ELSE

IF NUMBER=98 THEN MODE:='DOMINOEX-11-FEC' ELSE

IF NUMBER=99 THEN MODE:='DOMINOEX-16-FEC' ELSE

IF NUMBER=101 THEN MODE:='DOMINOEX-22-FEC' ELSE

 

IF NUMBER=104 THEN MODE:='FELD HELL' ELSE

IF NUMBER=105 THEN MODE:='PSK HELL' ELSE

IF NUMBER=106 THEN MODE:='HELL 80' ELSE

 

{"FMHELL" parameter 1 (parameter 1: "105" (105 bauds) or "245" (245 bauds)),

Example: FMHELL-245}

IF NUMBER=107 THEN MODE:='FM HELL-105' ELSE

IF NUMBER=108 THEN MODE:='FM HELL-245' ELSE

 

IF NUMBER=110 THEN MODE:='QPSK31' ELSE

 

{"PACKET" parameter 1 (parameter 1: "110" (bauds),Example: PACKET-110}

IF NUMBER=113 THEN MODE:='PACKET-110' ELSE

 

IF NUMBER=114 THEN MODE:='141A' ELSE

 

IF NUMBER=116 THEN MODE:='OLIVIA-8-1000' ELSE

IF NUMBER=117 THEN MODE:='CONTESTIA-8-1000' ELSE

IF NUMBER=119 THEN MODE:='RTTYM-8-1000' ELSE

 

IF NUMBER=123 THEN MODE:='DTMF' ELSE

 

IF NUMBER=125 THEN MODE:='ALE400' ELSE

 

IF NUMBER=126 THEN MODE:='BPSK250' ELSE

IF NUMBER=127 THEN MODE:='QPSK250' ELSE

 

IF NUMBER=131 THEN MODE:='FDMDV' ELSE

 

IF NUMBER=132 THEN MODE:='JT65-A' ELSE

IF NUMBER=134 THEN MODE:='JT65-B' ELSE

IF NUMBER=135 THEN MODE:='JT65-C' ELSE

 

IF NUMBER=136 THEN MODE:='THOR-4' ELSE

IF NUMBER=137 THEN MODE:='THOR-8' ELSE

IF NUMBER=138 THEN MODE:='THOR-16' ELSE

IF NUMBER=139 THEN MODE:='THOR-5' ELSE

IF NUMBER=143 THEN MODE:='THOR-11' ELSE

IF NUMBER=145 THEN MODE:='THOR-22' ELSE

 

IF NUMBER=146 THEN MODE:='THROBX-4' ELSE

 

IF NUMBER=147 THEN MODE:='MFSK32' ELSE

IF NUMBER=148 THEN MODE:='MFSK11' ELSE

IF NUMBER=152 THEN MODE:='MFSK22' ELSE

 

IF NUMBER=153 THEN MODE:='CALL ID' ELSE

 

{"PACKET" parameter 1 (parameter 1: "PSKbauds")}

IF NUMBER=155 THEN MODE:='PACKET-PSK1200' ELSE

IF NUMBER=156 THEN MODE:='PACKET-PSK250' ELSE

IF NUMBER=159 THEN MODE:='PACKET-PSK63' ELSE

 

IF NUMBER=163 THEN MODE:='OLIVIA-8-125' ELSE

IF NUMBER=169 THEN MODE:='CONTESTIA-8-125' ELSE

IF NUMBER=170 THEN MODE:='RTTYM-8-125' ELSE

 

{MIL-STD-188-110A in asynchronous format 8N1 (8 data bits, no parity, 1 stop bit)}

IF NUMBER=172 THEN MODE:='110A-8N1' ELSE

 

IF NUMBER=173 THEN MODE:='BPSK500' ELSE

 

{ "PSK Robust" or "PSKR" in short}

IF NUMBER=183 THEN MODE:='PSK125R' ELSE

IF NUMBER=186 THEN MODE:='PSK250R' ELSE

IF NUMBER=187 THEN MODE:='PSK500R' ELSE

 

{"PACKET" PSK at 31 bauds (parameter 1: "PSKbauds")}

IF NUMBER=189 THEN MODE:='PACKET-PSK31' ELSE

 

{Contestia modes for UHF and emergency communications }

IF NUMBER=191 THEN MODE:='CONTESTIA-64-2000' ELSE

IF NUMBER=193 THEN MODE:='CONTESTIA-64-1000' ELSE

IF NUMBER=194 THEN MODE:='CONTESTIA-64-500' ELSE

IF NUMBER=201 THEN MODE:='CONTESTIA-32-2000' ELSE

 

{additive Olivia and Contestia modes}

IF NUMBER=203 THEN MODE:='OLIVIA-4-125' ELSE

IF NUMBER=204 THEN MODE:='CONTESTIA-4-125' ELSE

IF NUMBER=211 THEN MODE:='OLIVIA-64-2000' ELSE

IF NUMBER=214 THEN MODE:='OLIVIA-8-2000' ELSE

IF NUMBER=221 THEN MODE:='OLIVIA-32-2000' ELSE

IF NUMBER=229 THEN MODE:='OLIVIA-4-1000' ELSE

IF NUMBER=234 THEN MODE:='OLIVIA-16-2000' ELSE

IF NUMBER=238 THEN MODE:='OLIVIA-4-2000' ELSE

IF NUMBER=247 THEN MODE:='CONTESTIA-8-2000' ELSE

IF NUMBER=254 THEN MODE:='CONTESTIA-4-2000' ELSE

IF NUMBER=255 THEN MODE:='CONTESTIA-4-1000' ELSE

IF NUMBER=259 THEN MODE:='CONTESTIA-16-2000' ELSE

IF NUMBER=261 THEN MODE:='CONTESTIA-128-2000' ELSE

 

{mode Lentus}

IF NUMBER=262 THEN MODE:='LENTUS' ELSE

 

{modes AUTEX}

IF NUMBER=266 THEN MODE:='AUTEX2' ELSE

IF NUMBER=267 THEN MODE:='AUTEX4' ELSE

IF NUMBER=268 THEN MODE:='AUTEX7' ELSE

IF NUMBER=271 THEN MODE:='AUTEX13' ELSE

 

{Extension of RSID, for a two sequences RSID code}

IF NUMBER=6 THEN MODE:='EXTENSION_FLDIGI';

 

 

73

Patrick

 

 

-----Message d'origine-----
De : main@digitalradio.groups.io [mailto:main@digitalradio.groups.io] De la part de John Wiseman
Envoyé : jeudi 18 avril 2019 09:40
À : main@digitalradio.groups.io
Objet : Re: [digitalradio] A Solution To The Digital Mode Recognition Issue #Mode Recognition

 

Tony,

 

Where is the RS-ID system specified?

 

What is the process for allocating IDs for new modes?

 

73,

John G8BPQ

 

 

On 15/04/2019 23:29, Tony wrote:

> All:

> Most are aware that mode identification became a necessity more than a

> decade ago as the number of sound card modes grew. The problem was

> solved early on thanks to the Reed Solomon Identifier developed by

> F6CTE. Yet here we are years later with more modes than ever before

> and we're still not using RS-ID when we should be.

> It's puzzling because there are only a handful of modes that are

> discernible by sight and sound so we're left with dozens of variants

> and sub-modes that require RS-ID in order to be identified quickly and

> efficiently.

> Prompt identification by observation is impossible because many

> variants share the same modem with their primary counterparts so their

> appearance is identical. We also have protocols that share the same

> modulation type which have visual and audible similarities that make

> it difficult to distinguish one from the other.

> The solution would be to automate the process by having the TX-RSID

> engage by default whenever a difficult-to-decipher mode is selected.

> An easier approach for developers to implement might be to add a

> pop-up that reminds the user to engage the TX/RX ID when selecting

> certain modes.

> It's not only bad practice not use mode ID when attempting to

> communicate with a protocol that's not easily recognized, it's a waste

> of time. It also sends the wrong message to new comers and it's

> certainly not the way to promote amateur radio to the public in a

> field day setting or at other public events.

> This video explains the need for mode identifiers:

> https://www.youtube.com/watch?v=nwkz0GNpA0I

> Tony -K2MO

>

 

 

 

 


Avast logo

L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
www.avast.com