Top Banner
Using DSP filtering techniques to isolate and process Morse code for both receive and transmit in the Amateur Radio bands … without a PC! by Dave Collins, AD7JT and George Heron, N2APB 16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 1
31

Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Mar 10, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Using DSP filtering techniques to isolate and process

Morse code for both receive and transmit in the

Amateur Radio bands … without a PC!

by Dave Collins, AD7JTand

George Heron, N2APB

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 1

Page 2: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Session I

– Introduction

– Transmit Channel

– Q & A

• Session II

– Receive Channel

– Results/Conclusions

– Q & A

Agenda

KeyboardScan Code

Processing

ASCII to Morse

LCD Graphic DisplayEEPROM

Macro Playback

Phase Modulator

USB Option Card

Flash Drive

Audio to

Transceiver

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character Word

Fence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 2

Page 3: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• NUE-PSK Modem = Standalone digital mode operation

… no PC required!

• Introduced ~ 4 years ago … PSK31, then other modes

• Users clamored for CW support, but …

• Classic performance problems with “CW Readers”

• NUE-PSK Modem has a “leg up”:

– DSP processing

– Nice spectral Display

WHY?

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 3

Page 4: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Modem interfaces to transceiver with modulated, base-band audio signals.

• CW is transmitted and received as SSB signals.

• Transceiver operates in SSB or Digital mode, NOT CW MODE.

• Modulation is done with on-off delivery of an audio tone.

• Received audio is digitized at 8,000 samples per second

• A Goertzel filter reconstructs the On-Off Keying signal.

• Characters are translated to ASCII and displayed

System Configuration

128 x 64

GRAPHIC

DISPLAY

PS/2 KEYBOARD

ADC

DAC

Audio Out

PTT

Audio In

ASCIIto

OOK

OOKto

ASCIIGoertzel

Filter

NUE-PSK DIGITAL MODEMdsPIC33FJ128MC706

PGA

SSB

XCVR

CWID

Encode

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 4

Page 5: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Keyboard-to-Morse conversion– Simple speed (wpm) control– “Perfect” DIT-DAH and SPACE

timing

• Tone generation with existing PSK modulator

• Goertzel filter to detect the tone

• Morse-to-ASCII conversion– Automatic speed detection & tracking– Automatic DIT-DAH weighting adjustments– Manual tweaking to accommodate imperfect “fists”

• Tuning algorithm and indication– Tune with AFC (simplifies tuning and tracks drifters)– Bandwidth control

128 x 64

GRAPHIC

DISPLAY

PS/2 KEYBOARD

ADC

DAC

Audio Out

PTT

Audio In

ASCIIto

OOK

OOKto

ASCIIGoertzel

Filter

NUE-PSK DIGITAL MODEMdsPIC33FJ128MC706

PGA

SSB

XCVR

CWID

Encode

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 5

Page 6: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

MARK --------

SPACE ----

• MARK = Key down, SPACE = Key up

• Tcw is the basic unit of timing for CW

• Inter-word SPACE = 7 x Tcw (minimum)

DASH DOTDOT DASH

- - - - 3 - - - -

Tcw

- 1 -

Tcw

Length -------- - 1 -

Tcw

- 1 -

Tcw

- - - - 3 - - - -

Tcw

- 1 -

Tcw

- 1 -

Tcw

- - - - 3 - - - -

Tcw

INTER-CHARACTER

SPACEINTER-ELEMENT SPACESC

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 6

Page 7: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Words Per Minute (wpm) calculations

– Standard word = “PARIS ”

– Contains exactly 50 Tcw including the ending Inter-word

SPACE

– Therefore, wpm = 1200 / Tcw where Tcw is expressed in

milliseconds

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 7

Page 8: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Transmit Channel

KeyboardScan Code

Processing

ASCII to

Morse

LCD Graphic

DisplayEEPROMMacro

Playback

Phase

Modulator

USB Option

CardFlash Drive

Audio to

Transceiver

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 8

Page 9: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Standard PS/2 keyboard interface

• Forced Caps Lock mode

• Upper-case letters for normal text

• Lower-case letters for prosigns

• Hot-keys for entering

<My Call> and <Their Call>

• Support for Serial Numbers

KeyboardScan Code Processing

ASCII to Morse

LCD Graphic DisplayEEPROM

Macro Playback

Phase Modulator

USB Option Card

Flash Drive

Audio to Transceiver

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 9

Page 10: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

KeyboardScan Code Processing

ASCII to Morse

LCD Graphic DisplayEEPROM

Macro Playback

Phase Modulator

USB Option Card

Flash Drive

Audio to Transceiver

• Seven, separate CW macros

• Up to 255 Characters each

• Tags for <TXON>, <MYCALL>, <THEIRCALL>, <TXOFF>, and

<SERIALNO>

• Flexible save, restore, and edit functions

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 10

Page 11: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Four lines of text are displayed with line-scrolling.

• Operator controls wpm (Tune) and side tone (Ctrl-Tune).

• Displayed characters are over lined until transmitted.

• Text is transmitted only as full words.

• Prosigns are displayed as lower-case letters.

KeyboardScan Code Processing

ASCII to Morse

LCD Graphic DisplayEEPROM

Macro Playback

Phase Modulator

USB Option Card

Flash Drive

Audio to Transceiver

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 11

Page 12: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• ASCII to Morse Look Up Table

• Each element followed by 1 Tcw SPACE

• Uses PSK CWID feature

• 8,000 output samples per second

KeyboardScan Code Processing

ASCII to Morse

LCD Graphic DisplayEEPROM

Macro Playback

Phase Modulator

USB Option Card

Flash Drive

Audio to Transceiver

10 01 10 01 11 00 00 00DASH

D

O

T

DASH

D

O

T

2

TC

W

E

N

D

0x43:

C

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 12

Page 13: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Questions?

KeyboardScan Code

Processing

ASCII to

Morse

LCD Graphic

DisplayEEPROMMacro

Playback

Phase

Modulator

USB Option

CardFlash Drive

Audio to Transceiver

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 13

Page 14: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit
Page 15: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Receive Channel

• Results/Conclusions

• Q & A

Session II

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 15

Page 16: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Receive Channel

Audio from

TransceiverPGA and

ADC

Goertzel

Filter

Mark

Grouping

Morse to

ASCII

LCD Graphic

Display

USB Option

CardFlash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 16

Page 17: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

g_coef = 2 * cos(2 * PI * center_frequency / 8000)

. . . . . . . . . . . . . . . . . .

g_sample = (((double) f_samp)/32768.0);

q0 = g_coef*q1 - q2 + g_sample;

q2 = q1;

q1 = q0;

if(++g_sample_count >= cw_n){

g_sample_count = 0;

cw_n = cw_bwa[cw_bwa_index];

g_current = q1*q1 + q2*q2 - q1*q2*g_coef;

q2 = 0;

q1 = 0;

. . . . . . . . . . . . . . . . . .

g_coeff

-1

q1

q2

q0

g_sample

• Specialized DFT algorithm

• Used for DTMF decoding

• Very simple to implement

• Very fast to execute

• f_sample is the raw, digitized input signal

• g_coef determines the pass band center

frequency

• The band pass is the sampling frequency (8000)

divided by the block length (cw_n)

• g_current is the filter output

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 17

Page 18: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Threshold defines MARK/SPACE “fence”

• Normally calculated as average

between recognized MARKs and SPACEs

• Operator can override the calculations

• Operator can select between 100

Hz and 1000 Hz in eight steps

• Narrower the pass band, the longer

the Goertzel calculation takes

Level (Threshold) Bandwidth

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 18

Page 19: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

Block Length

(cw_n)

Bandwidth

(Hz)

Time/Block

(ms)

8 1000 1.00

10 800 1.25

16 500 2.00

20 400 2.50

32 250 4.00

40 200 5.00

50 160 1.25

64 125 8.00

80 100 10.00

• Block length (cw_n) must be an

integral factor of the sampling rate

• The modem’s bandwidth is bound

by the transceiver’s bandwidth

• Tcw should be at least 4 times the

Time per Block

• Therefore:

Maximum wpm = 1200 / ( 4 x

Time/Block) [ 300 – 30 wpm ]

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 19

Page 20: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

g_coef = 2 * cos(2 * PI * center_frequency / 8000)

g_coef =

1.600102

g_coef =

1.614280

Acquire

(End)

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 20

Page 21: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• CW modulates time – not waveforms

• MARK and SPACE lengths are averaged

• Fences are calculated

• MARKs are grouped

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 21

Page 22: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• MARKs only come in two flavors

• Tcw = (MARK average) / 2

• Duplicate MARK lengths are limited

• The DIT-DAH fence is the average MARK length

plus the average mean deviation

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 22

Page 23: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• SPACEs come in three flavors

• Any SPACE ends a MARK

• When a SPACE length exceeds the character fence,

the MARK group is processed

• When a SPACE duration exceeds the word fence, a

space code is inserted in the text.

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 23

Page 24: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• The MARK Tcw is the basis for SPACE fences

• Character SPACE lengths are averaged

• Character fence = 2 x inter- element average

• Word fence = 2.5 x character fence

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 24

Page 25: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Operator can override SPACE fence calculations

• Can vary Tcw multipliers by tenths

• Will lock until Enter is pressed

• Receive continues during tweaking

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 25

Page 26: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

Index Factor ‘C’ Value

0 1 1 1

1 2 2 4

2 4 1 4

3 8 2 16

4 16 0 0

5 32 0 0

6 64 0 0

7 128 0 0

0000000000111111111122222222223

0123456789012345678901234567890

*ETIANMSURWDKGOHVF*L*PJBXCYZQ**

• Sum of products for ‘C’ = 25

• This works for 1, 2, 3, and 4 Morse elements

• Mark groups with 5, 6, 7, and 8 Morse

elements are translated with brute-force

• Prosigns are translated to two, lower-case

letters

• Group overflow generates a ‘#’

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 26

Page 27: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

Questions?

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 27

Page 28: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Goertzel filter outperforms expectations

• Tuning at the modem is a must

• Word SPACE multiple most useful tweak

• Zkew least useful tweak

• A good aid for CW contesting

• Using it to check your “fist” can be humbling

Conclusions

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 28

Page 29: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

• Keyboard-less configuration

… Paddle input to built-in keyer:

• ORed with keyboard and macro input

• ORed with Goertzel filter output

• Display-less configuration (Morse audio)

• Logging to flash drive in a standard format

• Incorporate modem functions in SDR Cube … in progress!

• More?

Future Project Candidates

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 29

The ultimate

“Portable Digital

Station”

(The original

“Portable PSK”

vision from 2001)

Page 30: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Summary

KeyboardScan Code

Processing

ASCII to Morse

LCD Graphic DisplayEEPROM

Macro Playback

Phase Modulator

USB Option Card

Flash Drive

Audio to

Transceiver

Audio from Transceiver

PGA and ADC

Goertzel Filter

Mark Grouping

Morse to ASCII

LCD Graphic Display

USB Option Card

Flash Drive

AGC Level Tune Bandpass Character WordFence TweakingGoertzel Tweaking

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 30

TransmitReceive

Page 31: Using DSP filtering techniques to isolate and … Mode for the NUE-PSK Digital Modem...Using DSP filtering techniques to isolate and process Morse code for both receive and transmit

Thank you!

16-SEP-2011 2011 TAPR-ARRL Digital Communications Conference 31

George Heron, N2APB

2419 Feather Mae Ct

Forest Hill, MD 21050

[email protected]

Dave Collins, AD7JT

22111 N San Ramon Drive

Sun City West, AZ 85375

[email protected]