% CANALE DISCRETE -> doar Canalul binar simetric % Lucrare laborator TTI % Serban OPRISESCU, 19 Oct 2010 %Introducere valori: prompt={'p(x1)=',... 'p='}; name='Introduceti valorile'; numlines=1; defaultanswer={'0.946','0.789'}; answer=inputdlg(prompt,name,numlines,defaultanswer); px1=str2num(cell2mat(answer(1))); p=str2num(cell2mat(answer(2))); % De aici incep calculele: px2=1-px1; % p(x2) py1=px1*(1-p)+px2*p; % p(y1) py2=px2*(1-p)+px1*p; % p(y2) disp(' p(y1) p(y2)'); disp([py1 py2]); HX=-px1*log2(px1)-px2*log2(px2); % H(X) HY=-py1*log2(py1)-py2*log2(py2); % H(Y) HYcX = -(p*log2(p)+(1-p)*log2(1-p)); % H(Y|X) HXvY = HX+HYcX; % H(X,Y) HXcY = HXvY-HY; % H(X|Y) I = HX + HY - HXvY; % transinformatia C = 1 + p*log2(p)+(1-p)*log2(1-p); % capacitatea canalului disp(' p(x1) p H(X) H(Y) H(X,Y) H(X|Y) H(Y|X) I(X,Y) C'); disp([px1 p HX HY HXvY HXcY HYcX I C]); %Grafic C: pgr=0:0.01:1; Cgr=1 + pgr.*log2(pgr)+(1-pgr).*log2(1-pgr); figure,plot(pgr,Cgr), text(p,C,['* C=',num2str(C)]);