initial commit
commit
7b19deab4c
File diff suppressed because one or more lines are too long
@ -0,0 +1,134 @@
|
|||||||
|
%==========================================================================
|
||||||
|
% Rechnerübung zur Signalübertragung II
|
||||||
|
% Versuch 1: Fehlerwahrscheinlichkeit
|
||||||
|
%==========================================================================
|
||||||
|
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
% Teil 1.1 Verteilungsdichtefunktion von weißem, gauß-verteiltem Rauschen
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
clear all;
|
||||||
|
close all;
|
||||||
|
clc;
|
||||||
|
|
||||||
|
% Dargestellter Bereich
|
||||||
|
x = -9:0.1:9;
|
||||||
|
% Mittelwert des Rauschens
|
||||||
|
m = 0;
|
||||||
|
% Standardabweichung bzw. Leistung
|
||||||
|
sigma = 1;
|
||||||
|
% Gauß-Verteilungsdichtefunktion
|
||||||
|
py1 = gauss_pdf(x,sigma,m);
|
||||||
|
sigma = 2;
|
||||||
|
py2 = gauss_pdf(x,sigma,m);
|
||||||
|
|
||||||
|
% py1 und py2 plotten
|
||||||
|
figure(1)
|
||||||
|
axis([-3 3 0 0.5])
|
||||||
|
plot(x,py1,'LineWidth',2.5,'Color',[1 0 0])
|
||||||
|
axis([-3 3 0 0.5])
|
||||||
|
grid on
|
||||||
|
hold on
|
||||||
|
plot(x,py2,'LineWidth',2.5,'Color',[0 0 1])
|
||||||
|
title('Abbildung 1: Verlauf der Verteilungsdichtefunktion eines Gauß-Prozesses für sigma1=1.0 und sigma2=2.0')
|
||||||
|
xlabel('x')
|
||||||
|
ylabel('py1(x,1.0,0.0) (rot), py2(x,2.0,0.0) (blau)')
|
||||||
|
hold off
|
||||||
|
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
% Teil 1.2 Sendestatistik bei bipolarer Übertragung
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
% U0 = 0 wird mit der Wahrscheinlichkeit p0 und U1 = +2 mit der
|
||||||
|
% Wahrscheinlichkeit p1 gesendet.
|
||||||
|
% Bei optimal codierter Quelle gilt p0 = 0.5
|
||||||
|
|
||||||
|
% Hinweis zur Frage a): Hier können Sie p0 ändern -->
|
||||||
|
p0 = 0.5;
|
||||||
|
p1 = 1 - p0;
|
||||||
|
|
||||||
|
% Verteilungsdichtefunktion am Kanalausgang für sigma = 1:
|
||||||
|
p0_py0 = p0*py1;
|
||||||
|
figure(2)
|
||||||
|
axis([-2 4 0 0.4])
|
||||||
|
plot(x,p0_py0,'LineWidth',2.5,'Color',[1 0 0])
|
||||||
|
axis([-2 4 0 0.4])
|
||||||
|
grid on
|
||||||
|
hold on
|
||||||
|
|
||||||
|
p1_py1 = p1*gauss_pdf(x,1,2);
|
||||||
|
plot(x,p1_py1,'LineWidth',2.5,'Color',[0 0 1])
|
||||||
|
title('Abbildung 2: Verlauf der Verteilungsdichtefunktionen mit sigma=1')
|
||||||
|
xlabel('x')
|
||||||
|
ylabel('p0.py0(x,1.0,0.0) (rot), p1.py1(x,1.0,2.0) (blau)')
|
||||||
|
hold off
|
||||||
|
|
||||||
|
|
||||||
|
% Verteilungsdichtefunktion am Kanalausgang für sigma = 2:
|
||||||
|
p0_py0 = p0*gauss_pdf(x,2,0);
|
||||||
|
figure(3)
|
||||||
|
axis([-4 6 0 0.2])
|
||||||
|
plot(x,p0_py0,'LineWidth',2.5,'Color',[1 0 0])
|
||||||
|
axis([-4 6 0 0.2])
|
||||||
|
grid on
|
||||||
|
hold on
|
||||||
|
|
||||||
|
p1_py1 = p1*gauss_pdf(x,2,2);
|
||||||
|
plot(x,p1_py1,'LineWidth',2.5,'Color',[0 0 1])
|
||||||
|
title('Abbildung 3: Verlauf der Verteilungsdichtefunktionen mit sigma=2')
|
||||||
|
xlabel('x')
|
||||||
|
ylabel('p0.py0(x,2.0,0.0) (rot), p1.py1(x,2.0,2.0) (blau)')
|
||||||
|
hold off
|
||||||
|
|
||||||
|
% Verteilungsdichtefunktion mit höherem Sendepegel
|
||||||
|
% U0 = 0, U1 = +4
|
||||||
|
p0_py0 = p0*gauss_pdf(x,2,0);
|
||||||
|
figure(4)
|
||||||
|
axis([-4 8 0 0.2])
|
||||||
|
plot(x,p0_py0,'LineWidth',2.5,'Color',[1 0 0])
|
||||||
|
axis([-4 8 0 0.2])
|
||||||
|
grid on
|
||||||
|
hold on
|
||||||
|
|
||||||
|
p1_py1 = p1*gauss_pdf(x,2,4);
|
||||||
|
plot(x,p1_py1,'LineWidth',2.5,'Color',[0 0 1])
|
||||||
|
title('Abbildung 4: Verlauf der Verteilungsdichtefunktionen bei höherer Rauschleistung und höherem Sendepegel')
|
||||||
|
xlabel('x')
|
||||||
|
ylabel('p0.py0(x,2.0,0.0) (rot), p1.py1(x,2.0,4.0) (blau)')
|
||||||
|
hold off
|
||||||
|
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
% Teil 1.3 Symbolfehlerwahrscheinlichkeit bei mehrstufiger Übertragung
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
% Die Symbolfehlerwahrscheinlichkeiten für bestimmte SNR
|
||||||
|
|
||||||
|
SNR = 0:0.01:100;
|
||||||
|
figure(5)
|
||||||
|
|
||||||
|
% stufe = 2
|
||||||
|
wk2 = symbol_fwk(SNR,2);
|
||||||
|
semilogy(10*log10(SNR),wk2,'LineWidth',2.5,'Color',[1 0 0]);
|
||||||
|
axis([0 20 1e-10 1])
|
||||||
|
hold on
|
||||||
|
grid on
|
||||||
|
|
||||||
|
% stufe = 4
|
||||||
|
wk4 = symbol_fwk(SNR,4);
|
||||||
|
semilogy(10*log10(SNR),wk4,'LineWidth',2.5,'Color',[0 0 1]);
|
||||||
|
|
||||||
|
% stufe = 6
|
||||||
|
wk6 = symbol_fwk(SNR,6);
|
||||||
|
semilogy(10*log10(SNR),wk6,'LineWidth',2.5,'Color',[0 1 0]);
|
||||||
|
|
||||||
|
% stufe = 8
|
||||||
|
wk8 = symbol_fwk(SNR,8);
|
||||||
|
semilogy(10*log10(SNR),wk8,'LineWidth',2.5,'Color',[1 0 1]);
|
||||||
|
|
||||||
|
% stufe = 16
|
||||||
|
wk16 = symbol_fwk(SNR,16);
|
||||||
|
semilogy(10*log10(SNR),wk16,'LineWidth',2.5,'Color',[0 1 1]);
|
||||||
|
title('Abbildung 5: Die Symbolfehlerwahrscheinlichkeit in Abhängigkeit vom SNR')
|
||||||
|
xlabel('10*log10(SNR)')
|
||||||
|
ylabel('P(SNR,2) (rot), P(SNR,4) (blau), P(SNR,6) (grün), P(SNR,8) (magenta), P(SNR,16) (cyan)')
|
||||||
|
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
function p=fehlerwahrscheinlichkeit(Ue, func0, func1)
|
||||||
|
err0 = integral(func0, Ue, Inf);
|
||||||
|
err1 = integral(func1, -Inf, Ue);
|
||||||
|
p=err0+err1;
|
||||||
|
end
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
function p = gauss_pdf(x,sigma,m)
|
||||||
|
% gauss_pdf berechnet die Verteilungsdichtefunktion
|
||||||
|
% out = gauss_pdf(x,sigma,m)
|
||||||
|
% INPUT:
|
||||||
|
% x - Dargestellter Bereich
|
||||||
|
% sigma - Mittelwert des Rauschens
|
||||||
|
% m - Standardabweichung bzw. Leistung
|
||||||
|
% OUTPUT:
|
||||||
|
% p - Gauß-Verteilungsdichtefunktion
|
||||||
|
p = 1/sqrt(2*pi*sigma.^2)*exp(-(x-m).^2/(2*sigma.^2));
|
||||||
|
end
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
function wk = symbol_fwk(SNR,stufe)
|
||||||
|
% symbol_fwk berechnen die Symbolfehlerwahrscheinlichkeit für m-stufigen
|
||||||
|
% Systemen
|
||||||
|
% out = gauss_pdf(x,sigma,m)
|
||||||
|
% INPUT:
|
||||||
|
% SNR - Signal-zu-Rausch-Verhältnis
|
||||||
|
% stufe - Amplitudenstufen
|
||||||
|
% OUTPUT:
|
||||||
|
% wk - Symbolfehlerwahrscheinlichkeit
|
||||||
|
wk =(stufe-1)/stufe*(1-erf((3/(stufe.^2-1)*SNR/2).^0.5));
|
||||||
|
end
|
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,188 @@
|
|||||||
|
%==========================================================================
|
||||||
|
% Rechnerübung zur Signalübertragung II
|
||||||
|
% Versuch 2: Nyquist-Kriterium
|
||||||
|
%==========================================================================
|
||||||
|
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
% Teil 2.1 Sendesignal und Ausgangssignal des Korrelationsfilters erzeugen
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
clear all;
|
||||||
|
close all;
|
||||||
|
clc;
|
||||||
|
|
||||||
|
% Einige Definitionen
|
||||||
|
% Definition der Taktzeit:
|
||||||
|
T = 1.0;
|
||||||
|
% Dargestellter Zeitbereich:
|
||||||
|
t = 0:0.005:9;
|
||||||
|
% Definition einer Beispielbinärfolge mit der Länge = 8
|
||||||
|
% Sie können die Binärfolge ändern -->
|
||||||
|
a = [1 1 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
% Sendesignal m(t)
|
||||||
|
m = 0;
|
||||||
|
for i = 0:7
|
||||||
|
m = m + a(i+1)*(heaviside(t-i)-heaviside(t-i-1));
|
||||||
|
end
|
||||||
|
|
||||||
|
% m(t) plotten
|
||||||
|
figure(1)
|
||||||
|
plot(t,m,'LineWidth',2.5,'Color',[1 0 0]);
|
||||||
|
axis([0 8 -0.5 1.5]);
|
||||||
|
grid on
|
||||||
|
hold off
|
||||||
|
title('Abbildung 2: Verlauf des Sendesignals m(t)')
|
||||||
|
xlabel('t')
|
||||||
|
ylabel('m(t)')
|
||||||
|
|
||||||
|
% Ausgangssignal des Korrelationsfilters g(t)
|
||||||
|
g = 0;
|
||||||
|
for i = 0:7
|
||||||
|
g = g + a(i+1)*(((heaviside(t-i)-heaviside(t-i-1)).*(t-i))...
|
||||||
|
+((heaviside(t-i-1)-heaviside(t-i-2)).*(i+2-t))) ;
|
||||||
|
end
|
||||||
|
|
||||||
|
% g(t) plotten
|
||||||
|
figure(2)
|
||||||
|
plot(t,g,'LineWidth',2.5,'Color',[0 0 1]);
|
||||||
|
axis([0 8 -0.5 1.5]);
|
||||||
|
grid on
|
||||||
|
title('Abbildung 3: Ausgangssignal des Korrelationsfilters im Falle des ungestörten Kanals')
|
||||||
|
xlabel('t')
|
||||||
|
ylabel('g(t)')
|
||||||
|
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
% Teil 2.2 Erhöhung der Dauer der Autokorrelationsfunktion
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
% TD ist die Dauer der Autokorrelationsfunktion
|
||||||
|
% Grundeinstellung TD = 1.0, hier kann die Dauer beispielsweise auf den
|
||||||
|
% Wert 1.4 erhöht werden.
|
||||||
|
% Sie können TD ändern -->
|
||||||
|
TD = 1.0;
|
||||||
|
|
||||||
|
Dif = TD - 1;
|
||||||
|
|
||||||
|
% Ausgangssignal des Korrelationsfilters g(t)
|
||||||
|
figure(3);
|
||||||
|
hold on;
|
||||||
|
g_TD = 0;
|
||||||
|
g_einzel = zeros(8,1801);
|
||||||
|
for i = 0:7
|
||||||
|
g_einzel(i+1,:) = a(i+1)*(((heaviside(t-i+Dif)-heaviside(t-i-1)).*(t/TD-i/TD+(1-1/TD)))...
|
||||||
|
+((heaviside(t-i-1)-heaviside(t-i-2-Dif)).*(i/TD-t/TD+(1+TD)/TD)));
|
||||||
|
% die einzelnen Autokorrelationsfunktionen plotten
|
||||||
|
switch i
|
||||||
|
case 0
|
||||||
|
plot(t,g_einzel(i+1,:),'b--','LineWidth',2);
|
||||||
|
case 1
|
||||||
|
plot(t,g_einzel(i+1,:),'r--','LineWidth',2);
|
||||||
|
case 2
|
||||||
|
plot(t,g_einzel(i+1,:),'c--','LineWidth',2);
|
||||||
|
case 3
|
||||||
|
plot(t,g_einzel(i+1,:),'m--','LineWidth',2);
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
g_TD = g_TD + a(i+1)*(((heaviside(t-i+Dif)-heaviside(t-i-1)).*(t/TD-i/TD+(1-1/TD)))...
|
||||||
|
+((heaviside(t-i-1)-heaviside(t-i-2-Dif)).*(i/TD-t/TD+(1+TD)/TD)));
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
% g(t) plotten
|
||||||
|
|
||||||
|
plot(t,g_TD,'g');
|
||||||
|
axis([0 8 -0.5 2]);
|
||||||
|
grid on
|
||||||
|
title('Abbildung 4: Ausgangssignal des Korrelationsfilter im Falle des ungestörten Kanals mit 4 einzeln eingezeichneten verschobenen Autokorrelationsfunktionen')
|
||||||
|
xlabel('t')
|
||||||
|
ylabel('Summe g(t)=grün, einzelne g(t-T)=blau,g(t-2T)=rot,g(t-3T)=cyan,g(t-4T)=magenta')
|
||||||
|
|
||||||
|
% Abtastung der g_TD
|
||||||
|
% Eingestellte Schwelle: C=0.5
|
||||||
|
C = 0.5;
|
||||||
|
g_get(1,8) = 0;
|
||||||
|
for i = 1:8
|
||||||
|
if g_TD(i*200+1) > C
|
||||||
|
g_get(i) = 1;
|
||||||
|
else g_get(i) = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
% Zum Vergleich sind hier die gesendeten Datenbits a[i] und die emfangenen
|
||||||
|
% Datenbits g_TD[i] untereinander dargestellt --> auf Command Window
|
||||||
|
disp('TD:')
|
||||||
|
disp(TD)
|
||||||
|
disp('die gesendeten Datenbits a[i]:')
|
||||||
|
disp(a)
|
||||||
|
disp('die empfangenen Datenbits g[i]:')
|
||||||
|
disp(g_get)
|
||||||
|
|
||||||
|
% Anzahl der fehlerhaften Datenbits
|
||||||
|
% Verändern Sie die Dauer der Autokorrelationsfunktion TD auf höhere
|
||||||
|
% Werte!
|
||||||
|
error1 = 0;
|
||||||
|
for i = 1:8
|
||||||
|
error1 = error1 + abs(g_get(i) - a(i));
|
||||||
|
end
|
||||||
|
disp('Anzahl der fehlerhaften Datenbits (ohne Rauschen):')
|
||||||
|
disp(error1)
|
||||||
|
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
% Teil 2.3 Der Einfluss des Rauschens
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
% Maximalwert des Rauschens
|
||||||
|
% Sie können n_max ändern -->
|
||||||
|
n_max = 0.29;
|
||||||
|
|
||||||
|
% Rauschsignal
|
||||||
|
n_e = 2*(n_max*rand(1,length(t))-n_max/2);
|
||||||
|
|
||||||
|
% Summensignal am Ausgang des Empfängsfilters
|
||||||
|
y = g_TD + n_e;
|
||||||
|
|
||||||
|
% Verlauf einer Musterfunktion des Ausgangssignals y(t)
|
||||||
|
figure(4)
|
||||||
|
plot(t,y,'LineWidth',0.5,'Color',[1 0 0]);
|
||||||
|
axis([0 8 -0.5 2]);
|
||||||
|
grid on
|
||||||
|
title('Abbildung 5: Das verrauschte Ausgangssignal des Empfängsfilters')
|
||||||
|
xlabel('t')
|
||||||
|
ylabel('y(t)')
|
||||||
|
|
||||||
|
% Schätzung der Datenbits aus den verrauschten Abtastwerten: a_en =
|
||||||
|
% wenn(y_i>C,1,0)
|
||||||
|
y_get(1,8) = 0;
|
||||||
|
y_i(1,8) = 0;
|
||||||
|
for i = 1:8
|
||||||
|
y_i(i) = y(i*200+1);
|
||||||
|
if y(i*200+1) > C
|
||||||
|
y_get(i) = 1;
|
||||||
|
else y_get(i) = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
% Zum Vergleich sind hier die gesendeten Datenbits a[i], die verrauschten
|
||||||
|
% Abtastwerte y[i] am Ausgang des Empfängers sowie die geschätzten
|
||||||
|
% Datenbits a[en,i] angegeben --> auf Command Window
|
||||||
|
disp('n_max:')
|
||||||
|
disp(n_max)
|
||||||
|
disp('die gesendeten Datenbits a[i]:')
|
||||||
|
disp(a)
|
||||||
|
disp('die verrauschten Abtastwerte y[i]:')
|
||||||
|
disp(y_i)
|
||||||
|
disp('die geschätzten Datenbits a_en[i]:')
|
||||||
|
disp(y_get)
|
||||||
|
|
||||||
|
% Anzahl der fehlerhaften Datenbits
|
||||||
|
% Experimentieren Sie mit verschiedenen Rausch-Stärken(Parameter n_max)
|
||||||
|
% und untersuchen Sie die Abtastwerte y[i].
|
||||||
|
% Beachten Sie die Anzahl der fehlerhaften Datenbits.
|
||||||
|
error2 = 0;
|
||||||
|
for i = 1:8
|
||||||
|
error2 = error2 + abs(y_get(i) - a(i));
|
||||||
|
end
|
||||||
|
disp('Anzahl der fehlerhaften Datenbits (mit Rauschen):')
|
||||||
|
disp(error2)
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
function bit_stats(g_TD, TD, a)
|
||||||
|
% Abtastung der g_TD
|
||||||
|
% Eingestellte Schwelle: C=0.5
|
||||||
|
C = 0.5;
|
||||||
|
g_get(1,8) = 0;
|
||||||
|
for i = 1:8
|
||||||
|
if g_TD(i*200+1) > C
|
||||||
|
g_get(i) = 1;
|
||||||
|
else g_get(i) = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
% Zum Vergleich sind hier die gesendeten Datenbits a[i] und die emfangenen
|
||||||
|
% Datenbits g_TD[i] untereinander dargestellt --> auf Command Window
|
||||||
|
disp('TD:')
|
||||||
|
disp(TD)
|
||||||
|
disp('die gesendeten Datenbits a[i]:')
|
||||||
|
disp(a)
|
||||||
|
disp('die empfangenen Datenbits g[i]:')
|
||||||
|
disp(g_get)
|
||||||
|
|
||||||
|
% Anzahl der fehlerhaften Datenbits
|
||||||
|
% Verändern Sie die Dauer der Autokorrelationsfunktion TD auf höhere
|
||||||
|
% Werte!
|
||||||
|
error1 = 0;
|
||||||
|
for i = 1:8
|
||||||
|
error1 = error1 + abs(g_get(i) - a(i));
|
||||||
|
end
|
||||||
|
disp('Anzahl der fehlerhaften Datenbits (ohne Rauschen):')
|
||||||
|
disp(error1)
|
||||||
|
end
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
function bit_stats_noise(a, y, C, n_max)
|
||||||
|
% Schätzung der Datenbits aus den verrauschten Abtastwerten: a_en =
|
||||||
|
% wenn(y_i>C,1,0)
|
||||||
|
y_get(1,8) = 0;
|
||||||
|
y_i(1,8) = 0;
|
||||||
|
for i = 1:8
|
||||||
|
y_i(i) = y(i*200+1);
|
||||||
|
if y(i*200+1) > C
|
||||||
|
y_get(i) = 1;
|
||||||
|
else y_get(i) = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
% Zum Vergleich sind hier die gesendeten Datenbits a[i], die verrauschten
|
||||||
|
% Abtastwerte y[i] am Ausgang des Empfängers sowie die geschätzten
|
||||||
|
% Datenbits a[en,i] angegeben --> auf Command Window
|
||||||
|
disp('n_max:')
|
||||||
|
disp(n_max)
|
||||||
|
disp('die gesendeten Datenbits a[i]:')
|
||||||
|
disp(a)
|
||||||
|
disp('die verrauschten Abtastwerte y[i]:')
|
||||||
|
disp(y_i)
|
||||||
|
disp('die geschätzten Datenbits a_en[i]:')
|
||||||
|
disp(y_get)
|
||||||
|
|
||||||
|
% Anzahl der fehlerhaften Datenbits
|
||||||
|
% Experimentieren Sie mit verschiedenen Rausch-Stärken(Parameter n_max)
|
||||||
|
% und untersuchen Sie die Abtastwerte y[i].
|
||||||
|
% Beachten Sie die Anzahl der fehlerhaften Datenbits.
|
||||||
|
error2 = 0;
|
||||||
|
for i = 1:8
|
||||||
|
error2 = error2 + abs(y_get(i) - a(i));
|
||||||
|
end
|
||||||
|
disp('Anzahl der fehlerhaften Datenbits (mit Rauschen):')
|
||||||
|
disp(error2)
|
||||||
|
end
|
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,106 @@
|
|||||||
|
%==========================================================================
|
||||||
|
% Rechnerübung zur Signalübertragung II
|
||||||
|
% Versuch 3: Leistungsdichtespektrum, Autokorrelationsfunktion
|
||||||
|
%==========================================================================
|
||||||
|
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
% Teil 3.1 Berechnung der Autokorrelationsfunktion
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
clear all;
|
||||||
|
close all;
|
||||||
|
clc;
|
||||||
|
|
||||||
|
% Anzahl der Messwerte:
|
||||||
|
% Sie können e ändern -->
|
||||||
|
e = 10;
|
||||||
|
N = 2^e;
|
||||||
|
|
||||||
|
% Erzeugung der Musterfunktion des Eingangsprozesses:
|
||||||
|
s = rand(1,N) - 0.5;
|
||||||
|
|
||||||
|
% Dargestellte Werte: n=0...N
|
||||||
|
figure(1)
|
||||||
|
plot(s)
|
||||||
|
axis([0 N -0.5 0.5]);
|
||||||
|
title('Abbildung 1: Eine Musterfunktion des Eingangsprozesses')
|
||||||
|
xlabel('n')
|
||||||
|
ylabel('s(n)')
|
||||||
|
|
||||||
|
% Autokorrelationsfunktion berechnen
|
||||||
|
Autocorr = xcorr(s);
|
||||||
|
figure(2)
|
||||||
|
plot(Autocorr)
|
||||||
|
axis([0 2.*N+1 min(Autocorr) max(Autocorr)]);
|
||||||
|
title('Abbildung 2: Autokorrelationsfunktion des Eingangsprozesses')
|
||||||
|
xlabel('m')
|
||||||
|
ylabel('Autokorrelationsfunktion xcorr(s(n))')
|
||||||
|
|
||||||
|
% Leistungsdichtespektrum aus Autokorrelationsfunktion berechnen
|
||||||
|
Y = fftshift(fft(Autocorr,2^(e+1)));
|
||||||
|
psd_eingang = abs(Y);
|
||||||
|
|
||||||
|
% plot(Pyy)
|
||||||
|
figure(3)
|
||||||
|
plot(psd_eingang);
|
||||||
|
axis([0 length(psd_eingang) min(psd_eingang) max(psd_eingang)]);
|
||||||
|
title('Abbildung 3: Leistungsdichtespektrum des Eingangsprozesses')
|
||||||
|
xlabel('m')
|
||||||
|
ylabel('Leistungsdichtespektrum')
|
||||||
|
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
% Teil 3.2 Einfluss des Bandpasses
|
||||||
|
%--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
% Mittenfrequenz des Bandpasses
|
||||||
|
f_mf = 100;
|
||||||
|
|
||||||
|
% Bandbreite des Bandpasses
|
||||||
|
f_bb = 35;
|
||||||
|
|
||||||
|
% Dargestellter Bereich
|
||||||
|
n = 1:length(psd_eingang);
|
||||||
|
|
||||||
|
% Übertragungsfunktion des Bandpasses
|
||||||
|
h_bp = heaviside(n-f_mf+f_bb/2)-heaviside(n-f_mf-f_bb/2)...
|
||||||
|
+heaviside(n+f_mf+f_bb/2-2^(e+1))-heaviside(n+f_mf-f_bb/2-2^(e+1));
|
||||||
|
figure(4)
|
||||||
|
plot(n,h_bp);
|
||||||
|
axis([0 length(h_bp) 0 2]);
|
||||||
|
title('Abbildung 4: Übertragungsfunktion des Bandpasses')
|
||||||
|
xlabel('n')
|
||||||
|
ylabel('H_B_P')
|
||||||
|
|
||||||
|
% Leistungsdichtespektrum des Ausgangsprozesses
|
||||||
|
psd_ausgang = psd_eingang.*abs(h_bp).^2;
|
||||||
|
figure(5)
|
||||||
|
plot(psd_ausgang);
|
||||||
|
title('Abbildung 5: Leistungsdichtespektrum des Ausgangsprozesses')
|
||||||
|
axis([0 length(psd_ausgang) min(psd_eingang) max(psd_ausgang)]);
|
||||||
|
xlabel('n')
|
||||||
|
ylabel('Leistungsdichtespektrum')
|
||||||
|
|
||||||
|
% Autokorrelationsfunktion des Ausgangssignals
|
||||||
|
Autocorr_ausgang = abs(fftshift(ifft(psd_ausgang)));
|
||||||
|
figure(6)
|
||||||
|
plot(n,Autocorr_ausgang)
|
||||||
|
title('Abbildung 6: Betrag der Autokorrelationsfunktion des Ausgangssignals')
|
||||||
|
axis([0 length(Autocorr_ausgang) min(Autocorr_ausgang) max(Autocorr_ausgang)]);
|
||||||
|
xlabel('n')
|
||||||
|
ylabel('Betrag der Autokorrelationsfunktion')
|
||||||
|
|
||||||
|
% Autokorrelationsfunktion des Ausgangssignals (theorie)
|
||||||
|
% Dargestellter Zeitbereich
|
||||||
|
tau = -0.2:0.001:0.2;
|
||||||
|
|
||||||
|
% Spektrale Leistungsdichte
|
||||||
|
N0 = 1.0;
|
||||||
|
|
||||||
|
% Autokorreationsfunktion
|
||||||
|
Autocorr_ausgang_theorie = abs(N0*f_bb*sinc(f_bb*tau)*2.*cos(2*pi*f_mf*tau));
|
||||||
|
figure(7)
|
||||||
|
plot(tau,Autocorr_ausgang_theorie)
|
||||||
|
title('Abbildung 7: Betrag der Autokorrelationsfunktion des Ausgangssignals, theoretischer Verlauf')
|
||||||
|
axis([-0.2 0.2 min(Autocorr_ausgang_theorie) max(Autocorr_ausgang_theorie)]);
|
||||||
|
xlabel('tau')
|
||||||
|
ylabel('Betrag der Autokorrelationsfuktion (Theorie)')
|
||||||
Loading…
Reference in New Issue