AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Morsecode erkennen

Ein Thema von any_key · begonnen am 1. Jun 2008 · letzter Beitrag vom 1. Jun 2008
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Morsecode erkennen

  Alt 1. Jun 2008, 14:53
Moin.

Für die Analyse von Morse-Code würde ich einen "Sound-Parser" mit Zustandsautomaten verwenden. Die Lexeme sind dann Pausen und Töne in den definierten Längen.

Delphi-Quellcode:
const
  WPM = 10; // words per minute
  DIT = 1200 div WPM; // short tone duration
  DAH = 3 * DIT; // long tone duration
  GAP = DIT; // bit gap
  LGAP = DAH; // letter gap
  WGAP = 7 * DIT; // word gap
  TOL = 0.1; // tolerance 10 percent

type
  TMorseCode = (
    mcSOT, // start of transmission
    mcGAP, // bit gap
    mcLGAP, // letter gap
    mcWGAP, // word gap
    mcDIT, // short tone
    mcDAH, // long tone
    mcEOT // end of transmission
  );
  
function ToneExists: Boolean;
begin
  //
end;
  
function MorseCode(isTone: Boolean; ticks: Cardinal): TMorseCode;
begin
  //
end;

procedure ReadMorseCode;
var
  nStart, nStop: Cardinal;
  wasPausing, isPausing: Boolean;
  mc: TMorseCode;
begin
  nStart := GetTickCount - DIT;
  wasPausing := True;
  mc := mcSOT;
  repeat
    isPausing := not ToneExists;
    if wasPausing xor isPausing then
    begin
      nStop := GetTickCount;
      mc := MorseCode(wasPausing, nStop - nStart);
      DoProcess(mc);
    end else
    if isPausing and ((GetTickCount - nStart) > (10 * WGAP)) then
      mc := mcEOT;
  until mc = mcEOT;
end;
Der Code ist nur eine Skizze und funktioniert so nicht, soll mehr als richtungsweisender Anstoß verstanden werden.

Grüße vom marabu
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz