求解YuleWalker方程的Levinson递归(Toeplitz)

2024-05-16 11:16:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些石英SiO2(NASA Data Here)的反射率数据,我试图从反射率中找到材料的复折射率。通常这是通过Kramer-Kronig关系来实现的,但是我尝试用另一种方法,最大熵方法来实现

我的问题是尝试求解以下形式的Toeplitz矩阵:

enter image description here

enter image description here

我用FFT来解C,但我很难找到一个可行的代码来解矩阵。下面是我使用的一个尝试。最终的结果应该是对反射率的估计,它应该看起来像测量的数据,但是我得到了一条平线。如果您能帮助我们解决这个问题,我们将不胜感激

b = np.zeros([len(C)]) 
b[0] = C[1]

a = sci.linalg.solve_toeplitz((C,C*-1),b)
a[0] = 1

N = len(b)
M = int(N/2)
R_est = []

for v in range(len(df_sio2['wl'])): #for each output element
    c_single = complex(0)
    for m in range(M): #for each input element
        c_single +=  a[m]*np.exp(-2j*pi*m*v)
    R_est.append(np.abs((b[0]/(1+c_single))**2))

plt.plot(df_sio2.wl, np.real(R_est))

enter image description here


Tags: 数据方法indfforlennprange