(18.02.2024, 18:28)janosch79 schrieb: aber bei digitalen Modulationsarten ist eben ohne passende Analysatoren nix zu reißen
Diese Analysatoren hast du alle vor dir. Mache es wie die Universitäten und die Industrie, nutze GNU Radio mit dem du das Signal erstellt hast!
Du kannst auch aus dem gesendeten Signal wieder eine Konstelllationsanzeige mit allen Fehlerberechnungen machen und den Bitstrom erzeugen. Du kannst damit sogar Ausbreitungswege und Kanalstörungen simulieren.
Nur der DSR-Decoder für Audio fehlt, wobei man den Datenstrom aber zunächst mit mit einem Hexeditor prüfen kann.
Sieht man die Senderkennungen? Dann wird der Rest auch erstmal stimmen.
Wenn du gnu radio nicht zur Signalprüfung nehmen willst gibt es einen Haufen anderer Signalanalysatoren wie SigDigger. Du kannst auch kostenlose Testversionen von Kaufsoftware benutzen mit denen man die berechnete HF über Datei oder TCP wieder einlesen kann, als wäre sie wirklich OTA gekommen
https://de.mathworks.com/help/signal/ref...r-app.html R&S, Agilent alle haben sie irgendwo auf ihren Seiten passende Trialsoftware die mindestens ein File einlesen kann. Die Software braucht aber Lust zur Einarbeitung, sonst kannst du sie nicht bedienen und die Anzeigen sagen dir nichts.
Ich würde das nutzen was schon da ist, GNU Radio. Der Performence wegen auf einem zweiten PC, beide über Ethernet/File verbunden. Der eine Sender, der andere Empfänger und Analysator.
Ich versuche hier meinen Quick'n Dirty DSR Versuch von heute früh zu beschreiben. (vielleicht kann jemand damit was anfangen)
Dabei setze ich voraus das gnuradio, dsr-encoder mit ffmpeg, fl2k richtig installiert sind.
1. DSR Multiplex konfigurieren
Dazu gibt es ja diese Datei
https://github.com/fsphil/dsr/blob/master/example.conf
Ich habe meine so abgeändert damit sie halbwegs zu euren bisherigen Experimenten passt.
; Example configuration file for dsrtx.
; Enable verbose output (defaults to false)
verbose = true
; Only one output may be defined each time
[output]
;type = hackrf ; Output to a hackrf
;frequency = 855e6 ; Transmit on 855MHz
;sample_rate = 20480000 ; Or 10240000, but signal quality may suffer
;gain = 47 ; Control the TX gain
;amp = false ; Control the TX amplifier (default false)
;[output]
type = file ; Output to a file
output = signal.iq ; Write to "signal.iq"
data_type = float ; uint8|int8|uint16|int16|int32|float
sample_rate = 20480000 ; Or any multiple of 10240000
[channel]
channel = 1 ; This is channel 1
name = TEST1000
type = tone ; Generate a test tone
frequency = 1000 ; Set the tone to 330 Hz
level = 0.1 ; Audio level is 0.1
; Channel 2 is a 330 Hz test tone (Stereo)
[channel]
channel = 2 ; This is channel 2
name = TEST330
type = tone ; Generate a test tone
frequency = 330 ; Set the tone to 330 Hz
level = 0.1 ; Audio level is 0.1
[channel]
channel = 3
name = "DK DR1"
program_type = 10 ; See below for a full list of program types
music = true
input = ffmpeg -i
http://live-icy.gss.dr.dk:8000/A/A04H.mp3 -ar 32000 -ac 2 -f s16le -
exec = true ; The input is a command, not a file. Audio is read
; from the command stdout
; Available program types:
;
; No | Program type | Short term
; 0 | No programme type or undefined |
; 1 | News | NEWS
; 2 | Current affairs | AFFAIRS
; 3 | Information | INFO
; 4 | Sport | SPORT
; 5 | Education | EDUCATE
; 6 | Drama | DRAMA
; 7 | Culture | CULTURES
; 8 | Science | SCIENCE
; 9 | Varied | VARIED
; 10 | Pop music | POP M
; 11 | Rock music | ROCK M
; 12 | M.O.R. music | M.O.R. M
; 13 | Light classical | LIGHT M
; 14 | Serious classical | CLASSICS
; 15 | Other music | OTHER M
Ausgabe in Datei signal.iq mit 20.48 MSPS, 3 Testkanäle
Kanal 1 - 1 kHz Testton mit Kanalkennung TEST1000
Kanal 2 - 330 Hz Testton mit Kanalkennung TEST330
Kanal 3 - Eine Internetradiostation die wir bereits in der Defaultliste vom iRadioAndroid haben, diese wird direkt vom Encoder empfangen und konvertiert, Kanalkennung DK DR1
alles abspeichern!
DSR Encoder aufrufen und laufen lassen.
./dsrtx -c /home/testuser/dsr/example.conf
Jetzt gibt der DSR Erzeuger einen Haufen bla bla aus und man sieht wie er das DSR Signal erzeugt. Ich lasse ihn etwas laufen, damit wir genug Material für den I/Q Modulator haben.
2.Jetzt zum I/Q Modulator
er ist in der Technischen Richtlinie zum DSR-Format abgebildet
ich baue das Ding in GNU Radio nach, beziehungsweise nehme ihn aus der DVB-T Demo des FL2k und passe ihn an. Es ist ja nichts geheimnisvolles dran, jedes SDR funktioniert im DUC oder DDC im Prinzip so
Die Frequenzabweichung ppm lasse ich zunächst bei 0.
Ich suche mir passende Übertragungsparameter die das Abtasttheorem erfüllen. Hier ist es jetzt n_harmonic 3 , In 20.48 MSPS Out 40.96 MSPS, also einfaches Resampling mit Faktor 2 (wir schauen später nach ob wir den Fehler am fl2k so lassen können oder nochmal resamplen), Sendefrequenz ist somit 112 MHz (kann man am DSR Tuner einstellen), Die beiden Signalgeneratoren haben 10.88 MHz bei Samplerate 40.96 MSPS, passt auch. Für meine Testumgebung liegt jeder Parameter im grünen Bereich.
Berechnetes 112 MHz Signal wird in die Datei fl2k_dsr.out geschickt.
Jetzt lasse ich gnu radio laufen damit mir die vorher vom DSR Encoder erzeuge IQ Datei moduliert wird.
3. errechnetes 112 MHz Signal ausgeben
zunächst teste ich mit fl2k_file ob ich mit der Samplerate von 40.96 MSPS gut hinkomme, der fl2k Adapter hängt an einer USB3 Schnittstelle
Ergebnis
Requested sample rate 40960000 not possible, using 40952378.000000, error is -7622.000000
40.96 MSPS geht nicht aber der Fehler ist für eine Quick'n Dirty Lösung nicht so groß das man es nicht mal versuchen könnte !
Also sende ich die berechnete HF zum fl2k
fl2k_file -s 40960000 fl2k_dsr.out
Das FL2k ist schon mit dem DSR Empfänger verbunden, ich gehe in den DSR Modus und tune auf 112 MHz
Kanal 1 mit richtiger Kennung, kein Programmtyp (den haben wir ja nicht vergeben) und es tönt ein klarer 1 kHz Ton
kanal1.jpg (Größe: 10,31 KB / Downloads: 439)
Kanal 2 mit richtiger Kennung, kein Programmtyp (den haben wir hier ja auch nicht vergeben) und es tönt ein klarer 330 Hz Ton
kanal2.jpg (Größe: 13,65 KB / Downloads: 439)
Kanal 3 mit richtiger Kennung, Programmtyp 10 = POP (was aber nicht zum gesendeten Inhalt der Station passt, Klassik wäre passender, also Wert 13 oder 14 in der DSR-Konfigdatei), Ton klar und deutlich in Stereo vom Dänischen Radio
kanal3.jpg (Größe: 9,4 KB / Downloads: 439)
Der Empfänger bleibt jetzt schon auf dem Signal gelock-ed, ein Resampling mit dem Error bei dem Gerät noch nicht nötig, die Frequenzabweichung ist so gering das der DSP im Empfänger das hinbekommt. Für Quick'n Dirty war das ein Erfolg. Jetzt kann man noch anfangen und das Signal genau einzumessen und optimieren. Mit anderen Datentypen die nicht gerade Float (Ressourcenfresser) sind kann man den DSR-Encoder und auch den Modulator noch viel effizienter machen. Dazu fehlt mir aber die Lust an diesem Montagmorgen, da ich gleich zum Arzt fahren muss und ein paar andere Gedanken im Kopf sind.
Gruß
Otto