Was für eine Modulation ist das?


8

Ich versuche herauszufinden, welche Art von Modulation und Codierung von meiner Fensterabdeckungsfernbedienung verwendet wird, um dasselbe auf einem Raspberry Pi zu implementieren und ein bisschen Heimautomation hinzuzufügen.

Ein Kollege half mir, das Signal mit einem USRP abzutasten und gab mir die Datendateien. Ich habe sie mit Inspectrum untersucht .

Ich fürchte, die Samples wurden sehr nahe an der Frequenz des Signals aufgenommen. Ich habe später gelesen, dass dies möglicherweise keine gute Idee ist, und ich denke, dies ist der Grund für das permanente Rauschen, das Sie auf den Bildern sehen können. Sollte ich die Abtastung in Zukunft einige kHz darunter zentrieren?

Einmaliges Drücken des Signals "Fenster öffnen"

Signalübersicht

Die Symbolrate, oder besser gesagt, die Symbolrate, scheint auf dieser Ebene konsistent zu sein (ungefähr 42 Baud).

Dies zeigt Frequenzenergie. Die X-Achse ist die Zeit, die Y-Achse ist die Frequenz (Basisband). Die Farben wurden so abgestimmt, dass sie nur die interessante Kraft zeigen.

Detail eines der "Blöcke"

Signaldetail Signaldetail (Frequenz, Phase, IQ)

Hier zeigt das letzte Bild von unten nach unten: Frequenz, IQ (rot / blau) und Phase. Ich weiß nicht genau, was das Frequenzdiagramm hier darstellt.

Vergrößern Sie den Übergang zwischen dünn und dicht

Die "Symbolrate" scheint hier nicht konstant zu sein.

Übergangsdetail Übergangsdetail (Frequenz, Phase, IQ)

Ich habe keine Ahnung, welche Art von Modulation, Codierung, Bitrate oder Protokoll diese Fernbedienung verwendet, und im Moment wäre meine einzige Option, alle Demod-Blöcke in Gnuradio blind auszuprobieren.

Es wäre besonders hilfreich, wenn die Antwort eine Anleitung zur Demodulation dieses Signals in Gnuradio enthalten könnte, um Bits herauszuholen. Ich denke, ich kann es von dort nehmen.

Der Controller ist für eine Velux-Fensterabdeckung vorgesehen, aber ich habe im Internet keine Informationen gefunden. Ich muss letztendlich herausfinden, welchen Chip ich für das Arduino / rPi kaufen soll.

Geben Sie hier die Bildbeschreibung ein

Ich kann sagen, dass auf dem Chip Text geschrieben ist, aber ich kann ihn nicht lesen, er scheint abgenutzt zu sein, aber ich habe keine Lupe ...: /

Rohdaten hochgeladen auf: https://www.dropbox.com/s/rh2k7ho68dvoxhd/data_mando3.dat?dl=0 . Die Abtastrate beträgt 3 MHz. Das Datenformat ist der Standardwert von GNU Radio Companion (IQ). Jede Komponente wird als 32-Bit-Float ausgedrückt.

Aktualisieren

Nach einigen weiteren Untersuchungen scheint dies ein io-homecontrol- Protokoll zu sein. Es scheint, dass es nicht rückentwickelt wurde, verschlüsselt ist und keine Informationen verfügbar sind. Da es sich um ein Zwei-Wege-Protokoll handelt, muss ich Proben aus vollständigen Gesprächen abrufen (die aktuellen Proben werden nur mit der verfügbaren Fernbedienung entnommen).

Dieser Chip kann theoretisch mit diesem Protokoll arbeiten: http://www.analog.com/media/en/technical-documentation/data-sheets/ADF7022_2page.pdf

Das Konsortium wird keine Spezifikationen bereitstellen. Ich bin immer noch daran interessiert, ein paar Gespräche mit GNURadio zu führen und zu sehen, ob ich von ihnen aus arbeiten kann. Vor diesem Hintergrund kann ich nur gegen io-homecontrol und Velux Produkte empfehlen.

Vielen Dank!


1
Können Sie mehr beschreiben, was jede Kurve zeigt? Die erste Figur sieht aus wie STFT. Was sind grüne, blaue und rote Kurven in der letzten Abbildung?
Maximilian Matthé

2
Ja, wäre gut, wenn Sie erneut abtasten könnten, damit ein ganzzahliges Vielfaches der Abtastrate nicht in der Nähe Ihres Signals landet. Wenn Sie eine echte Abtastung durchführen, soll das digitale Signal auf einer digitalen ZF-Frequenz landen. Eine ideale Wahl ist es, Ihr abgetastetes Spektrum bei haben. Verwenden Sie daher die Beziehung und wobei Ihre Trägerfrequenz und die Bandbreite des Signals ist. Ich empfehle ein Ergebnis wie f_c >> 2 * f_b $. Sobald Sie dies getan haben, können Sie den Träger digital entfernen, indem Sie die Drehung beobachten. N f s - f c = f s / 4 N f s - f c > 2 f b f c f bfs/4Nfsfc=fs/4Nfsfc>2fbfcfb
Dan Boschen

1
Haben Sie die Fernbedienung geöffnet? Viele dieser Unternehmen verwenden kommerzielles Silizium, und auf dem Chip befindet sich eine Teilenummer, die häufig leicht zu einem Datenblatt führen kann.
Stephen Rauch

@ MaximilianMatthé Ich habe die Frage aktualisiert, danke!
Jjmontes

1
@jjmontes Ich möchte sichergehen, dass Sie den Link gesehen haben, den ich oben in meiner Antwort im Abschnitt "Update" hinzugefügt habe, der hier wiederholt wird: cansecwest.com/slides/2015/… . Der Moderator zeigt Ihnen Schritt für Schritt, wie Sie das io-homecontrol-Signal demodulieren.
Dan Boschen

Antworten:


5

Ok, ich habe eine Signalforensik für die Datenerfassung durchgeführt und glaube, dass die Modulation eine Form von FSK ist.

Die FSK-Modulation betrug +/- 20 kHz bei einer Datenrate von 38 kHz.


UPDATE: Die OP-Entdeckung, dass dies "io-homecontrol" ist, und das von ihm gefundene Datenblatt von ADI haben bestätigt, dass dies tatsächlich FSK mit einer Abweichung von 20 kHz und einer Datenrate von 38,4 Kbit / s ist. Weiter gibt dieser Link weitere Details zum Modulationsformat:

https://cansecwest.com/slides/2015/From_Baseband_to_bitstream_Andy_Davis.pdf

Es sieht so aus, als wäre es tatsächlich Gauß-FSK mit Signalisierung mit voller Antwort (BT = 1), was bedeutet, dass die Antwort für jedes Bit abgeschlossen ist, bevor das nächste Bit beginnt. Dies kann leicht mit einem Gaußschen Filter implementiert werden (siehe Gaußscher FIR-Filter ohne Multiplikatoren?) gefolgt von einem Unteroffizier. In diesem Fall wird jedes Datenbit als Impulse dargestellt, gefolgt von Nullen für die gesamte Länge des Filters, und der Ausgang des Filters steuert das Frequenzsteuerwort in den NCO (einen digitalen VCO). (Für Teilantwortsignale, die einen komplizierteren Empfänger erfordern und nicht das, was sie hier tun, sind die Nullen kürzer als die Länge des Filters, aber das würde auch funktionieren). Die Frequenzabweichung kann mit einer Multiplikatorverstärkungskonstante zwischen dem Filterausgang und dem NCO-Eingang eingestellt werden. Die Wahl zwischen Gaußschem FSK und einfachem FSK dient einer besseren spektralen Eindämmung der übertragenen Wellenform (und ist der Grund für die abgerundeten Übergänge, die wir sehen).


Ich werde die Handlungen einschließen, falls jemand weitere Einsichten hat:

Zuerst eine Makroansicht in der Nähe des ersten Bursts, die um 0,93 Sekunden auftritt. Um dieses Diagramm zu erhalten, hatte ich nach dem Dezimieren um 10 Abtastwerte einen Frequenzversatz entfernt, der 0,2688 Radian / Abtastwert entsprach, wobei angenommen wurde, dass die ursprüngliche Abtastrate 3 MHz betrug, was einem Versatz von 12,834 kHz entspricht.

Dieses Diagramm zeigt die unverpackte Phase gegen die Zeit (vertikale Achse ist Bogenmaß) und die entsprechende Größe gegen die Zeit. Ich gehe davon aus, dass wir bei geringer Größe das Rauschen betrachten und das interessierende Signal nur dann auftritt, wenn die Größe höher ist.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie den ersten Teil des Bursts vergrößern, beginnt der Impuls bei ungefähr 0,9265 Sekunden, und zu Beginn des Bursts ist die Phase für ungefähr 3 ms "flach". Ich glaube, dass dies einem unmodulierten Träger entspricht, wenn man es mit den Details vergleicht, die wir später sehen.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Nach den 3 ms des Abschnitts "flache Phase" gibt es ein sehr langes Muster von 1 0 1 0 1 0 mit einer Datenrate von 37,5 KS / s. Die Modulation bewegt sich zwischen 0 und 180 Grad, aber später werden wir klare Phasenrampen sehen, die mich FSK anstelle von BPSK vermuten lassen. (Wenn es MSK wäre, hätte ich erwartet, dass sich 90 Grad drehen, aber die minimale Drehung, die ich fand, war 180 Grad). Beachten Sie, dass wir ganz am Anfang des Musters (unter der Annahme von +180 = 1 und -180 = 0) 1 1 0 1 0 1 0 1 ... sehen, das dann mit dem 1 0 1 0-Muster noch einmal ca. 90 ms dauert Einfügen einer "1 1" in der Nähe der 1,02-Sekunden-Marke und anschließendes Fortsetzen als 0 1 0 1 0 1 ... bis zur 1,414-Sekunden-Marke. (ca. 0,4 Sekunden Dauer mit einem 1 0 1 0 Muster). Beachten Sie den "Buckel" in der gesamten Flugbahn.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Bei 1,414 Sekunden beginnen die realen Daten. (Das erste war wahrscheinlich ein Synchronisations- / Erfassungsmuster). Wenn wir zuerst eine Makroansicht betrachten, sehen wir ein Muster, das sich in dieser Ansicht dreimal zu wiederholen scheint, bevor der Burst endet.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie in den ersten Bereich hineinzoomen, sehen Sie eine konsistente positive und negative Phase, die auf FSK hinweist. Am Ende des Datenbursts gibt es eine lange Dauer von 1 für 4 ms, gefolgt vom 101010-Muster für etwa 14 ms.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Der nächste Burst, der ungefähr 1,51 Sekunden beginnt, kurz nach dem ersten, hat wieder das gleiche Startmuster eines unmodulierten Trägers, gefolgt vom langen 101010-Modulationsmuster. (Obwohl der Start geringfügig anders war, betrug er 1 1 1 1 0 1 0 1 0 1 0 1, aber die Dauer des 1010-Musters vor der Datenmodulation betrug erneut 14 ms)

Geben Sie hier die Bildbeschreibung ein


Noob-Nebenfrage: Während der Synchronisation gibt es etwa 5 bis 7 markante Frequenzbänder in der Wasserfallkarte. Ich muss jedoch meinen (Tiefpass-) Filter immer noch im zentralen (20 kHz) zentrieren, stimmt das? Ich bin überrascht, weil dies einen Teil des Spektrums (das sich von ~ + -35 kHz ausdehnt) aus dem Filter herauslässt, aber trotzdem zu funktionieren scheint :?
jjmontes

Sie zentrieren bei 12,834 KHz Offset, um zu demodulieren, und dann wird die Frequenz dieses Signals Ihre Daten sein. Eine Verzögerung und Multiplikation mit sich selbst kann einen einfachen Frequenzdiskriminator ergeben.
Dan Boschen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.