Wayne,
  This is great stuff, but....
  Suggestion for Elecraft: make a K3 panadaptor and a KW automatic, SO2R amp 
higher priorities!
  73, Andy, AE6Y
----- Original Message ----- 
From: "Terry Schieler" <terry.schie...@wirelessusa.com>
To: "'wayne burdick'" <n...@elecraft.com>; "'Dan Romanchik KB6NU'" 
<kb...@w8pgw.org>
Cc: "'Elecraft Mailing List'" <elecraft@mailman.qth.net>
Sent: Thursday, January 22, 2009 1:04 PM
Subject: Re: [Elecraft] CW copy: Wayne's solution


>
> Wayne Burdick wrote:
>
> Humans use lexicographical and semantic clues to fill in dropped CW
> characters, and computers can do the same. But this goes way beyond the
> simple signal processing used in, say, the K3's present CW decoder or
> the one used in HRD. (I studied natural language recognition in college
> and was anxious to play with either neural networks or traditional AI
> methods as the foundation for CW decoding, but my other classes got in
> the way :)
>
> One idea from the early days of AI is the so-called "blackboard" model.
> Imagine a garbled sentence on a blackboard, with various experts
> offering their opinions about what each letter and word is based on
> their specialized knowledge of word morphology, letter frequency,
> syntax, semantics, etc. You weigh these opinions based on degree of
> confidence, and once there's enough evidence for a letter or word, you
> fill it in, which in turn offers additional information to the
> highest-level expert, who might be considering the actual meaning of a
> phrase. His predictions can then strengthen the evidence for lower
> level symbols, and so on. Such methods are very algorithm-intensive,
> but might be useful for some aspects of CW stream parsing.
>
> A neural network could handle this, too, and has the advantage of
> self-organization. This is how I'd approach it (assuming unlimited free
> time--not!). You could use any of several different types of networks
> that have been proven successful at NLP (natural language processing).
>
> For example, you might take the incoming CW, break it into samples (say
> a few samples per bit at the highest code speed to be processed), shift
> the serial data representing 5 to 20 letters into a serial-to-parallel
> shift register, then feed the parallel data to the network's inputs. Or
> you could use a network with internal feedback (memory), with just one
> input, which itself could be "fuzzy" (the analog voltage from an
> envelope detector) or digital (0 or 1 depending on the output of a
> comparator, looking at the CW stream). The output might be a parallel
> binary word, perhaps ASCII, or a single output with multiple levels,
> where the voltage itself represents a symbol.
>
> To make this work, you need at least three things: an input
> representation that provides adequate context (e.g., if you want to
> decode a letter, the input should contain at least a few letters on
> either side of the target); a sufficiently complex network; and a large
> corpus of clean text with which to train the network (probably
> thousands of words, drawn from actual on-air content).
>
> One classic method of training the network involves placing known-good
> signals at the input, then comparing the desired outputs to the actual
> outputs, and "back-propagating" the resulting error through the
> network--from outputs to hidden layers to inputs--so that the network's
> nodes gradually acquire the proper "weights." Once the network has been
> trained to the point that it perfectly copies clean CW, you can then
> present it with a noisy signal stream. A well-designed network would be
> able to correct dropped CW elements or even letters if its internal
> representation is highly evolved. The network will have learned
> language-specific rules, and you don't have to know how it works,
> anymore than you know how your own brain does it.
>
> The actual implementation is left as an exercise for the reader. If you
> come up with an algorithm written in 'C', let me know and I'll try to
> port it to the K3's PIC.
>
> Wayne
> N6KR
>
>
> Sounds good, Wayne.  When can you have it done?  Upper right hand button
> would be my choice.
>
> 73 de Terry, W0FM
>
>
>
>
> _______________________________________________
> Elecraft mailing list
> Post to: Elecraft@mailman.qth.net
> You must be a subscriber to post to the list.
> Subscriber Info (Addr. Change, sub, unsub etc.):
> http://mailman.qth.net/mailman/listinfo/elecraft
>
> Help: http://mailman.qth.net/subscribers.htm
> Elecraft web page: http://www.elecraft.com 

_______________________________________________
Elecraft mailing list
Post to: Elecraft@mailman.qth.net
You must be a subscriber to post to the list.
Subscriber Info (Addr. Change, sub, unsub etc.):
 http://mailman.qth.net/mailman/listinfo/elecraft    

Help: http://mailman.qth.net/subscribers.htm
Elecraft web page: http://www.elecraft.com

Reply via email to