📄 map.m
字号:
From: <由 Microsoft Internet Explorer 5 保存>
Subject:
Date: Wed, 2 May 2007 13:16:42 +0800
MIME-Version: 1.0
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mathworks.com/matlabcentral/files/7883/MAP.m
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<META content=3D"MSHTML 6.00.2900.3059" name=3DGENERATOR></HEAD>
<BODY><PRE>clc;clear
t=3Dcputime;
disp('islem yapiliyor. Lutfen bekleyiniz...')
son=3D4;
for snr=3D0:son
hata(snr+1)=3D0;
snr
carpan=3D[100 100 1000 1000 10000 100000];
for j=3D1:carpan(snr+1) =20
n=3D100;
u=3Drandint(1,n-2);
u(n)=3D0;
kafes=3Dpoly2trellis(3,[5 7]);
v=3Dconvenc(u,kafes);
for i=3D1:2*n
s(i)=3D2*v(i)-1;
end
r =3D awgn(s,snr,'measured');
%Asagidaki x degerleri BPSK mod=FClasyona g=F6re bulunmustur.
x111=3D-1;x112=3D-1;x121=3D1;x122=3D1;
x231=3D-1;x232=3D1;x241=3D1;x242=3D-1;
x311=3D1;x312=3D1;x321=3D-1;x322=3D-1;
x431=3D1;x432=3D-1;x441=3D-1;x442=3D1;
%gamalarin hesabi
k=3D0;
Eb=3D2;N0=3DEb/(10^(snr/10));sigma=3DN0/2;
for i=3D1:2:2*n
k=3Dk+1;
gama11(k)=3Dexp((-(r(i)-x111)^2-(r(i+1)-x112)^2)/2/sigma);
gama12(k)=3Dexp((-(r(i)-x121)^2-(r(i+1)-x122)^2)/2/sigma);
gama23(k)=3Dexp((-(r(i)-x231)^2-(r(i+1)-x232)^2)/2/sigma);
gama24(k)=3Dexp((-(r(i)-x241)^2-(r(i+1)-x242)^2)/2/sigma);
gama31(k)=3Dexp((-(r(i)-x311)^2-(r(i+1)-x312)^2)/2/sigma);
gama32(k)=3Dexp((-(r(i)-x321)^2-(r(i+1)-x322)^2)/2/sigma);
gama43(k)=3Dexp((-(r(i)-x431)^2-(r(i+1)-x432)^2)/2/sigma);
gama44(k)=3Dexp((-(r(i)-x441)^2-(r(i+1)-x442)^2)/2/sigma);
end
%alfalarin hesabi:
=
alfa1(1)=3Dgama11(1);alfa2(1)=3Dgama12(1);alfa3(1)=3D0;alfa4(1)=3D0;
for i=3D2:n
alfa1(i)=3Dalfa1(i-1)*gama11(i)+alfa3(i-1)*gama31(i);
alfa2(i)=3Dalfa1(i-1)*gama12(i)+alfa3(i-1)*gama32(i);
alfa3(i)=3Dalfa2(i-1)*gama23(i)+alfa4(i-1)*gama43(i);
alfa4(i)=3Dalfa2(i-1)*gama24(i)+alfa4(i-1)*gama44(i);
end
%Betalarin hesabi
=
beta1(n-1)=3Dgama11(n);beta3(n-1)=3Dgama31(n);beta2(n-1)=3D0;beta4(n-1)=3D=
0;
for i=3Dn-2:-1:1
beta1(i)=3Dbeta1(i+1)*gama11(i+1)+beta2(i+1)*gama12(i+1);
beta2(i)=3Dbeta3(i+1)*gama23(i+1)+beta4(i+1)*gama24(i+1);
beta3(i)=3Dbeta1(i+1)*gama31(i+1)+beta2(i+1)*gama32(i+1);
beta4(i)=3Dbeta3(i+1)*gama43(i+1)+beta4(i+1)*gama44(i+1);
end
%L(ak)larin hesabi
payda=3Dgama12(1)*beta2(1);
L_a(1)=3Dlog((gama11(1)*beta1(1))/(payda));
for i=3D2:n-2
=
pay=3D(alfa1(i-1)*gama11(i)*beta1(i)+alfa2(i-1)*gama23(i)*beta3(i)+...
=
alfa3(i-1)*gama31(i)*beta1(i)+alfa4(i-1)*gama43(i)*beta3(i));
=
payda=3D(alfa1(i-1)*gama12(i)*beta2(i)+alfa2(i-1)*gama24(i)*beta4(i)+...
=
alfa3(i-1)*gama32(i)*beta2(i)+alfa4(i-1)*gama44(i)*beta4(i));
L_a(i)=3Dlog(pay/payda);
end=20
for i=3D1:n-2
if L_a(i)>0
a(i)=3D0;
else
a(i)=3D1;
end
end
a(n)=3D0;
hata(snr+1)=3Dhata(snr+1)+sum(abs(u-a));
end =20
hata(snr+1);
bit_hata_orani(snr+1)=3Dhata(snr+1)/100/carpan(snr+1)
end
snr=3D0:son;
semilogy(snr,bit_hata_orani),grid
title('MAP');xlabel('Eb/N0(dB)');ylabel('Bit Error Rate');
zaman=3Dcputime-t
%For further infornation: gedikbey@gyte.edu.tr</PRE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -