Forum: Digitale Signalverarbeitung / DSP / Machine Learning DVB/Matlab Projekt


von Frank M. (aktenasche)


Lesenswert?

Abend zusammen,

ich will im Rahmen einer kleinen Projektarbeit ein Matlab/Simulink 
programm mit GUI schreiben, dass die DVB-T Übertragung simuliert. 
Grundkenntnisse sind vorhanden(komplexes Basisband, Modulation etc.)

Folgende Funktionen soll die Software haben:

Einlesen einer Videodatei
Codieren und Modulieren
"Übertragung" im Kanal mit Störeinflüssen (Multipath, shadow, AWGN und 
evtl. weitere Sender)
Decodieren und Demodulieren
Anzeigen beider Videodateien im Vergleich

Mich interessiert hier besonders der Grenzbereich in dem das 
Empfangssignal zusammenbricht (digitale Signale haben ja quasi eine 
konstante Qualität bis ab einem bestimmten SNR garnix mehr geht) und die 
dazugehörige Analyse in der IQ-Ebene.

Meine eigentliche Frage: Wie umfangreich schätzt ihr dieses Projekt ein? 
Offiziell sollen c.a. 60h investiert werden.
Einerseits denke ich dass ein paar Sachen recht heftig sind, 
andererseits wird es vieles auch schon vorgefertigt in Matlab/Simulink 
geben.

Danke für eure Meinungen

von MJF (Gast)


Lesenswert?

Hallo Frank,

direkt gesagt halte ich das für unrealistisch. Es hängt aber stark mit 
deinem Wissen über den Aufbau von Empfängern zusammen und welches 
Parameter Du in deinem Empfänger als bekannt vorraussetzt. Ein echter 
Empfänger muss zunächst diverse Synchronisationsaufgaben durchführen. 
Nimmst Du aber an, dass dein Modell die zeitliche Lage der OFDM-Symbole 
kennt und die Symbolrate exakt bekannt ist, wird es schon ein deutliches 
Stück einfacher (aber leider auch unrealistischer, da die notwendigen 
Synchronsationsalgorithmen ja auch mit Störungen hinweg Fehler 
erzeugen).

Nächster Punkt ist die Kanalschätzung. Ist der Frequenzgang des Kanals 
unbekannt, musst Du mit Hilfe der Pilotträger eine Schätzung der 
Kanal-Impulsantwort durchführen. Nimmst Du den Kanal als A-Priori 
bekannt an, wird der Empfänger wieder deutlich einfacher. Wenn ich dein 
Posting richtig verstehe, willst Du gerade Störungen im Kanal einfügen. 
Wenn die Zeit- oder Frequenzselektiv sind, kommst Du um eine 
Kanalschätzung nicht herum. Aber gerade OFDM hat hier seine Stärke, da 
pro OFDM-Symbol von einem eingeschwungenen Kanal ausgehen kannst (Durch 
das Guard-Intervall).

Nach der Kanalschätzung bleibt noch die Decododierung der 
Nutzinformation. Wenn mich da mein Gedächtnis nicht täuscht, werden bei 
DVB-T Turbo-Codes verwendet, d. h. du musst noch einiges über die 
Decodierung von Turbo-Codes wissen (Stichpunkte sind 
Maximum-A-Posteriori-Sequence-Estimation, Scrambling).

So nebenbei musst Du noch das Encoding des Sendesignals lösen, was 
bestimmt auch einige Zeit kostet.

Ich habe vor vielen Jahren mal an der Defintion eines DVB-T Empfängers 
in einem FPGA gearbeitet und da steckt eine Menge an Know-How drin.

Vielleicht gibt es aber irgendwo ein fertiges Simulink-Model, dass Du 
analysieren kannst.

Wenn Du Dir mehr Zeit nimmst, ist es ein tolles Projekt. OFDM macht 
richtig Spass und ist ja heute die State-Of-The-Art Modulationstechnik.

Gruss

Markus

von Georg A. (Gast)


Lesenswert?

> Wenn mich da mein Gedächtnis nicht täuscht, werden bei DVB-T
> Turbo-Codes verwendet,

Erst bei T2. T hat nur Convolutional Coding und Reed-Solomon.

> andererseits wird es vieles auch schon vorgefertigt in
> Matlab/Simulink geben.

Willst du Malen nach Zahlen oder es wirklich verstehen?

60 Stunden sind aber ein Witz. Wenn du (jetzt mal von FFT und Filtern 
abgesehen) alles selbst schreiben willst, wird das nichtmal für den 
Transmitter ausreichen. Und das ist nur der Poppel-Teil, der Empfänger 
ist aufgrund der schon erwähnten Sychronisation/Kanalschätzung viel 
aufwendiger. Und die sind wesentlich für die Performance...

> Einlesen einer Videodatei

Das gehts schon los. Wenn du echtes DVB-T haben willst, dass auch ein 
realer Empfänger wieder darstellen soll, muss der Videostream schon im 
TS-Format mit mind. 2 PIDs und vernünftiger AV-Synchronisation vorhanden 
sein. Zustätzlich braucht es eine ganze Menge SI-PIDs, damit die 
Streamverwaltung passt. Für die reine Analyse ist das also eher sinnlos, 
dafür reichen schon Pakete mit lauter FFs.

> Codieren und Modulieren

Also Scrambling, Interleaving, RS, Convolutional Coding, Carrier 
Mapping, Pilotenwanderung, etc. Allein das Lesen, Verstehen und Umsetzen 
der diversen Permutations/Mapping-Regeln/Tabellen im Standard dauert.

> "Übertragung" im Kanal mit Störeinflüssen

Nicht zu vergessen Nichtlinearitäten, der Todfeind von OFDM.

> und die dazugehörige Analyse in der IQ-Ebene.

Naja, ist eher unspannend. Die Kanalschätzung verschätzt sich halt, die 
Konstellation sieht nach Müllhaufen aus und der Viterbi hat auf einmal 
30 gleichgrosse Metriken, aus denen er auswählen soll ;)

BTW: Ich will's dir nicht abspenstig machen, es ist nur deutlich 
aufwendiger, als du dir jetzt vorstellen willst...

von Frank M. (aktenasche)


Lesenswert?

Vielen Dank Markus und Georg für eure Antworten:

MJF schrieb:
> Nimmst Du aber an, dass dein Modell die zeitliche Lage der OFDM-Symbole
> kennt und die Symbolrate exakt bekannt ist, wird es schon ein deutliches
> Stück einfacher

Durch die "diskrete" Natur von Matlab/Simulink ist die Lage der Symbole 
doch immer gleich? Symbolrate ist fix.

MJF schrieb:
> Aber gerade OFDM hat hier seine Stärke, da
> pro OFDM-Symbol von einem eingeschwungenen Kanal ausgehen kannst (Durch
> das Guard-Intervall).

Ein weiterer Punkt den ich "untersuchen" will: Was passiert, wenn eine 
transiente Störung länger als das Guardintervall ist. Was die 
Kanalschätzung angeht, bin ich mir auch nicht ganz sicher. Sollte aber 
letztlich kein Problem sein.

MJF schrieb:
> d. h. du musst noch einiges über die
> Decodierung von Turbo-Codes wissen

Nun natürlich muss ich mich in das Thema einlesen, aber Simulink bietet 
dafür garantiert vorgefertigte Blöcke.

Damit komm ich direkt hierzu:

Georg A. schrieb:
> Willst du Malen nach Zahlen oder es wirklich verstehen?
> 60 Stunden sind aber ein Witz. Wenn du (jetzt mal von FFT und Filtern
> abgesehen) alles selbst schreiben willst, wird das nichtmal für den
> Transmitter ausreichen.

Ich finde, 60h sind kein Witz. Das sind in der Arbeitswelt immerhin ~1.5 
Wochen. Ich will nicht alles selber schreiben, das würde wesentlich mehr 
Zeit kosten da stimme ich zu. Deinen ersten Punkt finde ich etwas 
verwirrend, heisst das ich muss von jedem kleinsten Detail alles wissen 
um etwas wirklich zu verstehen?

Georg A. schrieb:
> Wenn du echtes DVB-T haben willst, dass auch ein
> realer Empfänger wieder darstellen soll, muss der Videostream schon im
> TS-Format mit mind. 2 PIDs und vernünftiger AV-Synchronisation vorhanden
> sein.

Ich hatte ein Simulationsmodell für RDS gesehen, bei dem ein string 
übertragen wurde. Daher dachte ich ich könnte einfach eine 
(avi)Videodatei einlesen und diese übertragen. Ob die dann noch MPEG2/4 
codiert wird, wollte ich je nach Zeitaufwand entscheiden. Die 
Analogseite will ich weglassen(!!).

Georg A. schrieb:
> Nicht zu vergessen Nichtlinearitäten, der Todfeind von OFDM.

Wie kann man die modellieren?

Georg A. schrieb:
> Naja, ist eher unspannend.

Sagst du ;) Was fändest du denn interessant?

von Georg A. (Gast)


Lesenswert?

> Durch die "diskrete" Natur von Matlab/Simulink ist die Lage der Symbole
> doch immer gleich? Symbolrate ist fix.

Damit vereinfachst du den Empfangsprozess auf eine Weise, mit der du 
gewonnene Erkenntnisse eigentlich gleich wieder vergessen kannst, weil 
das nichts mehr den DVB-T "da draussen" zu tun hat. Multipath ist nicht 
alles. Es gibt in der Realität noch Carrier- und 
Symbol/Samplerate-Offset, und die Qualität der Korrektur beeinflusst das 
SNR.

> Deinen ersten Punkt finde ich etwas verwirrend, heisst das
> ich muss von jedem kleinsten Detail alles wissen
> um etwas wirklich zu verstehen?

Ich persönlich finde es vorteilhaft, wenn man den Teil hinter den 
Kulissen auch kennt. Sicher gibts irgendwo eine Toolbox, wo gleich ein 
ganzer DVB-T-Modulator als eine Funktion drin ist. Warum nicht gleich 
die nehmen?

> Ich hatte ein Simulationsmodell für RDS gesehen, bei dem ein string
> übertragen wurde.

Naja, RDS ist ja so simpel, da ist die Verpackung des Strings schnell 
gemacht. Bei DVB-T ist es für die Analyse aber recht egal, was da 
gesendet wird. "Zwischendurch" gibt es eh keinen Zusammenhang mit dem 
TS, mit dem man was anfangen könnte. Und ob der TS jetzt reale Daten 
(samt SI&Co) hat oder einfach nur Dummy-Pakete, macht am Ausgang keinen 
Unterschied. Da wären Dummy-FFs sogar besser, weil man mit blossen Auge 
sieht, was faul ist.

> Wie kann man die modellieren?

Für den Anfang sollte was mit exp(-x) gehen, halt so typische 
Transistor-Sättigungen. Produziert dann munter ICI durch 
Intermodulationen aller Träger...

> Sagst du ;) Was fändest du denn interessant?

Ich finde das deswegen unspannend, weil ein "schlechtes" 
Konstellationsdiagramm zu einem Zeitpunkt eigentlich noch keine 
wirklichen Rückschlüsse auf das Endergebnis zulässt. Durch 
Symbolmapping/Interleaving/Viterbi/RS wird da ja noch eine riesige 
Historie miteinbezogen.

Spannend sind eher die Probleme mit der Realisierung der Kanalschätzung 
und die Möglichkeiten, sie maximal robust mit minimalem Aufwand zu 
machen. Da scheint ja schon nach einiges zu gehen, wenn man so die 
Paper/Patentflut anschaut oder neuere Demods mit älteren vergleicht.

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
Noch kein Account? Hier anmelden.