android实验报告天气预报,信息论上机实验报告.doc

该博客是信息论与编码实验报告,包含三个实验。实验一计算离散信源的熵,熟悉离散信源特点与Matlab编程;实验二验证熵的可加性与强可加性;实验三计算离散信道的平均互信息。通过多个习题及代码展示计算过程。
部署运行你感兴趣的模型镜像

信息论与编码实验报告

实验一:计算离散信源的熵

一、实验设备:

1、计算机

2、软件:Matlab

二、实验目的:

1、熟悉离散信源的特点;

2、学习仿真离散信源的方法

3、学习离散信源平均信息量的计算方法

4、熟悉 Matlab 编程;

三、习题:

1. 甲地天气预报构成的信源空间为:

乙地信源空间为:

求此两个信源的熵。求各种天气的自信息量。

代码:

x=[1/2,1/4,1/8,1/8];y=[7/8,1/8];HX=sum(-x.*log2(x))HY=sum(-y.*log2(y))IX=-log2(x)IY=-log2(y)

答案:

某信息源的符号集由A、B、C、D、E组成,设每一符号独立出现,其出现的概率分别为,1/4,1/8,1/8,3/16,5/16,试求该信源符号的平均信息量。

代码:

x=[1/4,1/8,1/8,3/16,5/16];HX=sum(-x.*log2(x))

答案:H(X) = 2.2272bit/符号

3、设有四个消息分别以概率1/4,1/8,1/8,1/2传送,每一消息的出现是相互独立的。试计算其平均信息量。

代码:

x=[1/4,1/8,1/8,1/2];

HX=sum(-x.*log2(x))

答案:H(X) =1.75bit/符号

4. 设一个二元信源(只有0和1两种符号)其概率空间为:

编程画出H与p的关系,并说明当P呈什么分布时,平均信息量达到最大值。

(说明:H=-p.*log2(p)-(1-p).log2(1-p);)

代码:

p= 1/1000000:1/1000:1;

H=-p.*log2(p)-(1-p).*log2(1-p);

plot(p,H)

grid on

xlabel('p');

ylabel('HP');

图:

实验二:验证熵的可加性与强可加性

【例2.6】

有一离散无记忆信源

验证二次扩展信源的熵等于离散信源的熵的2倍,即

代码:

x=[1/2,1/4,1/4];

hx=sum(x.*log2(1./x))

x2=[1/4,1/16,1/16,1/8,1/8,1/8,1/16,1/8,1/16]

hx2=sum(x2.*log2(1./x2))

答案:

2. 验证两个统计独立的信源,验证:

其中:

代码:

x=[1/2,1/4,1/4];

y=[1/3,1/3,1/3];

xy=[1/6,1/6,1/6,1/12,1/12,1/12,1/12,1/12,1/12]

hx=sum(x.*log2(1./x))

hy=sum(y.*log2(1./y))

Hxy=sum(xy.*log2(1./xy))

答案:

3、条件熵的计算与熵的强可加性

验证离散二维平稳信源,满足:

某一离散二维平稳信源

其联合概率分布为:

XjX2012012

编程计算:

联合熵

条件熵

验证:

代码:

x1=[11/36,4/9,1/4];

x2=[11/36,4/9,1/4];

b=[1/4,1/18,0;1/18,1/3,1/18;0,1/18,7/36];

HXY=0;

for i=1:size(b,1)

for j=1:size(b,2)

if b(i,j)>0

HXY=HXY-b(i,j).*log2(b(i,j));

end

end

end

HXY

Hx1=sum(x1.*log2(1./x1))

Hx2=sum(x2.*log2(1./x2))

b0=b(1,:);

b1=b(2,:);

b2=b(3,:);

x1x2=[b0./x2;b1./x2;b2./x2];

Hx1x2=0;

for i=1:size(x1x2,1)

for j=1:size(x1x2,2)

if x1x2(i,j)>0

Hx1x2=Hx1x2-b(i,j).*log2(x1x2(i,j));

end

end

end

Hx1x2

答案:

实验三:离散信道的平均互信息的计算

1. 【习题3.1】

设信源

通过一干扰信道,接收到符号为,其信道矩阵为:

求信源X中事件和分别含有的自信息;

收到消息后,获得的关于的信息量;

求信源X和输出变量Y的信息熵;

信道疑义度和噪声熵;

接收到消息Y后获得的平均互信息;

代码:

x=[0.6,0.4];

p=[5/6,1/6;3/4,1/4];

Ix1=log2(1./(x(1,1)))

Ix2=log2(1./(x(1,2)))

pxy=[x(1,1)*p(1,:);x(1,2)*p(2,:)];

py=[x*p(:,1),x*p(:,2)];

px_y=[pxy(:,1

您可能感兴趣的与本文相关的镜像

Dify

Dify

AI应用
Agent编排

Dify 是一款开源的大语言模型(LLM)应用开发平台,它结合了 后端即服务(Backend as a Service) 和LLMOps 的理念,让开发者能快速、高效地构建和部署生产级的生成式AI应用。 它提供了包含模型兼容支持、Prompt 编排界面、RAG 引擎、Agent 框架、工作流编排等核心技术栈,并且提供了易用的界面和API,让技术和非技术人员都能参与到AI应用的开发过程中

Android天气预报实验报告模板 public class SetCityActivity extends Activity { //定义的一个自动定位的列表 private ListView gpsView; //定义的一个省份可伸缩性的列表 private ExpandableListView provinceList; //定义的用于过滤的文本输入框 private TextView filterText; //定义的一个记录城市码的SharedPreferences文件名 public static final String CITY_CODE_FILE="city_code"; //城市的编码 private String[][] cityCodes; //省份 private String[] groups; //对应的城市 private String[][] childs; //自定义的伸缩列表适配器 private MyListAdapter adapter; //记录应用程序widget的ID private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.set_city); gpsView = (ListView)findViewById(R.id.gps_view); provinceList= (ExpandableListView)findViewById(R.id.provinceList); //设置自动定位的适配器 gpsView.setAdapter(new GPSListAdapter(SetCityActivity.this)); //==============================GPS================================= //当单击自动定位时 gpsView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView localeCity = (TextView)view.findViewById(R.id.locateCityText); localeCity.setText("正在定位..."); final LocateHandler handler = new LocateHandler(localeCity); //添加一个线程来处理定位 new Thread(){ public void run() { Map<Integer, String> cityMap= getLocationCityInfo(); //记录匹配的城市的索引 int provinceIndex = -1; int cityIndex = -1; //传给处理类的数据封装对象 Bundle bundle = new Bundle(); if(cityMap!=null) { //得到图家名 String country = cityMap.get(LocationXMLParser.COUNTRYNAME); //只匹配中国地区的天气 if(country!=null&&country.equals("中国")){ //得到省 String province = cityMap.get(LocationXMLParser.ADMINISTRATIVEAREANAME); //得到市 String city = cityMap.get(LocationXMLParser.LOCALITYNAME); //得到区县 String towns = cityMap.get(LocationXMLParser.DEPENDENTLOCALITYNAME); Log.i("GPS", "============"+province+"."+city+"."+towns+"=============="); //将GPS定位的城市与提供能查天气的城市进行匹配 StringBuilder matchCity = new StringBuilder(city); matchCity.append("."); matchCity.append(towns); //找到省份 for(int i=0; i<groups.length; i++) { if(groups[i].equals(province)) { provinceIndex = i; break; } }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值