View Single Post
  #5   Report Post  
Old December 30th 03, 12:10 PM
Richard Hosking
 
Posts: n/a
Default

Wolfgang
Thanks for your reply
I am not very sophisticated mathematically and I have not studied
communication theory. Your article is most helpful. However it looks as
though it might be somewhat hard to implement in a small/slow codespace such
as a microcontroller. (It may well be impossible to do this job in such a
device.)
Still I thought I would try.
Off the top of my head I thought I would start with a hard limited audio
signal, with transitions at digital hi/low level, rather than a sampled
signal. This would obviously limit the signal to noise ratio, but I was not
planning to use this for weak signal work. The clock/demodulation algorithm
would then deal with the timing between transitions of the signal, rather
than a spectral analysis. This would be relatively simple to implement with
a timer to count the interval between transitions. The controller could
track carrier freq with a Freq Locked Loop algorithm, over a limted
range.(say 600-900 Hz) If there are no transitions or randomly timed
transitions (noise), then the controller assumes a space Similarly, the
controller tracks sending speed by timing the length of dots and dashes, and
adjusting the algorithm to track this. This length could be initially
acquired by timing an initial series of dots/dashes. The length would
presumably fall into two groups, with the shorter length being dots. The
average of these shorter "on" periods would be the bit rate. The controller
could keep a moving average of the signal, discarding any "on" periods that
are longer than say 2.0 times the current average. Finally, I would use the
bit rate to time gaps (say) 2.5 times the bit rate to separate characters
and decode them with a simple lookup table.
No doubt there are lots of problems with this approach!
I would be interetsed in your comments

Richard


Wolfgang K. Meister wrote in message
...
On Tue, 30 Dec 2003 11:49:39 +0800, "Richard Hosking"
wrote:

I am looking for ideas for a software CW decoder with ASCII output.
There are a number of programs published - what algorithms do these use

in
general?


There are two steps that you have complete: make a digital signal out
of the received analog output - and decode it.

Have a look at:
http://wwwhome.cs.utwente.nl/~ptdebo...algorithm.html

73s
OE1MWW
Wolfgang