ewan-xu / pyaec

simple and efficient python implemention of a series of adaptive filters. including time domain adaptive filters(lms、nlms、rls、ap、kalman)、nonlinear adaptive filters(volterra filter、functional link adaptive filters)、frequency domain adaptive filters(frequency domain adaptive filter、frequency domain kalman filter) for acoustic echo cancellation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于分块kalman 滤波

ydaj opened this issue · comments

commented

请问博主,在频域分块kalman算法里,更新滤波器系数时,对于constrain matrix GL您在代码里好像没有体现出来啊,另外,为啥计算X(k)P(k)XH(k)时候先计算X2之后要按行求和啊,X2 = np.sum(np.abs(self.X) ** 2, axis=0)
Re = 0.5 * self.Rm * X2 + np.abs(E) ** 2 / self.N

请问博主,在频域分块kalman算法里,更新滤波器系数时,对于constrain matrix GL您在代码里好像没有体现出来啊,另外,为啥计算X(k)P(k)XH(k)时候先计算X2之后要按行求和啊,X2 = np.sum(np.abs(self.X) ** 2, axis=0) Re = 0.5 * self.Rm * X2 + np.abs(E) ** 2 / self.N

请问频域分块kalman算法在计算mu = self.P / (Pe + 1e-10)的时候为什么没有乘以0.5?这个代码实现参照的论文是什么?谢谢

@ydaj constrain matrix的实现在这呢

if self.partial_constrain:
h = ifft(self.H[self.p])
h[self.M:] = 0
self.H[self.p] = fft(h)
self.p = (self.p + 1) % self.N
else:
for p in range(self.N):
h = ifft(self.H[p])
h[self.M:] = 0
self.H[p] = fft(h)