Die stm32 haben einen flotten ADC und genug Rechenleistung um DCF77 direkt zu empfangen und zu verarbeiten. Habe mir einen kleinen einstellbaren Verstärker für 3,3V gebastelt. Das soll es aber auch schon n externer Hardware gewesen sein. Als nächstes werde ich mal versuchen das Signal zu sampeln und auf Süd Karte weg zu schreiben um es dann am PC weiter analysieren und verarbeiten zu können. Und genau hier ist jetzt die frage was man mit dem Signal machen sollte? Ich hatte auch an eine. Mischer durch unterabtastung gedacht. Also z.B. mit 77000 Hz sampeln um danach die 500 Hz mit einem bandpass zu filtern. Also externe Hardware so gering wie möglich und alle Verarbeitung auf dem Controller. Wie würdet ihr verfahren? Der Aufwand sollte auch noch im Rahmen bleiben... Die Frage könnte auch genau so gut ins DSP Forum...
Könntest Du auch mit 310 kHz sampeln? Dann als Quadratursignal weiter verarbeiten. Ich kann nicht beurteilen, ob der STM32 das schafft. Die Ferritantenne macht ja schon eine gewisse Vorselektion.
Unterabtasten verschenkt einiges an Dynamik. Wegen der nicht so perfekten Filter vor dem A/D ist eher eine höhere Abtastrate angesagt, sofern das die Leistungsaufnahme zulässt. Ein erster möglicher Schritt für die Auswertung wäre ein digitales mischen mit z.B. 77,5 kHz auf I/Q Signale bei Frequenz 0. Danach kann man dann die Datenrate deutlich reduzieren. Es bleibt dann eigentlich nur entfernen von Ausreißern, normieren der Amplitude und ggf. Phase/Frequenz und schließlich ein Vergleich mit einer Schwelle bzw. den möglichen erwarteten Signalen. Falls das ganze auch noch eine Stabile Ref. Frequenz geben soll, könnte man auch noch einmal das erkannte Zeitsignal für einen 2. Durchgang bei der Phase nutzen, um da noch die letzten mHz zu optimieren.
Also so wie ich eure Vorschläge bis jetzt verstanden habe: 1) Mit hoher Samplerate abtasten 2) Mit digitalen Träger von 77,5kHz komplex mischen 3) I/Q Komponenten durch Tiefpass schicken 4) Und nun? Reicht es das Quadrat zu bilden und danach zu demodulieren? An welcher Stelle sollte man die Datenrate reduzieren? Nach dem Tiefpass oder? Es gibt bestimmt noch schlauere Ansätze als das Signal zu quadrieren und direkt zu demodulieren, oder? Irgendwie mit irgendwas korrelieren... :-) Braucht man zum Erzeugen der I/Q Komponenten nicht eine Hilbert-Transformation? Die Informationstechnik-Vorlesung ist schon wieder ein Semester her, das meiste habe ich leider schon wieder vergessen :-(
Ulrich schrieb: > Falls das ganze auch noch eine Stabile Ref. Frequenz geben soll, könnte > man auch noch einmal das erkannte Zeitsignal für einen 2. Durchgang bei > der Phase nutzen, um da noch die letzten mHz zu optimieren. Das interessiert mich. Könntest Du das bitte genauer erklären. Welches Signal macht einen 2. Durchgang und wodurch?
http://www.ptb.de/cms/fachabteilungen/abt4/fb-44/ag-442/verbreitung-der-gesetzlichen-zeit/dcf77/phasenmodulation.html Warum wird eine Pseudozufallsfolge verwendet?
Die Datenrate kann man nach Mischen und Tiefpass reduzieren. In der Regel geht das gleich zusammen mit dem Tiefpass, der dann für jeden neuen Datenpunkt so etwa wie den Mittelwert über eine feste Zahl an Ursprünglichen Werten bildet, ggf. auch mit unterschiedlicher Wichtung und überlappend. Das komplexe mischen mit Tiefpassfilterung ist eine Umsetzung der Hilberttransformation. Solange man nur am Zeitsignal interessiert ist, und keine extreme Empfindlichkeit braucht (d.h. es muss nicht viel besser werden als die üblichen analog aufgebauten Empfänger), reicht das Quadrieren zur Demodulation schon aus. Bei der Bewertung der Amplituden kann man sich dann ggf. noch etwas mehr mühe geben als es bei einem analogen Aufbau üblich ist. Man kann z.B. Ausnutzen, das die Reduzierte Amplitude genau mit 1 s Abstand startet und dann ein definierte Länge hat. Wenn man so will kann man das als Korrelation zwischen dem Signal und möglichen Mustern sehen. Es geht aber auch besser, als nur mit dem Quadrat der Werte, also der momentanen Amplitude. Die I/Q werte kann man als Amplitude und Phase (atan (I/Q)) interpretieren. Aus den Werten für die Phase kann man den Träger rekonstruieren, also die genaue Trägerfrequenz (hier eher die genaue Frequenz des µC, da die Trägerfrequenz sehr genau fest liegt). Es gibt da einige Möglichkeiten: eine ist es mit den Werten für die Phase eine lineare Regression durchzuführen. Lineare Regression klingt kompliziert, geht aber per Formel recht schnell und einfach. Die Steigung für die Phase gibt die (Kreis-)Frequenz für die Zwischenfrequenz. Alternativ kann man auch direkt an die I/Q Werte eine Komplexe e Funktion anpassen - das braucht aber üblicherweise ein paar Iterationen, was bei der Signalverarbeitung eher unbeliebt ist. Wegen der Modulation mit dem Zeitsignal wäre zu überlegen für die 1. Näherung nur die Werte mit große Amplitude (z.B. >70% des Mittelwertes) zu nutzen. Mit der bekannten Phase aus der Regression geht dann die Detektion des Zeitsignals auch über I/Q als Vektor, ohne Quadrieren mit etwas weniger Störungen. Dazu kann man dann ggf. auch noch die Zusatzinformationen demodulieren (Phase in den Lücken). Bei schlechtem Empfang kann man dabei auch ausnutzen das nur Pausen mit 2 definierten Längen Möglich sind, und der Abstand genau 1 Sekunde ist. Wenn man es dann noch auf die Spitze treiben will, könnte man das erkannte Zeitsignal nutzen, um die Phase noch etwas genauer zu bestimmen, indem man das komplette Signal mit der Zeitinformation usw. anpasst. Mit dem Startwert aus dem 1. Durchgang reichen hier vermutlich auch schon 1-2 Iterationen, vor allem wenn man die Parameter gut wählt. Ein noch offener Parameter ist dabei die Länge des Intervalls die man nutzt. Das kann z.B. 1 Sekunde oder auch 1 Minute sein, sofern der lokale Takt stabil genug ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.