Python вычисляет спектр верхней боковой полосы импульса

Я ищу численный способ вычисления спектра боковой полосы изменяющегося во времени сигнала V (t), используя:

Спектр фазы импульса

Определение Phi

Я попытался получить верхнюю боковую полосу, используя сначала преобразование Гильберта  Определение одной боковой полосы

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import hilbert, chirp
def ltrain(x, c, amp, gamma):
    """ Return lorentzian pulse train at x0 with HWHM sigma """    
    fittrain = np.array(np.ones(len(x))*+c)   
    for li in range(1,500,1):
        fittrain += np.array(amp/(1+ (np.power(((x-((li-200)*1/6))/(0.5*gamma)),2))))
    fitmin = np.min(fittrain)
    return fittrain-fitmin
popt = [-0.6131588,   1.40610615,  0.07610384]

duration = 1.0
fs = 10000.0
samples = int(fs*duration)
t = np.arange(samples) / fs

fitfn = ltrain(t, popt[0],popt[1], popt[2])
signal = fitfn
#signal = np.cos(24*t)
analytic_signal = hilbert(signal)
amplitude_envelope = np.abs(analytic_signal)
instantaneous_phase = np.unwrap(np.angle(analytic_signal))
instantaneous_frequency = (np.diff(instantaneous_phase) / (2.0*np.pi) * fs)
fig = plt.figure()
ax0 = fig.add_subplot(111)
ax0.plot(t, analytic_signal, label='Analytical signal')
hilbert_trafo = np.imag(analytic_signal)
ax0.plot(t, hilbert_trafo, label='Hilbert Transform')
#ax0.plot(t, np.real(analytic_signal), label='Original Signal')
ax0.plot(t, (signal)/(hilbert_trafo), label='x(t)/x_H (t)')
ax0.set_ylim([-2,2])
#ax0.plot(t, instantaneous_phase, label='Instantanous Phase')
#ax0.plot(t, amplitude_envelope, label='Envelope')
ax0.set_xlabel("Time")
ax0.legend()
plt.tight_layout()

Я хотел бы получить спектр боковой полосы для произвольных периодических импульсов (в этом примере экспоненциальный спад для f> 0, 0 в противном случае 0 для импульсов, которые я определяю), используя функции Python, такие как БПФ преобразования Гильберта, или путем прямого численного решения двойного интеграл. В результате должен получиться такой график или кривая (время левого графика, частотные компоненты правого графика, определенные в спектре первой формулы exp (-i phi (t))):  Верхняя боковая полоса лоренцевского импульса


person beneminzl    schedule 23.07.2019    source источник
comment
Вы пробовали stackoverflow.com/questions/39032325/python-high-pass -фильтр?   -  person nivpeled    schedule 23.07.2019
comment
Я хотел бы сначала построить частотно-зависимые полосы перед фильтрацией.   -  person beneminzl    schedule 23.07.2019
comment
Я подумал о том, чтобы получить фазу по аналитическому сигналу, затем взять экспоненту и вычислить спектр   -  person beneminzl    schedule 23.07.2019