zoukankan      html  css  js  c++  java
  • Python机器学习(六十三)SciPy 信号处理

    scipy.signal模块专门用于信号处理。

    重新采样

    scipy.signal.resample()函数使用FFT将信号重采样成n个点。

    示例

    import numpy as np
    
    t = np.linspace(0, 5, 100)
    x = np.sin(t)
    
    from scipy import signal
    x_resampled = signal.resample(x, 25)
    
    import matplotlib.pyplot as plt
    plt.plot(t, x)
    plt.plot(t[::4], x_resampled, 'ko')
    
    # plt.savefig('./sig1-1.png') # 保存要显示的图片
    plt.show()

    输出

    scipy signal 图1

    去除趋势

    scipy.signal.detrend()函数从信号中去除线性趋势。

    示例

    import numpy as np
    
    t = np.linspace(0, 5, 100)
    x = t + np.random.normal(size=100)
    
    from scipy import signal
    x_detrended = signal.detrend(x)
    
    import matplotlib.pyplot as plt
    plt.plot(t, x) 
    plt.plot(t, x_detrended) 
    
    # plt.savefig('./sig2-1.png') # 保存要显示的图片
    plt.show()

    输出

    scipy signal 图2

    滤波

    对于非线性滤波,scipy.signal模块中提供了中值滤波scipy.signal.medfilt(), 维纳滤波scipy.signal.wiener()。滤波的使用,可参考图像处理章节,不再赘述。

    频谱分析

    • scipy.signal.spectrogram() 计算连续时间窗上的频谱图
    • scipy.signal.welch() 计算功率谱密度(PSD)
  • 相关阅读:
    微微一笑很倾城(1)
    微微一笑很倾城(1)
    陈先生与程太太
    陈先生与程太太
    我在这
    我在这
    曾有一个人,爱我如生命(2)
    曾有一个人,爱我如生命(2)
    周末情妇
    [转载]黄泉嫁衣
  • 原文地址:https://www.cnblogs.com/huanghanyu/p/13170656.html
Copyright © 2011-2022 走看看