Tema 1: Misura della probabilità di eventi
Esempio: Sistema di trasmissione dati
Schema di principio di un semplice sistema di trasmissione dati binario
in banda base
Simboli
binari decisi
Campionamento
Decisore
a 2 livelli
b t ak t kTb
k
Sorgente
binaria
ak
tk=kTb
s(t)
g T (t)
cadenza Tb
g R (t)
Zk
ak
Ex.: Ethernet,
Tx. dati PC-stampante
gT(t)
A1
n(t)
ak: sequenza di bit da trasmettere ak 0,1
Tb
t
gT(t): risposta impulsiva filtro sagomatore d’impulsi in Tx.
s(t): segnale trasmesso
n(t): disturbo in ricezione
s t ak gT t kTb
k
gR(t): risposta impulsiva filtro anti-disturbo in Ric.
zk ak wk
Tb: intervallo temporale tra i bit
Zk: variabile aleatoria (v.a.) campione in ingresso al decisore
Wk: v.a. effetto del disturbo filtrato
Variabili Aleatorie Binarie & Binomiali
Pr Ak 1 p , Pr Ak 0 1 p E Ai p, var Ai p(1 p)
n num. simboli binari trasmessi
K num. volte che si trasmette ak 1
n
K B( p, n) pk Pr K k p k (1 p) n k ; 0 k n, 0 p 1
k
Teorema di Bernoulli (o Legge dei grandi numeri):
K
F
n
1 n
lim F lim Ai lim Ai
n
n
n n
i 1
E F
E K
var F
n
var K
n
2
E Ai p Pr Ai 1
p
p (1 p )
n
ovvero, la frequenza di presentazione F tende
alla probabilità p che l’evento si verifichi
Statistiche della sorgente binaria
2
E
(
F
p
)
Fp
1 p
2
Errore relativo: =
E
p
p2
np
E 2 0.01
1 p
0.01
np
se p 1:
n
100
p
- Generare una sequenza di n=105 bit {ak} equiprobabili (p=0.5)
Sugg.: si utilizzi una trasformazione di v.a. del tipo funzione a gradino,
applicandola ad una v.a. uniforme su [0,1]
[istruzioni utili: rand, round, save]
- Verificare che i bit trasmessi sono equiprobabili (ovvero misurare p)
Sugg.: interpretazione della probabilità come frequenza relativa ...
[istruzioni utili: load, mean]
- Ripetere la verifica utilizzando solo i primi m bit e tracciare un grafico
della frequenza relativa di presentazione dell’evento {ak =1} in
funzione di m, con 1<m<n
Esempio di file.m & risultati
% Generatore sequenza bit trasmessi: genseq.m
% OUT: fileseqtx con la sequenza dei simboli binari ed equiprobab.
clear
clc
%bit trasmessi equiprobabili
ns=1e4 %lunghezza sequenza
seqtx=rand(1,ns);
% genera v.a. uniforme su [0,1]
seqtx=round(seqtx);
% trasf. di v.a. per ottenere la v.a.
% discreta valore del bit
save fileseqtx seqtx
Valutazione sperimentale di Pr{ak=1}:
con n=105 bit >>mean(seqtx)
= 0.4931
Ex.: con m=50 bit >>mean(seqtx(1:50)) = 0.5600
per un generico m<n >>mean(seqtx(1:m))
Valore effettivo: p=Pr{Ak=1}=0.5
Statistiche del segnale decodificato
V.A. campione in ricezione al decisore: Zk Ak Wk
con Wk v.a. Gaussiana a media nulla e varianza 2w
Regola del decisore:
1, se zk 0.5
aˆk
0, se zk 0.5
La probabilità di errore sui bit è, per il Teorema della Probabilità Totale,
Pe Pr e, Ak 1 Pr e, Ak 0 Pr e Ak 1 Pr Ak 1 Pr e Ak 0 Pr Ak 0
1
1
1
1
Pr e Ak 1 Pr e Ak 0 Pr Z k 0.5 Ak 1 Pr Z k 0.5 Ak 0
2
2
2
2
La soglia di decisione è equidistante rispetto ai valori ak 0, ak 1
La Gaussiana è una distribuzione simmetrica rispetto al val. medio
Uguali probabilità di errore per la decisione sui bit 1 e sui bit 0
0.5
0.5
Pe Pr e Ak 0 Pr Z k 0.5 Ak 0 =Q
1
w
w
Statistiche del segnale decodificato (2)
- Generare i campioni osservati Zk in ricezione, in ingresso al decisore,
a partire dalla sequenza di bit trasmessi, includendo il disturbo Gaussiano,
e ricavare i bit decodificati
Utilizzare i valori w 0.2149 e w 0.3902
[istruzioni utili: load, size, randn, sign]
- Valutare sperimentalmente la probabilità di errore (BER, bit error rate)
confrontando la sequenza trasmessa (n=105 bit) e quella ricevuta per i due
valori di w
[istruzioni utili: xor, mean]
- Confrontare il risultato sperimentale con quello teorico
[istruzioni utili: normcdf]
- Ripetere la valutazione sperimentale utilizzando solo i primi m=500 bit
Esempio di file.m & risultati
% Simulazione decisore e valutazione della BER: valber.m
function ber = valber(sigma)
% IN: deviaz. standard disturbo
load fileseqtx seqtx
% carica la sequenza bit trasmessi
zeta=seqtx+randn(1,size(seqtx,2))*sigma; % simula i campioni al decisore
seqri=(1+sign(zeta-1/2))/2;
% effettua le decisioni
seqer=xor(seqri,seqtx);
% calcola la sequenza degli errori
ber=mean(seqer)
% calcola la probabilità di errore
Valutazione sperimentale di Pe utilizzando n=105 bit:
con w 0.2149
= 0.0103
= 0.1019
con w 0.3902
(valore effettivo: BER=10-2)
Utilizzando solo m=500 bit:
(valore effettivo: BER=10-2)
= 0.0140
= 0.1160
(valore effettivo: BER=10-1)
(valore effettivo: BER=10-1)
Esempio di risultati: Misura della BER
Andamento teorico della BER:
0
10
-1
10
-2
Pe
10
SNR
PZ
(Signal-to-Noise Ratio)
2w
-3
10
0
10
Pe misurata
utilizzando
m=500 bit
-4
10
-1
10
-5
10
10
20
30
40
50
60
-2
70
10
Pˆe (500)
2
1/sigma
Pe
Pe
1 PZ
0.5
Pe Q
=Q
2 2
w
w
misurata
PPe emisurata
utilizzando
utilizzando
n=105 bit
n=10000
bit
Pˆe (105 )
Pe
-3
10
BER misurata:
-4
10
numero bit sbagliati nei primi m
Pˆe (m)
m
-5
10
10
20
30
40
1/sigma2
50
60
70
%
%
%
%
bersnr.m
Confronto tra valutazione e valore teorico della BER
al variare della deviazione standard del disturbo
generatore sequenza bit trasmessi
clear
clc
% bit trasmessi equiprobabili
ns=10000
% lunghezza sequenza
seqtx=rand(1,ns);
% genera v.a. uniforme su [0,1]
seqtx=round(seqtx);
% trasf. di v.a. per ottenere la v.a. discreta valore del bit
% simulazione decisore e valutazione probabilita' di errore sequenza bit ricevuti
sigma2i=[.001:5:80];
% valori di 1/sigma^2 del termine di disturbo (SNR=1/sigma^2)
sigma=sqrt(1./sigma2i); % valori di sigma
zeta=repmat(seqtx.',1,size(sigma,2))+randn(1,size(seqtx,2)).'*sigma; % simula i campioni al decisore
% per le varie deviazioni standard
seqri=(1+sign(zeta-1/2))/2;
% effettua le decisioni
% per le varie sequenze
seqer=xor(seqri,repmat(seqtx.',1,size(sigma,2)));
% calcola le sequenze degli errori
ber=mean(seqer);
% calcola le probabilità di errore
semilogy(sigma2i,ber,'-o')
grid
axis([min(sigma2i) max(sigma2i) 1e-5 1])
xlabel('SNR(db)')
ylabel('BER')
hold on
semilogy(sigma2i,1-normcdf(.5./sigma),'-xr')
% grafica le probabilità di errore
% grafica i valori teorici