matlab中的entropy函数是如何实现的?

matlab中的entropy函数是如何实现的?,第1张

(1)先用Hist函数对x(n)的赋值范禅答围进行分块,比如赋值范围在0~10的对应第

一块,10~20的第二块,以此类推肆厅。这之前需要对x(n)做一些归一化处理

(2)统计每一块的数据个数,并求出相应的概率

(3)用信息熵公式求解裂袭隐

以上求解方法获得的虽然是近似的信息熵,但是一般认为,这么做是没有问题的

求一维序列的信息熵的matlab程序代码如下:(已写成调用的函数形式)

测试程序:

fs=12000

N=12000

T=1/fs

t=(0:N-1)*T

ff=104

sig=0.5*(1+sin(2*pi*ff*t)).*sin(2*pi*3000*t)+rand(1,length(t))

Hx=yyshang(sig,10)

#include <stdio.h>

#include <string.h>

#include<math.h>

int main()//御备是少了main函数,程序里面一定要有main函数的

{

double p[100]//每个信源的概率

int n/镇扮毁/信源个数

int i

double sum=0

scanf("%d",&n)

for(i=0i<ni++)

{

scanf("%lf",&p[i])

sum+=-p[i]*(log(p[i])/log(2.0))

}

printf("%lf\缺吵n",sum)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12532260.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存