Tải bản đầy đủ (.doc) (10 trang)

báo cáo mô phỏng bằng matlab

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (153.37 KB, 10 trang )

Báo cáo kết quả
Mô phỏng mã bằng Matlab
1.Xác suất lỗi bít trên kênh AWGN thực hiện điều chế BPSK
Mô hình hệ thống thông tin truyền dẫn số
ý tởng cơ bản của lý thuyết thông tin mà thông tin số là chủ yếu, là t-
ơng đơng tạo ra, phát đi và thu lại chọn một cách ngẫu nhiên các số nhị phân
hay các bít. Khi các bít đợc phát trên kênh thông tin hoặc lu trữ trong bộ nhớ
thì chúng có thể bị lỗi do ISI hoặc nhiễu tạp vv gây ra. Shannon đã chỉ ra
rằng việc truyền dẫn thông tin từ nguồn, qua kênh tới đích luôn luôn có thể
đợc tách riêng để nghiên cứu và thực hiện mà không mất tính tối u của nó,
bao gồm hai phần: Biểu diễn tín hiệu đầu ra của nguồn là một dãy các bít
(mã hóa nguồn) và phát các bít này độc lập ngẫu nhiên trên kênh (mã hoá
kênh)
Kênh
AWGN
Nguồn
Bộ mã hoá
kênh
Bộ điều chế
Bộ giải mã
kênh
Đích
u
r
s
bít/s
x
r
s
/rc
symbol/s


Bộ giải điều
chế
y
Để trình bày lý thuyết mã hóa kênh của Shannon, mỗi kênh thông tin
đợc mô tả bằng các tham số :
- C
t
là dung lợng của kênh
-R
t
tốc độ truyền dữ liệu đợc phát một cách tùy ý trên kênh nếu và chỉ
nếu R
t
<
C
t
. Cả hai tham số C
t
,

R
t

đều đợc đo bằng bít trên giây (b/s).
Shannon đã chỉ ra rằng với một giá trị cụ thể của tỷ số tín / tạp (SNR), giá trị
này không quan trọng lắm miễn là nó đủ lớn và R
t
không lớn hơn C
t
, điều

quan trọng là các bít thông tin đợc mã hóa nh thế nào. Các bít thông tin
không nên phát từng bít một độc lập với các bít khác tại từng thời điểm mà
dãy bít thông tin nên đợc mã hóa để mỗi bít thông tin có liên quan đến một
vài bít khác cùng đợc phát trên .Mã hóa điều khiển lỗi có thể bảo vệ đợc
nguồn dữ liệu số không bị lỗi trong quá giải mã.
Các hệ thống thông tin thay đổi pha sóng mang (PSK) thờng hay đợc
sử dụng. Mặc dù có nhiều hệ thống điều chế khác nhng hệ thống PSK vẫn rất
thông dụng.
Trong điều chế BPSK ( Binary Phase Shift Keying-điều chế khóa
dịch pha nhị phân) đợc sử dụng trong việc tính xác suất lỗi bít trên kênh
AWGN(Additive White Gaussian Noise)
Mô hình kênh thực tế quan trọng nhất là kênh cộng thêm tạp âm. Nếu
coi y(t) là tín hiệu thu đợc, ta có
y(t)=s(t)+n(t).
với s(t) là tín hiệu phát và n(t) là tạp âm
Hàm mật độ xác suất của một quá trình ngẫu nhiên Gaussian n(t) đợc
biểu diễn nh sau:
P(n)=
2
2
1

exp(-
2
2
2

n
)
Trong đó:


2

:Phong sai
- Ta tính xác suất thu đợc y(t)
P(
y
a 1=
)

P(
y
a 0=
)
Hoặc P(
y
a 1=
)

P(
y
a 0=
)
Theo định lý Bayes ta có :

)(
1).P(a )
1a
y
P(

yP
=
=



)(
0).P(a )
0a
y
P(
yP
=
=
Hoặc

)(
1).P(a )
1a
y
P(
yP
=
=



)(
0).P(a )
0a

y
P(
yP
=
=
Giả sử
1P(a =
)=P(a=0)
Thì
)
1a
y
P(
=


)
0a
y
P(
=
Hoặc
)
1a
y
P(
=




)
0a
y
P(
=
)
1a
y
P(
=

)
0a
y
P(
=
-
s
E
0 +
s
E

Gọi P
b
là xác suất lỗi của BPSK
Ta có P
b
= P(a=0) .P(
0

)0
=

a
y
) +
1P(a =
).P(
1
0
=

a
y
)
Do
1P(a =
)=P(a=0) nên
P
b
= P(
1
0
=

a
y
) = P(
0
)0

=

a
y
)
Hay P
b
=


é
E
2
2
1

exp(-
2
2
2

t
)dt
-Hàm Gaussian:
Q(x)=



x
t

e
2
2
2
1

dt
P
b
=



0
2
/2
2/
2
1
NE
y
s
dye

= Q
)/2(
0
NE
s
Với N

0
=2
2

Trong MatLab hàm mô phỏng xác suất lỗi bít trên kênh AWGN là
P
b
=Q(
0
2
N
E
s
) =
2
1
erfc(
o
s
N
E
)
Trong đó erfc(x) =




x
t
e

2
2

dt
*Chơng trình viết trên Matlab
%Tinh xac suat loi bit tren kenh AWGN;
clear all;
format short
EbNo=[ 0:.5:9];
linEbNo=10.^(EbNo/10);
Bit_error=erfc(sqrt(linEbNo))/2 ;
semilogy(EbNo,Bit_error,':ko')
hold on
Xlabel('signd_to_noise ratio,Eb/N0(db)');
Ylabel('bit Erro probabiliti, BER');
title('Ber BPSK transmission without coding');
legend('BPSK,no coding');
2.Mã Lặp
Mô hình kênh nhị phân đối xứng : BSC ( Binary Syminetic Chanel )
Mã lặp là 1 bít vào đợc lặp lại n lần .Tỉ lệ mã hoá(hay tốc độ mã hoá) là
R =
n
1
BSC-kênh nhị phân đối xứng
0
0
1
1



1-
1-
Mã Lặp
0 000
1 111
Giả sử truyền bít 0 đợc lặp: 00 0
1 đợc lặp : 111

->chuỗi bít là x
1
x
2
x
n
; x
i


{0,1}; 1 I n ;
-Ta đi chứng minh P(
0
x
) > P(
1
x
)
Hoặc P(
0
x
) < P(

1
x
)
Theo định lý Bayes :

)(
)0().
0
(
xP
P
x
P
>
)(
)1().
1
(
xP
P
x
P
Hoặc
)(
)0().
0
(
xP
P
x

P
<
)(
)1().
1
(
xP
P
x
P
=> P(
0
x
) > P(
1
x
) hoặc P(
0
x
) < P(
1
x
)
-Giả sử trong chuỗi x chứa t số 1 => trong x chứa n-t số 0.
-Xác suất phát 0 khi thu x là:
P(
0
x
) = (1-


)
tn
.
t

= (1-

)
n
.(


1
)
t

-Xác Suất phát 1 khi thu x là:
P(
1
x
) = (1-

)
t
.
tn

= (1-

)

n
.(


1
)
tn
Dùng hàm LLR để so sánh 2 xác suất trên
Hàm LLR(d) =log
)
0
(
)
1
(
x
d
P
x
d
P
=
=
log
)
0
(
)
1
(

=
=
d
x
P
d
x
P
Giả định

<1/2
=>t [
2
n
]
Nhận xét:
-Đối với mã lặp thì chọn n lẻ vì để tránh số bít 0 và số bít 1 trong
chuỗi x
1
x
2
x
n
là bằng nhau.
-Đối với mã lặp trong giải mã thì quyết định theo đa số.Nếu trong
chuỗi,số bít 1 lớn hơn số bít 0 thì kết luận bên phát đã phát bít 1, và ngợc lại.
-Gọi P
e
là xác suất lỗi từ mã.Ta có
P

e
= P(0).P(0->1) + P(1).P(1->0)
P
e
= P(0->1)
= P(t >
2
1n
)
=

+=
n
tt
xP
1
0
)(
=

+=
=
n
tt
H
txwP
1
0
))((


Trong đó t
0
=
2
1n
w
H
(x) - là trọng số Haming của chuỗi x
*Chơng trình viết bằng MatLab
clear all;
N=[1:2:49];
e= 0.3;
for i=1:length(N)
n=N(i);
sum =0;
t=(n-1)/2+1;
for h=t:1:n
sum = sum + (1-e).^(n-h)*e.^h;
end
pe(i)=sum;
end
semilogy(N,pe,':k*');
hold on
3.X¸c suÊt sai khi ®· m· ho¸
Ch¬ng tr×nh viÕt b¨ng MatLab:
clear all;
n=5;
rate=1/n;
k=(n-1)/2+1;
EbNo=[1:0.5:9];

linEbNo=10.*(EbNo/10);
bit_error=erfc(sqrt(linEbNo*rate))/2;
for ii=1:length(bit_error)
e=bit_error(ii);
sum=0;
for h = k:n
sum = sum+ (1-e).^(n-h) * e.^h;
end
pe(ii)=sum;
end
plot(EbNo,pe,':b+')
Víi n=7

×