代码之家  ›  专栏  ›  技术社区  ›  Rickson

Python中卷积后的数据后处理

  •  0
  • Rickson  · 技术社区  · 8 年前

    import numpy as np
    fs = 10000
    f1 = 60
    duration = 10
    samples = int(fs*duration)
    t = np.arange(samples) / fs
    signal = 15 * t * np.sin(2.0*np.pi*f1*t)
    

    使用卷积计算均方根值,如下所示:

    def calculate_rms(signal, N):
        sig2 = np.power(signal,2)
        window = np.ones(N)/float(N)
        return np.sqrt(np.convolve(sig2, window, 'valid'))
    
    N = (1.0 / f1) * fs
    RMS = calculate_rms(signal,N) 
    

    然而,在卷积之后, RMS 当然,数据点比 t signal 我不知道如何进行后处理 t 信号 为了能够将其与 RMS signal=f(t) RMS=f(t) 在同一个情节中,没有扭曲时间维度。

    1 回复  |  直到 8 年前
        1
  •  2
  •   WhoIsJack    8 年前

    选项1

    np.convolve ,使用模式 'same' 而不是 'valid' the docs RMS 将具有与相同的形状 t signal 。边缘可能有边界效应,但这些影响可能很小,可能不会影响您的绘图。

    选项2

    t 盖子。自 valid 卷积的一部分从窗口大小的一半开始,可以按如下方式进行。

    t_cropped = t[int(N)//2:-int(N)//2+1]
    signal_cropped = signal[int(N)//2:-int(N)//2+1]