一块,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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)