Hallo Habr.
Im
vorherigen Teil wurde der Signalempfang mit GNU Radio besprochen. Nun betrachten wir das inverse Problem - die Übertragung von Signalen verschiedener Modulationsarten.

Wie beim Empfang können Sie mit GNU Radio ein ausgeklügeltes Softwaresystem zum Senden von Signalen erstellen, ohne eine einzige Codezeile schreiben zu müssen. Aber zuerst schauen wir uns SDR-Geräte an, die nicht nur beim Empfang, sondern auch beim Senden funktionieren können und von Megahertz bis Gigahertz reichen.
Fortsetzung unter dem Schnitt.
Eisen
Im Gegensatz zu dem billigen RTL SDR V3-Empfänger, den Sie für 30 US-Dollar kaufen können, benötigen Sie ernsthaftere und teurere Hardware, um an der Übertragung arbeiten zu können. Die Auswahl ist jetzt jedoch ziemlich groß. Ich betrachte hier keine rein "Amateur" SDR-Transceiver (Flex / Icom / Yaesu usw.), weil Es gibt nur noch wenig SDR in ihnen und sie werden für uns nicht funktionieren. Wir werden vollwertige SDRs in Betracht ziehen, die für Experimente mit DSPs entwickelt wurden, mit denen Sie alles in dem Format übertragen können, das wir benötigen.
LimeSDR und LimeSDR Mini
Eine interessante Geräteserie deckt den Empfangs- / Sendebereich von ca. 10 MHz bis 3,5 GHz ab. LimeSDR arbeitet formal ab 100KHz, aber die Empfindlichkeit dort laut Bewertungen keine.
Der Ausgabepreis liegt bei etwa 200 US-Dollar, aber es kann problematisch sein, ein Board zu kaufen, weil Sie werden ausschließlich über Crowdsupply verkauft und sind nicht immer verfügbar. Die Autoren sammelten Geld für 2 Millionen US-Dollar, bekamen jedoch keinen eigenen Webserver und keinen vollwertigen Laden. Zu ihrer Ehre wurden jedoch alle Bestellungen verschickt.
Adalm pluto sdr
Das Board von Analog Devices wurde hauptsächlich für Studenten entwickelt. Die billige Option „SDR für die Armen“ kostet etwa 120 US-Dollar, der Sende- / Empfangsbereich reicht von 300 MHz bis 3,8 GHz.
Hackrf
Eines der ersten Motherboards dieser Art, das vor etwa 5 bis 6 Jahren auf den Markt kam, hat einen Frequenzbereich von 1 MHz bis 6 GHz. Die Karte ist ziemlich alt und aufgrund ihrer Parameter teuer (300-400 US-Dollar). Sie weiß nicht, wie man im Vollduplex arbeitet, und verfügt über einen 8-Bit-DAC / ADC. Jetzt gibt es chinesische Klone, aber ich kann nichts über ihre Qualität sagen.
Es gibt andere Modelle (Ettus Research, BladeRF, Red Pitaya), sie sind interessant, aber nicht billig und die meisten werden sie wahrscheinlich nicht nehmen. Für einen Anfänger wäre LimeSDR wahrscheinlich die beste Wahl. Es muss jedoch betont werden, dass alle diese Karten für Experimente mit digitaler Signalverarbeitung ausgelegt sind - sie sind keine Transceiver im Sinne des Amateurfunk, ihre Ausgangsleistung beträgt etwa 50 mW, das Gerät verfügt nicht über Dämpfungsglieder, Verstärker, Filter und für CQ DX sind sie überhaupt nicht optimiert (ja und selbst R / L-Software für sie ist in der Regel nicht). Obwohl ich ein HSRR-Wspr-Signal mit 7 und 14 MHz gesendet habe und es bei 1000 km empfangen wurde, ist dies ein recht gutes Ergebnis für 50 mW und eine Raumantenne.
Natürlich erhebt diese Liste keinen Anspruch auf vollständige Überprüfung, aber für ein allgemeines Verständnis reicht es hoffentlich aus. Es gibt ein nützliches Tablet, obwohl es etwas veraltet ist, aber Sie können die Parameter verschiedener Geräte grob verstehen:

Software
Zunächst ein wichtiger Hinweis: Alle Experimente bei der Arbeit an der Übertragung sollten mit minimaler Leistung und in den zulässigen Bereichen durchgeführt werden, um andere Dienste nicht zu beeinträchtigen. Grundsätzlich ist es schwierig, jemanden von 10 mW abzuhalten, aber das Radio muss auch sauber gehalten werden;)
Also starten wir GNU Radio und fahren fort (wenn jemand den
vorherigen Teil verpasst hat, ist es ratsam, ihn zu lesen, um besser zu verstehen, wie man dieses Programm benutzt).
Es ist wichtig, das allgemeine Prinzip zu verstehen. Da wir über Software Defined Radio verfügen, können wir alles innerhalb der Bandbreite des Geräts übertragen. Wir müssen nur den erforderlichen digitalen Stream erstellen, und der DAC sendet alles „wie es ist“ in der Luft. Wie im vorherigen Teil beschrieben, heißt die Ausgabe an GNU Radio Sink. Der spezifische Name hängt vom Modell des Geräts ab.
Einfacher TonDer einfachste Test: Schließen Sie einfach die Quelle der Sinuswelle an den Sender an.

Nicht sehr interessant, aber für einige Überprüfungen oder als einfacher Signalgenerator kann es nützlich sein. Wir starten als RTL SDR des Steuerempfängers und sehen unser Signal.
NfmLassen Sie uns fortfahren - überlegen Sie, wie Sie etwas Nützlicheres übertragen können, z. B. Ton aus einer WAV-Datei oder einem Mikrofon. GNU Radio verfügt hierfür über eine vorgefertigte NBFM-Sendeeinheit. Er erledigt alle notwendigen Arbeiten - wandelt unseren Audiostream in ein komplexes IQ-Signal mit Frequenzmodulation um, das den SDR "versteht".

Das Ergebnis im Screenshot ist, dass der Ton übertragen wird und Sie ihn hören können, wenn Sie FM auswählen. Sie können ein solches Signal auch über tragbare Funkgeräte empfangen.

Wie Sie sehen können, wurde die Empfangs- und Sendefrequenz auf 433 MHz geändert - ein nicht lizenzierter LPD-Bereich.
Drahtlose SchaltersteuerungBetrachten Sie jetzt etwas interessanteres. Da es sich um das 433-MHz-Band handelt, können wir einen „Dirty Hack“ demonstrieren - die Wiedergabe eines aufgezeichneten Signals. Dies ermöglicht es uns, die Codierung des Signals nicht zu verstehen, sondern es einfach aufzuzeichnen und zu übertragen, ohne zu verstehen, was sich darin befindet. Der Hack ist fast wörtlich "dreckig", weil Wir werden das aus der Luft aufgenommene Signal abspielen, was alles andere als ideal ist.
Nehmen Sie zum Beispiel einen billigen 434-MHz-Funkschalter. Ich habe so etwas benutzt, das ich auf dem Mediamarkt gekauft habe.

Wir werden uns nicht mit seinem Format befassen, sondern einfach das Signal "wie es ist" aufzeichnen. Stellen Sie dazu eine einfache Schaltung in GNU Radio zusammen.

Die Abtastrate wurde klein gewählt, um kein zu breites Band zu schreiben - die Datei nimmt viel Platz ein und der Überschuss wird gesendet.
Für die Visualisierung wird eine FFT-Senke benötigt, um sicherzustellen, dass das Signal wirklich ist:

Wir schalten die Aufnahme ein, drücken die Taste auf der Fernbedienung und schalten die Aufnahme aus. Die aufgezeichnete Datei kann übrigens in Cool Edit geöffnet werden und stellt sicher, dass das Signal normal aufgezeichnet wird:

Jetzt "sammeln" wir den sendenden Teil der Schaltung: Wir laden das Signal aus der Datei und senden es einfach zur Übertragung.

Wir sollten auch den Throttle-Block erwähnen, der angibt, mit welcher Abtastrate Daten aus einer Datei gelesen werden sollen (diese Informationen befinden sich nicht in der Datei selbst). Der Multiplikations-Const-Block verstärkt das Signal, falls sein Pegel in der Aufzeichnung nicht ausreichend war.
Dann ist alles einfach - wir starten den Sender, stellen sicher, dass die Schreibtischlampe aufleuchtet :) Bei voller Sendeleistung haben wir es geschafft, die Lampe am anderen Ende der Wohnung anzuzünden. Die Methode ist jedoch, wie bereits erwähnt, ziemlich „schmutzig“ - das Signal selbst ist nicht perfekt, und alles, was in der Luft ist, wird übertragen, einschließlich aufgezeichneter Geräusche und möglicherweise Signale von anderen Geräten, die versehentlich in die Aufzeichnung gefallen sind. Für Tests oder die Steuerung einer ferngesteuerten Maschine in einem Raum ist dies jedoch in Ordnung.
Fazit
Wie Sie sehen können, bietet der SDR ein ziemlich großes Feld für Experimente mit verschiedenen Signalen, und dies ist recht einfach.
Alles, was wieder gedacht wurde, passte nicht in einen Teil. Im nächsten Teil werden komplexere Modulationsarten betrachtet.