首页 > 其他 > 详细

SciPy 信号处理

时间:2019-11-11 11:20:30      阅读:252      评论:0      收藏:0      [点我收藏+]

章节


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.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模块中提供了中值滤波scipy.signal.medfilt(), 维纳滤波scipy.signal.wiener()。滤波的使用,可参考图像处理章节,不再赘述。

频谱分析

  • scipy.signal.spectrogram() 计算连续时间窗上的频谱图
  • scipy.signal.welch() 计算功率谱密度(PSD)

SciPy 信号处理

原文:https://www.cnblogs.com/jinbuqi/p/11833539.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!