信息论上机1_精品文档.docx

上传人:b****2 文档编号:1520436 上传时间:2022-10-22 格式:DOCX 页数:14 大小:68.91KB
下载 相关 举报
信息论上机1_精品文档.docx_第1页
第1页 / 共14页
信息论上机1_精品文档.docx_第2页
第2页 / 共14页
信息论上机1_精品文档.docx_第3页
第3页 / 共14页
信息论上机1_精品文档.docx_第4页
第4页 / 共14页
信息论上机1_精品文档.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

信息论上机1_精品文档.docx

《信息论上机1_精品文档.docx》由会员分享,可在线阅读,更多相关《信息论上机1_精品文档.docx(14页珍藏版)》请在冰豆网上搜索。

信息论上机1_精品文档.docx

信息论实验报告

班级:

通信11-4

姓名:

李阳

学号:

11101060427

指导教师:

范锦宏

完成日期:

2014.6.8

2.1

程序代码:

clearall;

closeall;

clc;

p=0:

0.01:

1;

I=-log2(p+eps);

plot(p,I);

xlabel('\it{p(x_i)}');

ylabel('\it{I(x_i)}','rotation',0,'position',[-0.05,3.5,0]);

ylim([0,7]);

运行结果:

2.2

程序代码:

clearall;

closeall;

clc;

p=0:

0.01:

1;

q=1-p;

H=-p.*log2(p+eps)-q.*log2(q+eps);

plot(p,H);

xlabel('\it{p}');

ylabel('\it{H[p]}','rotation',0,'position',{-0.1,0.5,0]);

xlim([0,1]);

ylim([0,1]);

运行结果:

3.1

(1)

程序代码:

%画出作为r函数的差错概率图

clearall;

gamma_db=[-20:

0.1:

20];

gamma=10.^(gamma_db./10);

p_error=0.5.*(sqrt(2.*gamma));

semilogx(gamma,p_error)

xlabel('SNR/bit')

title('ErrorprobilityversusSNR/bit')

ylabel('ErrorProb.')

运行结果:

3.1

(2)

程序代码:

clearall;

gamma_db=[-20:

0.1:

20];

gamma=10.^(gamma_db./10);

p_error=0.5.*(sqrt(2.*gamma));

capacity=1.-sum(-p_error.*log2(p_error));

semilogx(gamma,capacity)

xlabel('SNR/bit')

title('channelcapacityversusSNR/bit')

ylabel('channelcapacity')

运行结果:

3-2

(1)

%W=3000Hz的加性高斯白噪声的信道容量作为P/N0的函数图

clearall

echoon

pn0_db=[-20:

0.1:

30];

pn0=10.^(pn0_db./10);

capacity=3000.*log2(1+pn0/3000);

pause

clf

semilogx(pn0,capacity)

title('Capacityvs.P/N0inanAWGNchannel')

xlabel('P/N0')

ylabel('Capacity(bits/second)')

clear

w={1:

10,12:

2:

100,105:

5:

500;510:

10:

5000;5025:

25:

20000,20050:

50:

100000};

pn0_db=25;

pn0=10^(pn0_db/10);

capacity=w.*log2(1+pn0./w);

pause

clf

%在AWGN信道中作为带宽的函数的容量

semilogx(w,capacity)

title('Capacityvs.bandwidthinanAWGNchannel')

xlabel('Bandwidth(Hz)')

ylabel('Capacity(bits/second)')

运行结果:

3-2

(2)

echoon;

pn0_db=25

pn0=10.^(pn0_db./10);

w=0:

100000;

capacity=w.*log2(1+pn0./w);

pause;

clf

semilogx(w,capacity);

title('capacityvs.P/N0inanAWGNChannel');

xlabel('P/N0');

ylabel('Capacity(bits/second)');

运行结果:

3.3

%3.3离散无记忆信道的迭代计算%

function[cc,paa]=channelcap(p,k)

%p:

输入的正向转移矩阵,k:

迭代计算的精度

%cc:

最佳信道容量,paa:

最佳输入概率矩阵

%pa:

初始输入概率矩阵,pba:

正向转移概率矩阵

%pb:

输出矩阵概率,pab:

反向转移概率矩阵

%c:

初始信道容量,r:

输入符号数,s:

输出符号数

%提示错误信息

if(length(fing(p<0))~=0

error('notaprob.vector,negetivecomponent')

end

if(abs(sum(p')-1)>10e-10)

error('notaprov.vector,componentdonotaddupto1')

end

[r,s]=size(p);

pa=(1/(r+eps))*ones(1,r);

sumrow=zeros(1,r);

pba=p;

n=0;c=0;cc=1;

whileabs(cc-c)>=k

n=n+1;

pb=zeros(1,s);

forj=1:

s

fori=1:

r

pb(j)=pb(j)+pa(i)*pba(i,j);

end

end

suma=zeros(1,s);

forj=1:

s

fori=1:

r

pab(j,i)*pba(i,j)/(pb(j)+eps);

suma(j)=suma(j)+pa(i)*pba(i,j)*log2((pab(j,i)+eps)/(pa(i)+eps));

end

end

c=sum(suma);

l=zeros(1,r);

sumaa=0;

fori=1:

r

forj=1:

s

l(i)=l(i)+pba(i,j)*log(pab(j,i)+eps);

end

a(i)=exp(l(i));

end

sumaa=sum(a);

fori=1:

r

paa(i)=a(i)/(sumaa+eps);

end

cc=log2(sumaa);

pa=paa;

end

运行结果:

输入:

p=[0.2,0.3,0.5;0.6,0.2,0.2;0.5,0.2,0.3;0.1,0.3,0.6];

k=10e-4;

[a,b]=channelcap(p,k)

输出:

a=

0.2057

b=

0.06080.40310.06920.4668

4-1

%function[]=RD(Pa,d,S)formatlongS=[];

%r=input('输入信源数r=');

%s=input('输出信源数s=');

%d=input('失真矩阵d=');

%Pa=input('输入概率分布Pa=');

r=2

s=2

d=[01;10]

Pa=[0.50.5]

S

(1)=-99.5

times=100;

pba=[];RS=[];DS=[];

m=1;

forz=1:

times%初始化

Pba(1:

r,1:

s,1)=1/(r*s)*ones(r,s);

forj=1:

s

Pb(j,1)=0;

fori=1:

r

Pb(j,1)=Pb(j,1)+Pa(i)*Pba(i,j,1);

end

end

fori=1:

r

temp(i)=0;

forj=1:

s

temp(i)=temp(i)+Pb(j,1)*exp(S(m)*d(i,j));

end

end

fori=1:

r

forj=1:

s

Pba(i,j,2)=(Pb(j,1)*exp(S(m)*d(i,j)))/temp(i);

end%计算D

(1)(S)和R

(1)(S)

D

(1)=0;

fori=1:

r

forj=1:

s

D

(1)=D

(1)+Pa(i)*Pba(i,j,1)*d(i,j);

end

end

R

(1)=0;

fori=1:

r

forj=1:

s

if(Pba(i,j,1)~=0)

R

(1)=R

(1)+Pa(i)*Pba(i,j,1)*log2(Pba(i,j,1)/Pb(j,1));

end

end

end

n=2;

while

(1)%计算pn(bj)

forj=1:

s

Pb(j,n)=0;

fori=1:

r

Pb(j,n)=Pb(j,n)+Pa(i)*Pba(i,j,n);

end

end%计算pn+1(bj/ai)

fori=1:

r

temp(i)=0;

forj=1:

s

temp(i)=temp(i)+Pb(j,n)*exp(S(m)*d(i,j));

end

end

fori=1:

r

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1