(1D)曲线的信息内容(即光谱学)

Information content of a (1D) curve (i.e. spectroscopy)

提问人:R. C. 提问时间:6/19/2023 最后编辑:R. C. 更新时间:6/26/2023 访问量:30

问:

我正在寻找一种量化一维曲线信息含量的度量。为了解释,这里是 python 中的一个示例:

import numpy as np
import matplotlib.pyplot as plt

x, dx = np.linspace(0, 10, 1001, retstep=True)
y1 = 2 * np.pi * np.exp(-.5 * (x - 5)**2)
y2 = np.pi * np.exp(-.5 * (x - 5)**2) \
   + 2 * np.exp(-5 * (x - 2)**2) \
   + 3 * np.exp(-5 * (x - 8)**2)

plt.plot(x, y1, label='curve 1')
plt.plot(x, y2, label='curve 2')
plt.legend()

enter image description here

曲线 1 是单高斯曲线,其“信息内容”为 3:x 位置、振幅和宽度。曲线 2 包含 3 个这样的峰值,因此携带 9 个数字作为信息内容。 这里我们遇到了第一个问题:我们之所以这么说,是因为我们有一个曲线模型(高斯峰)。 有没有函数或方法可以计算这种曲线的信息含量/熵?

我研究了香农熵,如果先计算概率密度函数,它可以给出一些数字,这里是:np.histogram

>>> pdf1, x1 = np.histogram(y1, 31, density=True)
>>> pdf2, x2 = np.histogram(y2, 31, density=True)
>>> -np.sum(pdf1 * np.log2(pdf1)) # shannon entropy
5.684224974417829
>>> -np.sum(pdf2 * np.log2(pdf2))
11.151687052639227

问题在于,这种方法没有考虑数据点之间的相关性,而数据点显然存在。

这是我的实际数据的样子:

Actual data

顺便说一句:任何近似都可以,这里不需要数学上的严谨性。

有什么想法吗?

Python 曲线 信息论

评论

0赞 Him 6/26/2023

答: 暂无答案