Hallo,
ich würde gerne ein NF Signal (Telegrafie-Signal vom Line-Out eines
Funkgerätes) mit einem ATmega8/16 auswerten und die Abweichung von einer
vorgegebenen Frequenz +/- auf einem LCD per Balken sichtbar machen,
sodaß man den Transceiver einfach auf Schwebungsnull bringen kann.
Das Ganze sollte sich in einem Bereich von 200-1000Hz abspielen.
Da es kein sauberes Dauersignal ist, sondern nur kurze Tonimpulse, frage
ich mich, wie ich die NF aufbereiten muß, damit der ATmega damit was
sinnvolles anfangen kann?
Gruß, Heiko
Wenn die kurzen "Tonimpulse" deutlich lauter, als die sonstigen
Tonsignale aus dem Empfänger sind, brauchst du einen Komparator mit
einstellbarer Hysterese (der liefert das Tonsignal als
Rechteckschwingung, WENN es stark genug ist).
Legst du das Komparator-Ausgangssignal auf den INT0, oder INT1 vom
ATmega, kann der mit der entsprechenden Software die Frequenz erfassen,
vergleichen und die Differenz zur Anzeige bringen. Kommt kein Signal
mehr, oder ein zu schwaches Signal, kann man die Anzeige ausblenden.
Ansonsten schau mal bei
"http://elm-chan.org/works/akilcd/report_e.html".
Oder suche beim GUGEL nach "Stimmgerät diy, Selbstbau, ..."
Danke für die Tipps, ich werde mir das heute Nachmittag mal anschauen.
Die Tonsigale sind gut hörbar, aber nicht immer unbedingt deutlich
lauter, es sind natürlich auch mal Störsignale / Nachbarsignale links
und rechts vom Nutzsignal vorhanden.
Vorallem muß die Auswertung praktisch in Echtzeit erfolgen, das können
dann bei höheren Tempo schon mal 10 Impulse/Sek. sein.
Versuche mit den "üblichen" Frequenzzähler Beschaltungen schlugen
komplett fehl.
Gruß, Heiko
Je kleiner deine Abweichung zwischen Ist und Sollfrequenz, desto länger
wird die Beobachtungszeit, um die Abweichung überhaupt feststellen zu
können. Das solltest du auch bedenken.
Bei 10 Hz Abweichung must du mindestens 100 msek eher 200m sek die
Signale beobachten, um eine Periodendauer zur Frequenzmessung
feststellen zu können.
Vielleicht ist das ja der Grund, warum du mit deinen Frequenzzähler
nicht zum Ziel gekommen bist.
Es gibt da 2 Möglichkeiten:
1) Aufbereiten der Nulldurchgänge und Messen der Zeiten zwischen den
Nulldurchgängen. Als eine Art Reziprokzähler kann man da auch schon aus
einer Periode die Frequenz bestimmen. Wegen der möglichen Störungen wäre
es wohl besser mehrere Periode zu messen, und dann Ausreißer
auszusortieren, z.B. über den Median.
2) Man nimmt das Signal per AD Wandler auf, und bestimmt die Frequenz
mit der größten Amplitude rechnerisch, z.B. FFT. Dabei macht es auch
nichts wenn über mehrere Pulse gemittelt wird. Die Aufgabe ist aber mit
einem AVR schon anspruchsvoll. Mit dem Wissen um die ungefähre Frequenz
und Amplitude kann man dann ggf. die Frequenz noch genauer bestimmen, in
man für einzelne Pulse einen Sinus anpasst. Für den AVR ist dies aber
nicht unbedingt in Echtzeit zu schaffen, aber schneller als man es vom
LCD ablesen kann sollte noch gehen.
Der 2. Weg ist aufwendiger, aber weniger Empfindlich gegen
Hintergrundgeräusche.
Heiko schrieb:> Vorallem muß die Auswertung praktisch in Echtzeit erfolgen, das können>> dann bei höheren Tempo schon mal 10 Impulse/Sek. sein.Ulrich schrieb:> ) Aufbereiten der Nulldurchgänge und Messen der Zeiten zwischen den>> Nulldurchgängen. Als eine Art Reziprokzähler kann man da auch schon aus>> einer Periode die Frequenz bestimmen.
Wenn er es wirklich schafft in einer Periode zuverlässig zu messen, dann
kann er maximal ein Frequenzunterschied von 10Hz anzeigen.
Da er aber bei Beginn der Messung im ungünstigsten Fall 1 halbe Periode
abwarten muss, bis er den nächsten Nulldurchgang erwischt, dauert es
5msek länger.
Ralph Berres