пириды и гармонический анализ

#python #pycharm

Вопрос:

Этот вопрос очень специфичен для Pytides2. Итак, я пытался восстановить поддельный сигнал прилива(сгенерированный мной самим).

 amp = [4,6] phase = [np.pi/2,np.pi/4] period = [4,12] signal = [[amp[i] * np.cos((2*np.pi/period[i])*j - (phase[i])) for j in range(len(time))] for i in range(2) ] signal_sum = np.add(signal[0],signal[1])  

Теперь я пытаюсь разложить его и получить компоненты прилива (чтобы я мог использовать основные компоненты для восстановления поддельного сигнала прилива).

 tide_decom = Tide.decompose(signal_sum,time) from pandas import DataFrame constituent = [c.name for c in tide_decom.model['constituent']] df_constituent = DataFrame(tide_decom.model, index =constituent).drop('constituent', axis=1) df_constituent.reset_index(inplace=True) const_tidal = df_constituent.sort_values('amplitude', ascending=False)  print(const_tidal)  

Следует отметить, что, когда я даю точные значения периодов, таких как 4, 6, 8, 12 и 24(это идеальные значения с 6,4,3,2, 1 циклами в день), я могу получить правильную амплитуду, фазу и период на выходе.

 index constituent amplitude phase period 2 S2 5.964851 45.482195 12.0000 12 S6 4.000000 89.999999 4.0000  

что очень похоже на фальшивый сигнал прилива.

Проблема возникает, когда я слегка изменяю значения периодов, скажем, периоды 4 изменились на 4,01, сохраняя при этом фазу и амплитуду одинаковыми.

 period[4.01,12]  

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

 index constituent amplitude phase period 2 S2 57637.533234 344.583897 12.0000 22 T2 34100.335418 158.853583 12.0164  

амплитуда 57637,53 метра!! Это абсурд.

Любая помощь приветствуется.