Diese Seite ist für die vorige Version. Die entsprechende englische Seite wurde in der aktuellen Version entfernt.
Iterativer Entwurfs-Workflow für Kommunikationssysteme
Dieses Beispiel veranschaulicht einen Entwurfs-Workflow, der die iterativen Schritte zum Erstellen eines drahtlosen Kommunikationssystems mit der Communications Toolbox™ enthält. Da die Communications Toolbox sowohl MATLAB® als auch Simulink® unterstützt, veranschaulicht dieses Beispiel Entwurfspfade unter Verwendung von MATLAB-Code und Simulink-Blöcken. Während Sie diesen Workflow durchlaufen, können Sie dem Entwurfspfad für MATLAB, für Simulink oder für beide Produkte folgen.
Der Workflow beginnt mit einem einfachen Kommunikationssystem und führt Bit-Error-Rate-(BER-)Simulationen (Bitfehlerraten-Simulationen) zum Messen der Systemleistung durch. BER-Simulationen basieren auf dem Simulieren eines Kommunikationssystems mit einem bestimmten Signal-Rausch-Verhältnis (Eb/No) mit anschließendem Berechnen der entsprechenden Bitfehlerrate zum Bestimmen der Anzahl der Fehler im übertragenen Signal. Je niedriger die BER bei einem bestimmten Signal-Rausch-Verhältnis ist, desto besser ist die Systemleistung.
Dieser Workflow beginnt mit einem einfachen Kommunikationssystem und fügt iterativ die erforderlichen algorithmischen Komponenten zum Erstellen eines komplizierteren Systems hinzu. Diese zusätzlichen Komponenten umfassen:
Faltungscodierung und Viterbi-Decodierung
Turbo-Codierung
Mehrweg-Fadingkanäle
OFDM-basierte Übertragung
Verfahren mit mehreren Antennen
Da der Workflow nach jedem Hinzufügen einer Komponente zum System entsprechende Bitfehlerberechnungen vornimmt, können Sie die Systemleistung schrittweise untersuchen. Für bestimmte Komponenten sind theoretische oder leistungsbezogene Vergleichswerte (Benchmarks) verfügbar. In diesen Fällen zeigt der Workflow sowohl die theoretische als auch die gemessene Leistungsmetrik.
Ein Basis-Kommunikationssystem simulieren
Dieser Workflow beginnt mit einem einfachen QPSK-Modulatorsystem, das über einen AWGN-Kanal ein Signal überträgt, und berechnet die Bitfehlerrate, um die Systemleistung zu ermitteln.
In MATLAB
Wechseln Sie in diesen MATLAB-Ordner:
matlab\help\toolbox\comm\examples
Geben Sie edit doc_design_iteration_basic_m
auf der MATLAB-Befehlszeile ein.
MATLAB öffnet eine Datei, die Sie in diesem Beispiel verwenden werden. In diesem Code werden vier System objects aus der Communications Toolbox verwendet: comm.PSKModulator
, comm.AWGN
, comm.PSKDemodulator
und comm.ErrorRate
. Für jeden EbNo-Wert wird der Code als While-Schleife ausgeführt, bis entweder die angegebene Anzahl der Fehler beobachtet oder die maximale Anzahl der Bits verarbeitet wurde. Der Code führt jedes System object™ durch Aufruf der step
-Methode aus. Der Code gibt die BER aus, die als Verhältnis der beobachteten Anzahl der Fehler zur verarbeiteten Anzahl der Bits definiert ist. Die nachfolgenden MATLAB-Funktionen, die in diesem Beispiel verwendet werden, haben eine ähnliche Struktur.
Geben Sie bertool
auf der MATLAB-Befehlszeile ein, um die App Bit Error Rate Analysis zu öffnen.
Nachdem die App geöffnet wurde, klicken Sie auf die Registerkarte Theoretical.
Das erste Diagramm, das Sie generieren, ist eine theoretische Kurve.
Geben Sie 0:9
als EbNo range ein.
EbNo ist das Verhältnis der Rauschleistungsenergie pro Bit. Je höher dieser Wert ist, desto besser ist die Systemleistung. Diese Simulation wird mit unterschiedlichen Werten für das Verhältnis zwischen 0
und 9
ausgeführt.
Wählen Sie 4
als Modulation order aus.
Die Modulationsordnung definiert die Anzahl der zu übertragenden Symbole. Hier besteht jedes Symbol aus zwei Bits.
Klicken Sie auf Plot.
Die App generiert die theoretische BER-Kurve.
Klicken Sie auf die Registerkarte Monte Carlo.
Monte Carlo ist ein Verfahren, bei dem eine Zufallsauswahl zum Berechnen der Daten verwendet wird. Deshalb verwendet das Diagramm für die zweite Simulation eine Zufallsauswahl.
Geben Sie 0:9
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Number of errors ist eines der Stoppkriterien für die Simulation.
Geben Sie 1e7
als Number of bits ein.
Number of bits ist ebenfalls ein Stoppkriterium für die Simulation. Die Simulation wird gestoppt, wenn die Anzahl der Bits, die Sie in diesem Parameter angegeben haben, übertragen wurde. In diesem Beispiel wird die Simulation gestoppt, wenn 10 Millionen Bits übertragen wurden oder wenn 200 Fehler erkannt wurden.
Klicken Sie auf die Schaltfläche Browse.
Navigieren Sie zu matlab/help/toolbox/comm/examples
und wählen Sie doc_design_iteration_basic_m.m
aus.
Klicken Sie auf Run.
Die App führt die Simulation aus und generiert Simulationspunkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
Jede Funktion mit zwei Ausgabevariablen und diesen drei Eingabevariablen kann mit der App Bit Error Rate Analysis aufgerufen werden.
Die erste Variable ist eine skalare Zahl für EbNo.
Die zweite Variable ist das Stoppkriterium, gemäß dem die Simulation gestoppt wird, wenn die maximale Anzahl der Fehler beobachtet wurde.
Die dritte Variable ist das Stoppkriterium, gemäß dem die Simulation gestoppt wird, wenn die maximale Anzahl der Bits verarbeitet wurde.
In Simulink
Geben Sie bertool
auf der MATLAB-Befehlszeile ein, um die App Bit Error Rate Analysis zu öffnen.
Nachdem die App geöffnet wurde, klicken Sie auf die Registerkarte Theoretical.
Geben Sie 0:9
als EbNo range ein.
EbNo ist das Verhältnis der Rauschleistungsenergie pro Bit. Je höher dieser Wert ist, desto besser ist die Systemleistung. Diese Simulation wird mit unterschiedlichen Werten für das Verhältnis zwischen 0
und 9
ausgeführt.
Wählen Sie 4
als Modulation order aus.
Die Modulationsordnung definiert die Anzahl der zu übertragenden Symbole. Hier besteht jedes Symbol aus zwei Bits.
Klicken Sie auf Plot.
Die App generiert die theoretische BER-Kurve.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:9
oder den EbNo range ein.
Geben Sie ber
als BER variable name ein.
Geben Sie 200
als Number of errors ein.
Number of errors ist eines der Stoppkriterien für die Simulation. Die Simulation wird gestoppt, wenn die Number of errors oder die Number of bits erreicht wurde.
Geben Sie 1e7
als Number of bits ein.
Number of bits ist ebenfalls ein Stoppkriterium für die Simulation. Die Simulation wird gestoppt, wenn die Anzahl der Bits, die Sie in diesem Parameter angegeben haben, übertragen wurde oder wenn die Number of errors erreicht wurde. In diesem Beispiel wird die Simulation gestoppt, wenn 10 Millionen Bits übertragen wurden oder wenn 200 Fehler erkannt wurden.
Klicken Sie auf die Schaltfläche Browse und wählen Sie All Files für das Feld Files of type aus.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_basic.slx
aus und klicken Sie auf Run.
Die App Bit Error Rate Analysis führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
Faltungscodierung und Viterbi-Decodierung mit fester Entscheidung einfügen
Ändern Sie das Basis-Kommunikationsmodell, indem Sie die Vorwärtsfehlerkorrektur einfügen. Durch Hinzufügen der Vorwärtsfehlerkorrektur zum Basis-Kommunikationsmodell lässt sich die Systemleistung verbessern. Bei der Vorwärtsfehlerkorrektur sendet der Sender neben den Nachrichtenbits auch redundante Bits durch einen drahtlosen Kanal. Wenn der Empfänger das übertragene Signal akzeptiert, verwendet er die Redundanzbits, um Fehler, die durch den Kanal entstanden sein können, zu erkennen und zu korrigieren.
In diesem Abschnitt des Entwurfs-Workflows wird eine Faltungscodierung und eine Viterbi-Decodierung zum Kommunikationssystem hinzugefügt. Dieses Kommunikationssystem verwendet die Viterbi-Decodierung mit fester Entscheidung. Bei der Viterbi-Decodierung mit fester Entscheidung ordnet der Demodulator das empfangene Signal den Bits zu und übergibt diese Bits dann zur Fehlerkorrektur an den Viterbi-Decoder.
In MATLAB
In dieser Iteration des Entwurfs-Workflows wird in der MATLAB-Datei, die Sie verwenden, an der Stelle begonnen, an der im vorherigen Abschnitt der Workflow geendet hat. Diese Datei fügt dem Kommunikationssystem die zwei zusätzlichen System objects comm.ConvolutionalEncoder
und comm.ViterbiDecoder
hinzu. Die Gesamtstruktur des Codes wird nicht geändert. Er enthält einfach eine zusätzliche Funktionalität.
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie die -Kontrollkästchen für die zwei Diagramme, die durch die App im vorherigen Schritt generiert wurden.
Klicken Sie auf Theoretical.
Geben Sie 0:7
als EbNo range ein.
Wählen Sie als Channel Coding aus.
Wählen Sie als Decision method aus.
In diesem Beispiel wird die Viterbi-Decodierung mit fester Entscheidung verwendet. Der Demodulator ordnet das empfangene Signal den Bits zu und übergibt diese Bits dann zur Fehlerkorrektur an den Viterbi-Decoder.
Klicken Sie auf Plot.
Die App generiert die theoretische BER-Kurve.
Klicken Sie auf Monte Carlo.
Geben Sie 0:7
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_m.m
aus und klicken Sie auf Open.
Klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
In Simulink
Greifen Sie auf die App Bit Error Rate Analysis zu.
Klicken Sie auf die Registerkarte Theoretical.
Geben Sie 0:7
als EbNo range ein.
Wählen Sie als Channel Coding aus.
Wählen Sie als Decision method aus.
In diesem Beispiel wird die Viterbi-Decodierung mit fester Entscheidung verwendet. Der Demodulator ordnet das empfangene Signal den Bits zu und übergibt diese Bits dann zur Fehlerkorrektur an den Viterbi-Decoder.
Klicken Sie auf Plot.
Die App generiert die theoretische BER-Kurve.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:7
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse und wählen Sie All Files für das Feld Files of type aus.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi.slx
aus und klicken Sie auf Open.
Klicken Sie auf Run. Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
Ergebnisse mithilfe der Decodierung mit veränderlicher Entscheidung verbessern
Verwenden Sie die Decodierung mit veränderlicher Entscheidung, um die BER-Leistung zu verbessern. Im vorherigen Abschnitt dieses Workflows werden die Demodulation mit fester Entscheidung und die Viterbi-Decodierung mit fester Entscheidung verwendet. Dies sind Prozesse, bei denen Symbole bestimmten Bits zugeordnet werden. In diesem Abschnitt des Workflows werden die Demodulation mit veränderlicher Entscheidung und die Viterbi-Decodierung mit veränderlicher Entscheidung verwendet. Bei der Demodulation mit veränderlicher Entscheidung erfolgt keine Zuordnung der empfangenen Symbole zu Bits. Die Symbole werden stattdessen Log-Likelihood-Verhältnissen zugeordnet. Wenn der Viterbi-Decoder Log-Likelihood-Verhältnisse (Log-Likelihood Ratios, LLRs) verarbeitet, verbessert sich die BER-Leistung des Systems.
In MATLAB
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie die -Kontrollkästchen für die zwei Diagramme, die durch die App im vorherigen Schritt generiert wurden.
Klicken Sie auf Theoretical.
Geben Sie 0:5
als EbNo range ein.
Wählen Sie als Decision method aus.
In diesem Beispiel wird die Viterbi-Decodierung mit veränderlicher Entscheidung verwendet. Der Demodulator ordnet das empfangene Signal den Log-Likelihood-Verhältnissen zu, wodurch sich die BER-Leistung verbessert.
Klicken Sie auf Plot.
Die App generiert die theoretische BER-Kurve.
Klicken Sie auf Monte Carlo.
Geben Sie 0:5
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_soft_m.m
aus und klicken Sie auf Run.
Die App führt die Simulation aus und generiert die simulierten Punkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
In Simulink
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie die -Kontrollkästchen für die zwei Diagramme, die durch die App im vorherigen Schritt generiert wurden.
Klicken Sie auf Theoretical.
Geben Sie 0:5
als EbNo range ein.
Wählen Sie als Decision method aus.
In diesem Beispiel wird die Viterbi-Decodierung mit veränderlicher Entscheidung verwendet. Der Demodulator ordnet das empfangene Signal den Log-Likelihood-Verhältnissen zu, wodurch sich die BER-Leistung verbessert.
Klicken Sie auf Plot.
Die App generiert die theoretische BER-Kurve.
Klicken Sie auf Monte Carlo.
Geben Sie 0:5
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse und wählen Sie All Files für das Feld Files of type aus.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_soft.slx
aus und klicken Sie auf Run.
Im Diagramm der theoretischen Kurve bei Decodierung mit veränderlicher Entscheidung können Sie an der BER-Kurve Verbesserungen von etwa 2 dB relativ zur Decodierung mit fester Entscheidung beobachten. Wie Sie sehen, zeigen die Ergebnisse der Simulation ebenfalls eine ähnliche BER-Verbesserung.
Turbo-Codierung zur Verbesserung der BER-Leistung verwenden
Mit Turbo-Codes lässt sich die BER-Leistung gegenüber der Viterbi-Decodierung mit veränderlicher Entscheidung erheblich verbessern. Bei der Turbo-Codierung werden zwei Faltungscodierungen parallel am Sender und zwei A-Posteriori-Probability-(APP-)Decodierungen (A-posteriori-Wahrscheinlichkeits-Decodierungen) in Reihe am Empfänger verwendet. In diesem Beispiel wird eine Turbo-Codierung im Verhältnis 1/3 verwendet. Für jedes Eingabebit enthält die Ausgabe 1 systematisches Bit und 2 Paritätsbits, also insgesamt drei Bits. Mit der Turbo-Codierung lassen sich BER-Leistungen bei viel niedrigeren SNR-Werten als mit der Faltungscodierung erreichen. Dadurch werden bei dieser Iteration EbNo-Werte eines niedrigeren Bereichs als im vorherigen Abschnitt verwendet.
In MATLAB
Greifen Sie auf die App Bit Error Rate Analysis zu.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:0.2:1.2
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_zTurbo_soft_m.m
aus und klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve.
In Simulink
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie die -Kontrollkästchen für das letzte Diagramm, das durch die App im vorherigen Abschnitt generiert wurde.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:0.2:1.2
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse und wählen Sie All Files für das Feld Files of type aus.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_turbo.slx
aus und klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve.
Ein Rayleigh-Kanalmodell anwenden
Die vorherigen Entwurfsiterationen modellieren Schmalband-Kommunikationssysteme, die auch mit einem AWGN-Kanal dargestellt werden können. Für Kommunikationssysteme mit hohen Datenübertragungsraten ist aber ein Breitband-Kanal erforderlich. Breitband-Kommunikationskanäle sind stark für die Effekte der Mehrweg-Übertragung anfällig, durch die das Symbolübersprechen (InterSymbol Interference, ISI) entsteht. Deshalb müssen Sie Breitband-Kanäle als Mehrweg-Fadingkanäle modellieren. Bei dieser Iteration des Entwurfs-Workflows wird ein Rayleigh-Mehrweg-Fadingkanal verwendet, der voraussetzt, dass keine direkte Sichtlinie zwischen Sender und Empfänger vorhanden ist.
In MATLAB
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie das -Kontrollkästchen für das Diagramm, das durch die App im vorherigen Schritt generiert wurde.
Klicken Sie auf Monte Carlo.
Geben Sie 0:9
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_rayleigh_m.m
aus und klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
Bei vorhandenem Mehrweg-Fading verringert sich die BER-Leistung auf die eines binären Kanals mit einem gleichbleibenden Wert von 0,5. Um den Effekt des Mehrweg-Fadings zu korrigieren, müssen Sie dem Kommunikationssystem einen Ausgleich hinzufügen.
In Simulink
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie das -Kontrollkästchen, um das Diagramm, das durch die App im vorherigen Schritt generiert wurde, zu löschen.
Klicken Sie auf Monte Carlo.
Geben Sie 0:7
als EbNo range ein.
Geben Sie 200
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse und wählen Sie All Files für das Feld Files of type aus.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_rayleigh.slx
aus und klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
Bei vorhandenem Mehrweg-Fading verringert sich die BER-Leistung auf die eines binären Kanals mit einem gleichbleibenden Wert von 0,5. Um den Effekt des Mehrweg-Fadings zu korrigieren, müssen Sie dem Kommunikationssystem einen Ausgleich hinzufügen.
OFDM-basierten Ausgleich zum Korrigieren des Mehrweg-Fadings verwenden
Verwenden Sie das Multiplexing mit orthogonaler Frequenzteilung (Orthogonal Frequency-Division Multiplexing, OFDM), um den Effekt des Mehrweg-Fadings, der durch den Rayleigh-Fadingkanal verursacht wird, zu korrigieren. OFDM-Übertragungsschemas sind eine Möglichkeit zur effektiven Durchführung eines Frequenzbereichsausgleichs. Bei dieser Entwurfsiteration werden dem Kommunikationssystem ein OFDM-Sender, ein OFDM-Empfänger und ein Frequenzbereichsentzerrer hinzugefügt.
In MATLAB
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie die -Kontrollkästchen für das Simulationsdiagramm, das im vorherigen Schritt generiert wurde.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:9
als EbNo range ein.
Geben Sie 6000
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_Rayleigh_OFDM_m.m
aus und klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve.
In Simulink
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie die -Kontrollkästchen für die Diagramme, die durch die App im vorherigen Schritt generiert wurden.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:9
als EbNo range ein.
Geben Sie 6000
als Number of errors ein.
Geben Sie 5e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse und wählen Sie All Files für das Feld Files of type aus.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_rayleigh_OFDM.slx
aus und klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
Mehrere Antennen zur weiteren Verbesserung der Systemleistung verwenden
Das gleichzeitige Senden von Kopien eines Signals über mehrere Antennen kann die Wahrscheinlichkeit dafür, dass der Empfänger das übertragene Signal korrekt wiederherstellt, beträchtlich erhöhen. Dieses Phänomen wird auch als Sendediversität bezeichnet. Der Preis dieser Leistungsverbesserung ist allerdings eine Zunahme der Rechenkomplexität im Empfänger.
In MATLAB
Greifen Sie auf die App Bit Error Rate Analysis zu.
Deaktivieren Sie das -Kontrollkästchen, um das Simulationsdiagramm, das im vorherigen Schritt generiert wurde, zu löschen.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:9
als EbNo range ein.
Geben Sie 1000
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_rayleigh_OFDM_MIMO_m.m
aus und klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der theoretischen BER-Kurve.
In Simulink
Greifen Sie auf die App Bit Error Rate Analysis zu.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:9
als EbNo range ein.
Geben Sie 700
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse und wählen Sie All Files für das Feld Files of type aus.
Navigieren Sie zu matlab/help/toolbox/comm/examples
, wählen Sie doc_design_iteration_viterbi_rayleigh_OFDM_MIMO.slx
aus und klicken Sie auf Run.
Die Simulation mithilfe von MATLAB Coder beschleunigen
Alle Funktionen und System objects, die in diesem Workflow zur Entwurfsiteration verwendet werden, unterstützen die C Code-Generierung. Wenn Sie eine MATLAB Coder™-Lizenz besitzen, können Sie die Simulation beschleunigen, indem Sie mit dem Befehl codegen
eine MEX-Datei generieren.
In MATLAB
Kopieren Sie die Datei „doc_design_iteration_viterbi_rayleigh_OFDM_MIMO_m.m“ in einen Ordner, der sich nicht im MATLAB-Pfad befindet. Zum Beispiel: C:\Temp.
Wechseln Sie mit Ihrem Arbeitsverzeichnis in den Ordner, den Sie soeben erstellt haben.
Führen Sie die folgenden Befehle aus, um für jedes der Eingabeargumente in der Funktion „doc_design_iteration_viterbi_rayleigh_OFDM_MIMO_m“ einen numerischen Wert festzulegen. Beispiel:
EbNo=1;
MaxNumErrs=200;
MaxNumBits=1e7;
Führen Sie den Befehl „codegen“ aus, um die ausführbare MATLAB-Datei zu generieren.
codegen -args {EbNo,MaxNumErrs,MaxNumBits} doc_design_iteration_viterbi_rayleigh_OFDM_MIMO_m
Die Dateierweiterung der ausführbaren MATLAB-Datei, die generiert wird, hängt von Ihrem Betriebssystem ab. Bei 64-Bit-Windows® als Beispiel lautet die Dateierweiterung „.mexw64“. In diesem Fall lautet der vollständige Dateiname „doc_design_iteration_viterbi_rayleigh_OFDM_MIMO_m_mex.mexw64“.
Wenn Sie die von Ihnen generierte MEX-Datei in der App ausführen, erhalten Sie die Ergebnisse der Simulation schneller.
Greifen Sie auf die App Bit Error Rate Analysis zu.
Klicken Sie auf die Registerkarte Monte Carlo.
Geben Sie 0:9
als EbNo range ein.
Geben Sie 700
als Number of errors ein.
Geben Sie 1e7
als Number of bits ein.
Klicken Sie auf die Schaltfläche Browse und wählen Sie All Files
aus.
Navigieren Sie zu Ihrem in Schritt 1 erstellen Ordner und klicken Sie auf Run.
Die App führt die Simulation aus und generiert simulierte Punkte entlang der BER-Kurve. Vergleichen Sie die BER-Simulationskurve mit der vorherigen Kurve. Eine Abweichung in der BER-Kurve der MEX-Datei und der MATLAB-Datei, aus der sie generiert wurde, hängt mit dem Startwert des Zufallszahlengenerators zusammen und ist statistisch unbedeutend. In diesem Beispiel generiert die App die Kurve viel schneller, wenn Sie MATLAB Coder verwenden, um C Code zu generieren. Sie werden feststellen, dass die App in etwa 1/4 der Zeit, die für die ursprüngliche Simulation benötigt wurde, ähnliche BER-Ergebnisse generiert.