You can also use scipy.signal.welch to estimate the power spectral density using Welch’s method. Here is an comparison between np.fft.fft and scipy.signal.welch:

from scipy import signal
import numpy as np
import matplotlib.pyplot as plt fs = 10e3
N = 1e5
amp = 2*np.sqrt(2)
freq = 1234.0
noise_power = 0.001 * fs / 2
time = np.arange(N) / fs
x = amp*np.sin(2*np.pi*freq*time)
x += np.random.normal(scale=np.sqrt(noise_power), size=time.shape) # np.fft.fft
freqs = np.fft.fftfreq(time.size, 1/fs)
idx = np.argsort(freqs)
ps = np.abs(np.fft.fft(x))**2
plt.figure()
plt.plot(freqs[idx], ps[idx])
plt.title('Power spectrum (np.fft.fft)') # signal.welch
f, Pxx_spec = signal.welch(x, fs, 'flattop', 1024, scaling='spectrum')
plt.figure()
plt.semilogy(f, np.sqrt(Pxx_spec))
plt.xlabel('frequency [Hz]')
plt.ylabel('Linear spectrum [V RMS]')
plt.title('Power spectrum (scipy.signal.welch)')
plt.show()

 

来自为知笔记(Wiz)

最新文章

  1. WCF基础
  2. Bug管理系统 BugFree
  3. paip.java 架构师之路以及java高级技术
  4. libtool: Version mismatch error 解决
  5. ural 1109,NYOJ 239,匈牙利算法邻接表
  6. hibernate框架
  7. WinCE下VPN设置
  8. TCP参数设置
  9. [译]Java 设计模式之备忘录
  10. Spring xml中进行autowired的方式
  11. Application->ProcessMessages();
  12. 3.QT事件处理,消息过滤器
  13. Python 绑定 C,C++ 参考工具介绍
  14. 用vi编辑文件
  15. SecureCRT使用总结
  16. http协议与websocket协议(转)
  17. pandas.drop/isnull/fillna/astype的用法
  18. ALGO-3_蓝桥杯_算法训练_K好数(DP)
  19. 【洛谷】P1095 守望者的逃离(递推)
  20. 洛谷——P2384 最短路

热门文章

  1. Python基础部分的疑惑解析——运算符和数据类型(3)
  2. 校验 CentOS 7 镜像文件
  3. Hangfire JobStorage.Current property value has not been initialized
  4. jsp页面用struts2标签展示List<Object>类型的数据
  5. JavaIO流总结
  6. 查看哪个用户、IP、什么时间登陆过服务器
  7. (转)mysql主从切换步骤
  8. media(适配)
  9. console和chrom-tool
  10. Go语言学习笔记二: 变量