Git Product home page Git Product logo

cwhorse's Introduction

cwhorse

CW decoding program inspired by cwskimmer (http://www.dxatlas.com/cwskimmer/). Will decode CW in parallel on multiple streams, and display decoded text or extracted callsigns side-by-wide with a waterfall display.

Decoding will be done by a separate library, likely based on morse-wip (https://github.com/ag1le/morse-wip), which is based on FORTRAN code found in "Optimal Bayesian estimation of the state of a probabilistically mapped memory-conditional Markov process with application to manual morse decoding" by E. L. Bell, 1977 (PhD thesis).

The name CW HORSE should induce vivid images of horses sniffing the radio-frequent ground for morse signals. See fig. 1.

                    ..,,,,_          ____
                   /(\())) "-.____.-"    `-.-,
                 /''))))'                  \)))
                %()(()                       ((((
               (()(/                          |))))
              /~()) |                          (((((
             )()(/  /\                  |       ))))))
            /)(*   / `|    |           ,\     /((((((
         , )\)))  /   |   / `-.______.<  \   |  )))))
      _,,)\.~,)  /    |   |  /         `. \  \  ((((
      (()`  ``  /     |  / \ |           `.\  | (((
       |     \ /      \  | | |             )| |  ))
       |6`   |/        | | | |            / | |  '
       |    .'         | | /_(           /_(/ /
       |   |           /_(/__]           \_/_(
       \, _)          /__]                /__]
--... ...--  -.. .  .-.. .- .---- -.-  .-.. -. .---- -.-

Figure 1: A horse. 

cwhorse's People

Contributors

bjorgan avatar nickoe avatar magnemahre avatar

Watchers

Norvald H. Ryeng avatar  avatar Jens Abraham avatar Espen Molven avatar James Cloos avatar  avatar Per Kristian Fjellby avatar

cwhorse's Issues

Morse decoding

See https://github.com/ag1le/morse-wip or https://github.com/magnemahre/morse-wip. This should be good enough, at least as a start. Must be made thread-safe, and probably be included as a separate library.

Need interface for recording decoded text, and control over which parts of the text have already been obtained and displayed on the GUI. Morse decoding thread should run by itself without intervention from the rest of the program until the signal has stopped, and continuously spew letters to a buffer? Should the number of morse decoding instances be limited to a predefined number, and then assign the instances to a new signal when it appears and de-assign instances when the signal stops? Connect decoded text to the signal bin, and not the decoder instance itself?

Signal preprocessing

Initial tests showed that variations in signal amplitude causes some problems for the morse-wip decoding. This is either due to fading or intrinsic faults in the FFT transform. Identify preprocessing steps necessary for proper decoding.

GUI

GUI. Important elements:

  1. Waterfall display displaying output from radio (see issue #4)
  2. Show which FFT bins are being decoded on the waterfall display (see issue #3)
  3. Show text output from each signal (see issue #1, #2), connected somehow to the waterfall display so it is intuitive which text string corresponds to which signal. Possibly identify each signal with a callsign? Show only callsign, and require the user to click on the signal to show the actual decoded text?

User should be able to click on a signal and see the entire decoded text stream.

Implement in Qt. Try to avoid a mess. It might make more sense to implement the GUI in the very end, after resolving the other issues.

Radio <-> cwhorse interface

Implement coherent interface against sound card (?) for obtaining signal input, transform to frequency space. Send to procedures implemented by issue #3.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.