基于证据理论的多源数据融合仿真实验matlab代码

2023-11-06

matlab源码链接见文章末尾

基于D-S证据理论的数据融合方法的基本思想

D-S证据理论是一种不确定性推理方法,所处理的数据信息大多是具有不确定性的,该方法能够摆脱对先验概率的依赖,把难以下手分析和处理的完整问题分解成很多易于处理的子问题,利用D-S证据理论将子问题的分析结论综合起来,采用数学推理推理的融合方式得到最终的融合结果。
D-S证据理论由识别框架、基本概率分配函数、信任函数、似然函数和合成规则构成。

基本思路

(1) 建立识别框架。分析所要融合的数据样本,得到数据融合后可能出现的所有命题,构成D-S证据理论中的识别框架。
(2) 建立初始信任分配。在识别框架中,为每一个命题分配证据,并获取它的基本概率分配函数。
(3)根据因果关系,计算所有命题的信任度。结合D-S证据理论中的信度函数和似然函数构造识别框架中的每个命题的信任度。一个命题的信任度等于证据对它的所有前提的初始信任度之和。
(4)证据合成。最后利用D-S证据理论合成法融合多个证据提供的信息,对每个命题的信任度进行合成,
(5)根据合成后的信任度决策出证据数据属于哪一种命题,一般选择信任度最大的命题。

识别框架

在这里插入图片描述

基本置信度指派函数

在这里插入图片描述

信任度函数

在这里插入图片描述

似真度函数

在这里插入图片描述

合成规则

两证据融合

在这里插入图片描述

三证据融合

在完成两证据的融合后,可以将证据1与证据2融合后的结果当作新的需要融合的基本置信度指派函数,与证据3再次进行融合,重复(1)中两证据融合的操作。

仿真思路

在这里插入图片描述
1.设置元素个数、幂集合大小,得到基本置信度指派函数
(1)设置元素个数为3,具体为:A={a,b,c}。
(2)幂集合的大小为8,具体为:

 	E={Φ,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}}];

(3)证据个数为3,分别为M1,M2,M3。
(4)三个证据基本置信度指派函数取值为:

 	 M1=[0,0.35,0.25,0.15,0.06,0.05,0.04,0.10];
	 M2=[0,0.45,0.15,0.05,0.06,0.15,0.04,0.10];
 	 M3=[0,0.55,0.15,0.05,0.06,0.05,0.10,0.04];

满足每个证据M中,Φ的mass函数值为0,另外其他的假设mass值的和为1。

2.求信任度函数Bel
依据公式如下:
在这里插入图片描述

对于假设A,它的信任度函数为所有真属于A的假设B的所有mass值的和。
代码如下:

	 bel_A(2:4)=M(2:4);
	 bel_A(5)=M(5)+M(2)+M(3);
	 bel_A(6)=M(6)+M(2)+M(4);
	 bel_A(7)=M(7)+M(3)+M(4);
	 bel_A(8)=1;

3.求似真度函数Pl
对于假设A,它的似真度函数为所有与A相交的所有mass值的和。
依据公式如下:
在这里插入图片描述

找到焦元的非,将1与焦元的非的信任度作差,即可得到该焦元的似真度。
代码如下:

 	 pl_A(2)=1-bel_A(7);
	 pl_A(3)=1-bel_A(6);
	 pl_A(4)=1-bel_A(5);
	 pl_A(5)=1-bel_A(4);
	 pl_A(6)=1-bel_A(3);
	 pl_A(7)=1-bel_A(2);
	 pl_A(8)=1;

由信任度函数和似真度函数组成的闭区间[Bel(A),Pl(A)]为假设A的信任区间,表示对假设A的确认程度。

4.求证据M1和证据M2的融合m12
依据公式如下在这里插入图片描述
(1)计算冲突系数K12:
对证据M1中的每个焦元分别进行以下操作:将证据M2中与证据M1相交为空集的焦元对应的基本置信度相加,再与其基本置信度相乘,最后将每个焦元计算得到的结果进行求和,即:

 	 K12=K12+M1(i)*(1-M2(i));

(2)计算证据融合后的基本置信度指派函数:
若空集的映射结果不为0,即证据M1和证据M2的焦元相交是某焦元,就需要将证据M1与证据M2的焦元的基本置信度相乘,再将两两相乘的结果求和。

 	 m12_A(i)=M1(i)*M2(i);

(3)将融合后的结果矩阵与(1-K)相除:

     m12=m12_A/(1-K12);

5.求证据M1和证据M2的融合与证据M3的融合m123
将证据M1与证据M2融合后的结果m12当作新的需要融合的基本置信度指派函数,与证据M3再次进行两证据融合。

仿真结果

1.信任度函数:bel
在这里插入图片描述

例如假设A为{a,b},那么它的bel函数值为:
m{Φ}+m{a}+m{b}+m{a,b}=0+0.35+0.25+0.06=0.66
与上述仿真结果一致,且Φ信任度为0,{a,b,c}信任度为1,单元素焦元基本置信度与信任度相同,故仿真正确。

2.似真度函数pl
在这里插入图片描述

例如假设A为{a,b},那么它的pl函数值为:
1-m{c}=1-0.15=0.85
与上述仿真结果一致,且Φ的似真度为0,{a,b,c}的似真度为1,每一个集合的似真度函数值大于信任度函数值,故仿真正确。

3.证据M1和证据M2的融合结果m12
在这里插入图片描述

Φ的基本置信度为0,其他假设的基本置信度和为1,故仿真正确。

4.证据M1和证据M2的融合与证据M3的融合结果m123
在这里插入图片描述

Φ的基本置信度为0,其他假设的基本置信度和为1,故仿真正确。

仿真结论

1.Φ的信任度、似真度为0,识别框架的信任度、似真度为1
2.Φ的基本置信度为0,其他假设的基本置信度和为1
3.每一个集合的似真度函数值大于信任度函数值。由信任度函数和似真度函数组成的闭区间[Bel(A),Pl(A)]为假设A的信任区间,表示对假设A的确认程度。
4.数据融合后的结果能够缩小置信区间,使得数据更加精确。
5.通过基于证据理论的数据融合得到的结果更加直观,对于具有较大置信度的数据有提升,对于较小置信度的数据有减弱。

心得体会

通过多源数据融合技术课程的学习以及此次基于证据理论的多源数据融合matlab实验,我对数据融合这一之前从未涉及过的课题有了一定的了解。
通过这次仿真实验的学习,我深入了解了D-S证据理论。认识到D-S方法把每个证据信息都作为命题正确与否的依据,对每个命题指派两个不确定性度量(信任度和似真度),存在一个证据属于一个命题的不确定性测度,而并非直接判断命题的对错,这让我对于概率问题的了解更加深入和全面。
通过matlab仿真实验,我进一步理解了置信度函数,信任度函数,似真度函数,并对数据融合的原理有了进一步掌握。

源码链接: https://blog.csdn.net/qq_44394952/article/details/122208884?spm=1001.2014.3001.5501.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于证据理论的多源数据融合仿真实验matlab代码 的相关文章

  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • ODE 时间 Matlab 与 R

    如果在 matlab 中使用可变时间步长求解器 例如 ODE45 我会定义输出的时间跨度 即times 0 50 matlab 将返回 0 到 50 之间不同时间步长的结果 然而在 R 中 我似乎必须定义我希望 ODE 返回结果的时间点 即
  • Matlab-如何在曲线上绘制切线

    我在 matlab 中绘制了一个图表 plot x y 我的图表有不同的斜率 我如何在每个斜率上绘制切线并计算斜率的系数 如果您没有用于绘制点的显式函数 您可以使用有限差分 http en wikipedia org wiki Finite
  • 继续在 Matlab 中一遍又一遍地播放声音?

    我正在尝试创建一个 MATLAB 程序来每隔几分钟一遍又一遍地播放声音 现在我将其设置为每隔几秒播放一次 只是为了消除系统中的一些错误 但是 当我的程序尝试重播声音时 我收到此错误 Error using gt audioplayer au
  • Matlab:掩码/创建一个知道其原点且具有一定半径的圆形 roi

    只是一个简单的问题 我有一张图像 并且提取了某个点 特征 我知道每个帧中该点的坐标 说 x1 和 y1 我需要一个圆形 ROI 形式 该点在图像上具有我选择的半径 我尝试了 impoly 和 roipoly 当我知道图像中的要点时 不知道如
  • 如何让MCR启动时间快

    我将 matlab 程序转换为 net 程序集 即 dll 文件 我制作了一个控制台 C 应用程序 添加了 dll 文件并从 php 调用它 每次调用 exe 时都会调用 MCR 如何使 MCR 在服务器启动时初始化 并且即使在一段时间后调
  • MATLAB 中时间戳过滤器的优化 - 处理非常大的数据集

    我正在 MATLAB 中编写一个程序 必须使用 MATLAB 并且不能真正使用 MEX 来过滤大量数据 我需要实现的过滤器之一要求我将时间戳向量与其他时间戳不会出现的已知 不良 时间列表进行比较 一个典型的时间戳向量有大约 2 000 00
  • 将自动生成的 Matlab 文档导出为 html

    我想为我开发的 Matlab 工具箱生成完整的帮助 我已经看到如何显示自定义文档 http www mathworks fr fr help matlab matlab prog display custom documentation h
  • 两个 y 轴与相同的 x 轴[重复]

    这个问题在这里已经有答案了 可能的重复 在单个图中绘制 4 条曲线 具有 3 个 y 轴 https stackoverflow com questions 1719048 plotting 4 curves in a single plo
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • Matlab:保存后翻转图例顺序和图例重叠图

    我正在尝试根据以下内容反转我的图例条目顺序matlab条形图中图例颜色的逆序 https stackoverflow com questions 31178005 reverse ordering of legend colors in m
  • 在 MATLAB 中重命名文件

    我正在尝试以编程方式重命名工作目录中的文件a temp txt to b hello txt 您建议如何这样做 MATLAB中有一个简单的文件重命名函数吗 我认为您正在寻找 MOVEFILE
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i
  • 两个向量之间的欧氏距离(单行矩阵)

    我有两个向量 单行矩阵 假设我们已经知道长度len A x1 x2 x3 x4 x5 B y1 y2 y3 y4 y5 计算它们之间的欧几里德距离最快的方法是什么 我的第一次尝试是 diff A B sum 0 for column 1 l
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • 在 Matlab 中高效获取像素坐标

    我想在 Matlab 中创建一个函数 给定一个图像 该函数将允许人们通过单击图像中的像素来选择该像素并返回该像素的坐标 理想情况下 人们能够连续单击图像中的多个像素 并且该函数会将所有相应的坐标存储在一个矩阵中 有没有办法在Matlab中做
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和

随机推荐

  • Mac常用的五款思维导图软件,中文版推荐

    第一款 最强思维导图软件 XMind 2021 v11 1 0 for Mac XMind 是Mac创建思维导图的最热门软件 拥有大量的用户群体 长期保持着高下载量的软件 当您考虑您的想法或就某个特定主题的头脑风暴分组时 您偶尔会想到想法
  • 实现用户操作日志记录

    Java记录操作日志 java自带的日志框架是java util logging JUL 从JDK1 4 2002 开始捆绑在JDK中 可以使用JUL来记录操作日志 以下是使用JUL记录事务的示例 java util logging jav
  • 使用Tensorflow的RNN(LSTM)生成音乐(基础)

    跟着Tensorflow的官方教程 搭建一个简单的LSTM模型 生成midi格式的音乐 只是为了熟悉tensorflow机器学习的代码一般格式 在音乐生成的模型上有很多不合理的操作 所以结果也不太好 安装 用的目前最新版Tensorflow
  • SQLServer附加数据库5120错误

    https www cnblogs com yangxiaofei p 5123816 html 装有MSSQL的电脑 需要附加的数据库文件 mdf 及其日志文件 ldf 1 打开SQL Server Management Studio 并
  • 数据库编码 问题 mysql 修改字符集为utf8mb4

    数据库编码 问题 mysql 修改字符集为utf8mb4 问题 当向数据库插入表 或者在表中插入数据时 出现 ERROR 1366 HY000 Incorrect string value xBD xF0 xD3 xB9 for colum
  • golang-reflect(Typeof()和Kind())

    package main import fmt reflect type INT int func main var a INT fmt Println reflect TypeOf a Name INT fmt Println refle
  • 【51单片机实验笔记】前篇(一)遇到的问题汇总(持续更新)

    问题列表 开发环境问题 CH340串口识别失败 22 12 17 Keil5 如何兼容C51和STM32 22 12 17 如何创建C51工程模板 22 12 17 如何修改字体大小 22 12 17 Keil的 0xFD Bug 23 0
  • 如何利用Python抢回在蚂蚁森林把逝去的能量,不用天天担心别人来偷能量了。

    1 蚂蚁森林简介 蚂蚁森林是一项旨在带动公众低碳减排的公益项目 每个人的低碳行为在蚂蚁森林里可计为 绿色能量 绿色能量 积累到一定程度 就可以用手机申请在生态亟需修复的地区种下 一棵真树 或者在生物多样性亟需保护的地区 认领 保护权益 蚂蚁
  • python中模块,包,库的区别和使用

    模块 就是 py文件 里面定义了一些函数和变量 需要的时候就可以导入这些模块 包 在模块之上的概念 为了方便管理而将文件进行打包 包目录下第一个文件便是 init py 然后是一些模块文件和子目录 假如子目录中也有 init py 那么它就
  • java 带超时时间lru_最近最久未使用页面淘汰算法———LRU算法(java实现)

    请珍惜小编劳动成果 该文章为小编原创 转载请注明出处 LRU算法 即Last Recently Used 选择最后一次访问时间距离当前时间最长的一页并淘汰之 即淘汰最长时间没有使用的页 按照最多5块的内存分配情况 实现LRU算法代码如下 p
  • java反序列化失败

    java io EOFException at java io ObjectInputStream PeekInputStream readFully ObjectInputStream java 2638 at java io Objec
  • Spring MVC 提示: Neither BindingResult nor plain target object for bean

    当你开发一个项目 如果你选择的是spring MVC 框架 而你在前台使用spring的标签时 那么你有可能出现在这个情况 javax servlet jsp JspTagException Neither BindingResult no
  • C++中头文件嵌套定义问题

    相信大家在做复杂的C 编程的过程中会被复杂的文件之间的关系所难倒 在编译文件时遇到这个或那个的非语法错误 这就需要仔细检查你的代码模块了 本小白在编写某个C 项目时遇到了这种编译错误 希望可以借鉴给更多的人 避免这种由头文件嵌套定义所导致的
  • Jmeter实战:0基础也能看懂的性能测试(建议收藏)

    经常听到性能 何为性能 从来没做过性能测试的人该如何上手 这篇文章非常适合零基础的同学看 看完之后基本上就能知道性能测试的全流程 性能指标 1 什么是性能测试 在一定情况下 通过工具模拟用户负载系统的响应时间 吞吐量等指标是否满足需求 2
  • Pytorch GPU编号问题

    虽然os environ CUDA VISIBLE DEVICES 能够实现在代码中设置可见的GPU 设备 但是在实际运行中 Pytorch会对这些GPU重新编号 比如 os environ CUDA VISIBLE DEVICES 3 5
  • 什么是虚拟服务器

    什么是虚拟服务器 简单来将 对于一个通过路由器搭建的局域网 当广域网上有对这个局域网共有IP访问时 路由器会将访问转移到局域网内某个特定的电脑上 这个功能是通过对路由器设置完成的 举个例子 如果你想建立一个服务器 供internet 上的用
  • gitee常用指令

    git init 初始化仓库 git status查看当前状态 git pull将本地代码与线上代码同步 git config 查询修改和配置 git log 显示提交日志 git fetch 从远程获取代码库 git branch查看本地
  • 使用Microsoft认知服务进行文本检测和 OCR

    使用Microsoft认知服务进行文本检测和 OCR Microsoft Cognitive Services MCS Microsoft认知服务 这篇博客将介绍 Microsoft Cognitive Services MCS OCR A
  • 用cmake gui配置VS2022中vs2017工具集

    问题描述 vs2022中安装了vs2017 vs2019等工具集 想用cmake gui配置vs2017编译器进行项目生成 选择 Visual Studio 15 2017会提示找不到 选择Visual Studio 17 2022用的就是
  • 基于证据理论的多源数据融合仿真实验matlab代码

    matlab源码链接见文章末尾 基于D S证据理论的数据融合方法的基本思想 D S证据理论是一种不确定性推理方法 所处理的数据信息大多是具有不确定性的 该方法能够摆脱对先验概率的依赖 把难以下手分析和处理的完整问题分解成很多易于处理的子问题