Programming lesson
Kommunikationssysteme Labor Skript 4: Rauschmodellierung und Filteroptimierung in MATLAB
Lerne, wie du thermisches Rauschen in MATLAB modellierst, die Bitfehlerwahrscheinlichkeit berechnest und optimale Filter für die AM-Demodulation auswählst – praxisnah erklärt mit aktuellen Trends.
Einführung in das Labor Skript 4 der Kommunikationssysteme
Im Kommunikationssysteme Labor Skript 4 geht es um die praktische Umsetzung von Konzepten aus der Vorlesung. Du wirst MATLAB nutzen, um ein reales Übertragungssystem mit thermischem Rauschen zu simulieren und die Auswirkungen von Temperatur, Bandbreite und Signalstärke auf die Informationsrate und Bitfehlerwahrscheinlichkeit zu analysieren. Zudem optimierst du Filter für die Demodulation eines amplitudenmodulierten Signals. Dieses Tutorial begleitet dich Schritt für Schritt durch die Aufgaben – mit vielen Beispielen und Tipps, die dir helfen, die besten Ergebnisse zu erzielen.
Grundlagen der Rauschmodellierung in MATLAB
Thermisches Rauschen (auch Johnson-Nyquist-Rauschen) folgt einer Gaußschen Verteilung und ist in jedem elektrischen Leiter vorhanden. In deinem MATLAB-Code modellierst du dieses Rauschen mit der Funktion randn. Die Rauschleistung hängt von der Temperatur T (in Kelvin), der Bandbreite B (in Hz) und der Boltzmann-Konstante k ab: P_noise = k * T * B. Für ein binäres Signal mit ±1 V liegt die Signalleistung bei 1 W (angenommener Widerstand 1 Ω).
Variation der Temperatur und Bandbreite
Deine Aufgabe ist es, ein MATLAB-Skript zu schreiben, das dem Benutzer erlaubt, Signalstärke, Bandbreite und Temperatur zu variieren. Erstelle zwei Plots: einen für die maximale Informationsrate (Shannon-Hartley-Gesetz) und einen für die Bitfehlerwahrscheinlichkeit (BER) in Abhängigkeit von der Temperatur. Verwende dabei drei Bandbreiten-Szenarien: feste Bandbreite, erhöhte Bandbreite und verringerte Bandbreite. Die maximale Informationsrate berechnest du mit C = B * log2(1 + SNR), wobei SNR = P_signal / P_noise ist. Die Bitfehlerwahrscheinlichkeit für ein binäres antipodales Signal im Gaußschen Rauschen ergibt sich aus BER = 0.5 * erfc(sqrt(SNR)).
% Beispielcode für die BER-Berechnung
T = 290:10:400; % Temperatur in Kelvin
B = 1e6; % Bandbreite 1 MHz
k = 1.38e-23; % Boltzmann-Konstante
P_signal = 1; % Signalstärke 1 W
P_noise = k * T * B;
SNR = P_signal ./ P_noise;
BER = 0.5 * erfc(sqrt(SNR));
plot(T, BER);
xlabel('Temperatur (K)');
ylabel('Bitfehlerwahrscheinlichkeit');
title('BER vs. Temperatur bei fester Bandbreite');Optimale Betriebsparameter empfehlen
Nach deiner Analyse solltest du eine Empfehlung für Signalstärke, Bandbreite und Temperatur abgeben. Bedenke: Eine niedrige Temperatur reduziert das Rauschen, aber in der Praxis sind Umgebungstemperaturen um 300 K üblich. Eine höhere Bandbreite erhöht die Informationsrate, aber auch das Rauschen. Ein guter Kompromiss ist z.B. eine Bandbreite von 1 MHz bei Raumtemperatur und einer Signalstärke von 1 W – ähnlich wie bei einer modernen WLAN-Verbindung, die bei 2,4 GHz arbeitet. Aktuell (Mai 2026) setzen viele Smart-Home-Geräte auf energieeffiziente Kommunikation mit niedrigen Sendeleistungen, daher sind realistische Werte gefragt.
Dämpfung und Signal-Rausch-Verhältnis über Distanz
In Teil b berücksichtigst du die Dämpfung von 2 dB pro km. Schreibe eine MATLAB-Funktion, die das SNR in Abhängigkeit von der Entfernung darstellt. Die Dämpfung reduziert die Signalleistung exponentiell: P_signal(d) = P_signal(0) * 10^(-alpha * d / 10), mit alpha = 2 dB/km. Plotte das SNR über eine Distanz von 0 bis 10 km. Wähle sinnvolle Werte aus deiner Empfehlung aus Teil a.
% Beispielcode für SNR über Distanz
d = 0:0.1:10; % Distanz in km
alpha = 2; % Dämpfung in dB/km
P_signal_0 = 1; % Sendeleistung in W
P_noise = k * 300 * 1e6; % Rauschleistung bei 300 K und 1 MHz
P_signal_d = P_signal_0 * 10.^(-alpha * d / 10);
SNR_d = P_signal_d / P_noise;
plot(d, 10*log10(SNR_d));
xlabel('Distanz (km)');
ylabel('SNR (dB)');
title('SNR-Verlust über Distanz');Filteroptimierung für die AM-Demodulation
Für Frage 2 nutzt du deine Arbeit aus Lab 3 als Basis. Du modulierst eine Sinus-Trägerwelle mit einem binären digitalen Signal, fügst weißes Gaußsches Rauschen hinzu und demodulierst das Signal. Variiere die Rauschamplitude und die Länge eines gleitenden Medianfilters. Finde die optimale Filterlänge, die die Bitfehlerrate minimiert. Probiere dann mindestens zwei weitere Filter aus, z.B. einen FFT-basierten Filter (Frequenzdomäne) und einen Butterworth-Filter. Vergleiche die Ergebnisse und empfehle den besten Filter.
Gleitender Medianfilter
Der gleitende Medianfilter ersetzt jeden Datenpunkt durch den Median einer bestimmten Anzahl benachbarter Punkte. Eine zu kleine Fensterlänge unterdrückt Rauschen nicht ausreichend, eine zu große verwischt die Signalkanten. Für ein binäres Signal mit einer Bitrate von 1 kbps und einer Abtastrate von 10 kHz liegt die optimale Fensterlänge oft zwischen 5 und 15 Abtastpunkten. Experimentiere mit verschiedenen Längen und dokumentiere die Ergebnisse.
% Beispiel für gleitenden Medianfilter
fensterlaenge = 11;
gefiltert = medfilt1(empfangen, fensterlaenge);FFT-basierter Filter
Ein Filter im Frequenzbereich nutzt die schnelle Fourier-Transformation (FFT). Du wandelst das Signal ins Frequenzspektrum um, entfernst unerwünschte Frequenzen (z.B. alles außerhalb des Trägerbands) und transformierst zurück. Dies ist besonders effektiv bei schmalbandigem Rauschen. MATLAB-Befehle: Y = fft(signal); Y(hoheFrequenzen) = 0; signal_gefiltert = ifft(Y);.
Butterworth-Filter
Ein Butterworth-Filter hat einen maximal flachen Frequenzgang im Durchlassbereich. Du kannst butter und filter verwenden. Wähle eine Grenzfrequenz knapp über der maximalen Signalfrequenz. Beispiel: [b,a] = butter(4, 0.2); signal_gefiltert = filter(b, a, empfangen);.
Praktische Tipps für dein MATLAB-Skript
- Kommentiere deinen Code ausführlich, damit andere ihn leicht verstehen und ausführen können.
- Verwende
input-Funktionen, um dem Benutzer die Eingabe von Parametern zu ermöglichen. - Erstelle übersichtliche Plots mit
subplot, um mehrere Graphen in einer Abbildung darzustellen. - Achte auf sinnvolle Achsenbeschriftungen und Titel.
Zusammenfassung und Ausblick
Mit diesem Tutorial hast du gelernt, wie du thermisches Rauschen in MATLAB modellierst, die Bitfehlerwahrscheinlichkeit berechnest und Filter für die Demodulation optimierst. Diese Fähigkeiten sind nicht nur für dein Labor wichtig, sondern auch für reale Anwendungen wie 5G, Satellitenkommunikation oder das Internet der Dinge (IoT). Aktuelle Trends wie KI-gestützte Rauschunterdrückung oder adaptive Filter in Smartphones zeigen, wie relevant diese Konzepte sind. Viel Erfolg bei deiner Abgabe!