scipy 随机共振中两个含噪信号间的相移

ltskdhd1  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(125)

对于任务3,我想尝试计算噪声信号和周期强迫之间的相移,我使用了互相关方法,但相移变得非常小,没有意义,我过滤了噪声信号或使用了不同的方法,但没有效果,您知道我应该如何精确计算相移吗?

首先,我绘制了噪声信号,然后计算了噪声信号(x)和周期性强制(x2)之间的相移

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as signal
simulation_time = 100.0
sigma = 0.3
A =10
T=100
omega = 0.1
dt = 0.001
sqdt = np.sqrt(dt) #Precompute
time = np.arange(0, simulation_time, dt)
x = np.empty(len(time))
x2 = np.empty(len(time))
#Initial conditions 
x[0] = 1.0

i = 1
for t in time[1:]:
    fx = x[i-1] - x[i-1]*x[i-1]*x[i-1] + A*np.cos(omega*t)
    x2[i]=A*np.cos(omega*t)
    gx = sigma
    x[i] = x[i-1] + dt*fx + sqdt*gx*np.random.standard_normal()
    i += 1
plt.figure()
plt.plot(time, x)
plt.plot(time, x2)
plt.xlabel('time')
plt.ylabel('signal')
plt.show()

#cross corelation method 
output = np.correlate(x,x2*0.15,mode='same')
lags   = time-50
plt.plot(lags,output)
maximum = np.max(output)
phase_shift = lags[output==maximum][0]
phase_shift

0.05799999999999983
mkshixfv

mkshixfv1#

如果有疑问,请对照FFT进行验证。这效率不高,但解释起来更直观:
第一个

相关问题