- 积分
- 939
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-12-8
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2021-8-9 17:55:35
|
显示全部楼层
def comput_cross_spe(u, v):
u_fft = np.fft.fftshift(np.fft.fft(u))
v_fft = np.fft.fftshift(np.fft.fft(v))
a1 = u_fft.real
a2 = v_fft.real
b1 = u_fft.imag
b2 = v_fft.imag
P = (a1 * a2 + b1 * b2) / 4
Q = (a1 * b2 - a2 * b1) / 4
P11 = smooth_operation((a1 * a1 + b1 * b1) / 4)
P22 = smooth_operation((a2 * a2 + b2 * b2) / 4)
P = smooth_operation(P)
Q = smooth_operation(Q)
R = (P ** 2 + Q ** 2) / (P11 * P22)
T = np.arctan(Q / P)
return [P, Q, R, T]
def smooth_operation(P):
P_size = len(P)
for i in range(P_size):
if i == 0:
P[0] = (P[0] + P[1]) * 0.5
elif i == P_size - 1:
P = (P + P[i - 1]) * 0.5
else:
P = 0.25 * P[i - 1] + 0.5 * P + 0.25 * P[i + 1]
return P |
|