独立向量信号互信息计算——Matlab实现

独⽴向量信号互信息计算——Matlab实现
引⾔
ka5q1265信息熵公式:
其中I(X)表⽰X的信息量
p(xi)是xi发⽣的概率英⽂⾥⾯叫做probability mass function,⼀个随机产⽣的事件所包含的信息本体数量,只与事件发⽣的机率相关。事件发⽣的机率越低,在事件真的发⽣时,接收到的信息中,包含的信息本体越⼤。含义是概率为 0 的事件对应的信息⼤, 反之信息量少.取对数的原因是使得乘积变为求和。两个独⽴事件x,y :p(x,y)=p(x)*p(y),I(x,y)=I(x)+I(y)
信息熵即为信息量的数学期望。
互信息为:
平均互信息为互信息的数学期望:
从公式可以推出:
统一平台
这样就可以求出两个信号X,Y的互信息了,唯⼀需要求的就是两个信号的各⾃的pmf以及联合pmf,离散的pmf可以⽤直⽅图法求出,很直观很简单,就是将数据分成n等分,累计落⼊区间的数量即为信号⾃⼰的pmf,联合的pmf呢,同样的记录相同时刻的(xi,yi)落⼊两个数据n*n等分⽅格中的数量即为联合的pmf。
1. 编码实现
%计算两列向量之间的互信息
%u1:向量1
%u2:向量2
金寨地震
%wind_size:划分的等份
function mi = calc_mi(u1, u2, wind_size)
x = [u1, u2];
n = wind_size;
[xrow, xcol] = size(x);
bin = zeros(xrow,xcol);
pmf = zeros(n, 2);
for i = 1:2
minx = min(x(:,i));
maxx = max(x(:,i));2010体操世锦赛
binwidth = (maxx - minx) / n;
edges = minx + binwidth*(0:n);
电子纸histcEdges = [-Inf edges(2:end-1) Inf];
[occur,bin(:,i)] = histc(x(:,i),histcEdges,1);
pmf(:,i) = occur(1:n)./xrow;
244uu
end
jointOccur = accumarray(bin,1,[n,n]);
jointPmf = jointOccur./xrow;
Hx = -(pmf(:,1))'*log2(pmf(:,1)+eps);
Hy = -(pmf(:,2))'*log2(pmf(:,2)+eps);
Hxy = -(jointPmf(:))'*log2(jointPmf(:)+eps);
MI = Hx+Hy-Hxy;
mi = MI/sqrt(Hx*Hy);

本文发布于:2024-09-21 10:43:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/65450.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息   事件   互信息   数量
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议