关于小波变换函数返回值的问题
severous opened this issue · comments
def wavelet_transform(x, J):
N = len(x)
C = np.zeros(shape=(J + 1, N))
# W: wavelet coefficients
W = np.zeros(shape=(J + 1, N))
C[0, :] = x.copy()
for j in range(1, J + 1):
for k in range(1, N):
C[j, k] = 1 / 2 * (C[j - 1, k] + C[j - 1, k - np.power(2, j - 1)])
W[j, k] = C[j - 1][k] - C[j, k]
W[0, :] = C[J, :]
return W[:, np.power(2, J):]
你好,为什么系数在返回时只选取了2^J以后的,这一点让我感觉很疑惑,希望您有时间可以为我解答。十分感谢
你好 , 欢迎对我们的工作感兴趣 ~
你好,为什么系数在返回时只选取了2^J以后的,这一点让我感觉很疑惑,希望您有时间可以为我解答。十分感谢
从小波系数计算过程图 (文中Fig3), 可以看到 N 个节点的HFCM只用到了2^( N -1)个历史时刻点,故如此进行截取。再久远的时刻点的时域信息,通过调整阶数 k 进行利用。
祝好
def wavelet_transform(x, J): N = len(x) C = np.zeros(shape=(J + 1, N)) # W: wavelet coefficients W = np.zeros(shape=(J + 1, N)) C[0, :] = x.copy() for j in range(1, J + 1): for k in range(1, N): C[j, k] = 1 / 2 * (C[j - 1, k] + C[j - 1, k - np.power(2, j - 1)]) W[j, k] = C[j - 1][k] - C[j, k] W[0, :] = C[J, :] return W[:, np.power(2, J):]