python 画频率谱
Python画频率谱是很常见的需求。Python提供了几个经常使用的库,可以轻松地处理频域信息。下面介绍一些经常使用的方法。
import numpy as np import matplotlib.pyplot as plt # 生成信号及采样频率 Fs = 1000 # 采样频率 T = 1/Fs # 采样周期 L = 1000 # 采样点数 t = np.arange(L)*T # 时间序列 f1 = 50 # 信号频率 f2 = 120 # 信号频率 S = 0.7*np.sin(2*np.pi*f1*t) + np.sin(2*np.pi*f2*t) # 生成信号 # FFT计算 Y = np.fft.fft(S) # 傅里叶变换 P2 = np.abs(Y/L) # 取模 P1 = P2[range(int(L/2))] # 取一半 P1[1:⑴] *= 2 # 单边频谱 # 画图 f = Fs*np.arange(int(L/2))/L # 频率序列 plt.plot(f,P1) plt.title('Frequency Spectrum') plt.xlabel('Frequency [Hz]') plt.ylabel('Amplitude') plt.show()
代码中,我们生成了一个信号,包括两个频率成份。以后我们使用FFT计算信号的傅里叶变换,得到频谱信息。最后使用Matplotlib库画出频率谱图。
使用Python画频率谱很方便,只需要掌握几个基本的库函数便可。值得一提的是,在触及到傅里叶变换时,我们需要特别注意信号的采样频率和采样点数,这会影响终究得到的频率分辨率。
文章来源:丸子建站
文章标题:python 画频率谱
https://www.wanzijz.com/view/59805.html