P =
0.0937
>> P=pyasson(180,18,93,1000)
P =
0.0894
>> X=[0 0 0 1 0 1; 0 1 1 0 1 0; 1 0 1 0 1 1; 1 0 1 1 0 0];
>> y1=[0 1 0 0 1 0];
>> y2=[0 1 0 0 1 1];
>> y3=[1 1 0 0 1 0];
>> p0=[0.25 0.25 0.25 0.25]
function [H,p,I]=possibility(X,y,q,p2)
% Входные параметры:
% X-матрица исходных сообщений
% y-полученное сообщение
% q-вероятность ошибки в разряде
% p2-вектор априорных вероятностей
% Выходные параметры:
% H-исходная энтропия ансамбля сообщений
% p-вектор-столбец апостериорных вероятностей сообщения x при полученном y
% I-количество информации в полученном сообщении
H=-sum(p2.*log2(p2));
p1=zeros(length(X(:,1)),1);
for g=1:1:length(X(:,1))
k=zeros(1,length(X(1,:)));
for i=1:1:length(X(g,:))
if X(g,i)~=y(i)
k(i)=1;
end
end
f=length(k)-sum(k);
e=sum(k);
p1(g,1)=((1-q)^f)*(q^e);
end
p3=0;
for i=1:1:length(X(:,1))
p3=p3+p2(i,1)*p1(i,1);
end
for x=1:1:length(X(:,1))
p=p2.*p1./p3;
end
H1=-sum(p.*log2(p));
I=H-H1;
>> [H,p1,I]=possibility(X,y1,0.12,p0')
H =
2
p1 =
0.002522
0.99461
0.002522
0.00034391
I =
1.9448
>> [H,p2,I]=possibility(X,y2,0.12,p1)
H =
0.055245
p2 =
0.00034554
0.99931
0.00034554
1.1948e-007
I =
0.046299
>> [H,p3,I]=possibility(X,y3,0.12,p2)
H =
0.0089461
p3 =
8.7674e-007
0.99995
4.7149e-005
2.2231e-009
I =
0.0081815
>> y=[0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0] ;
>> X=[0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1; 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0;1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1; 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0];
>> [H,p,I]=possibility(X,y,0.12,p0')
H =
2
p =
8.7674e-007
0.99995
4.7149e-005
2.2231e-009
I =
1.9992
Суммарное количество информации, полученное за три испытания в первом случае совпадает с количеством информации, полученной во втором случае за одно испытание. В первом случае мы учитывали несовпадающие биты каждого из четырех исходных сообщений поочередно с Y1, Y2, Y3, а во втором случае мы сделали это сразу, сравнивая каждое из четырех сообщений утроенной длины с сообщением Y1Y2Y3.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.