развертывание фазы и поиск вариаций (вейвлет-преобразование) python - PullRequest
0 голосов
/ 04 мая 2020

Я развертываю фазу сигнала и хочу выделить только небольшие вариации на этом графике, чтобы получить относительную фазу ... как бы я это сделал? Я попытался вычесть частоту сигнала, но частота не изолирует небольшие изменения в фазе.

Это то, что у меня есть, чтобы развернуть фазу и как выглядит сигнал для одной частоты.

# Optain the wavelet spectrum (amplitude is length of complex value squared, phase is angle of complex value)
# If you use a real wavelet, the angle is irrelevant
cwtmatr, freqs = pywt.cwt(sla_norm_local, a_space, wavelet_type, sampling_period = 1 / f_s)
amp = 1/f_s*power_scale * np.abs(cwtmatr)**2

#to get the local phase
angl = np.angle(cwtmatr)


## phase unwrapping

def phase_unwrap(angle):
    unwrap = angle

    for f in range((freqs.size)):
        for i in range(time.size):
            difference = angl[f,i] - angl[f,i-1]
            if difference > np.pi:
                unwrap[f,i:None] = unwrap[f,i:None] - 2*np.pi

            elif difference < -np.pi:
                unwrap[f,i:None] = unwrap[f,i:None] + 2*np.pi

    return unwrap

#plotting WRAPPED phase at first frequency

plt.plot(angl[1,:])
plt.xlim(0,500)
plt.show()

wrapped phase

#unwrapped phase

plt.plot(time, unwrap_freq_1)
plt.title('Wrapped phase at period of 1 year')
plt.grid()
plt.tight_layout()
#plt.savefig('wrapped')
plt.show()

unwrapped phase

Обратите внимание на небольшие изменения в развернутой фазе ... как мне нарисовать только эти маленькие вариации?

...