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)
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值