这里做一下记录,关于FFT就不做介绍了,直接贴上代码,有详细注释的了:import numpy as npfrom scipy.fftpack import fft,ifftimport matplotlib.pyplot as pltimport seaborn#采样点选择1400个,因为设置的信号频率分量最高为600赫兹,根据采样定理知采样频率要大于信号频率2倍,所以这里设置采样频率为1400赫兹(即一秒内有1400个采样点,一样意思的)x=np.linspace(0,1,1400) #设置需要采样的信号,频率分量有180,390和600y=7*np.sin(2*np.pi*180*x) + 2.8*np.sin(2*np.pi*390*x)+5.1*np.sin(2*np.pi*600*x)yy=fft(y) #快速傅里叶变换yreal = yy.real # 获取实数部分yimag = yy.imag # 获取虚数部分yf=abs(fft(y)) # 取绝对值yf1=abs(fft(y))/len(x) #归一化处理yf2 = yf1[range(int(len(x)/2))] #由于对称性,只取一半区间xf = np.arange(len(y)) # 频率xf1 = xfxf2 = xf[range(int(len(x)/2))] #取一半区间plt.subplot(221)plt.plot(x[0:50],y[0:50]) plt.title('Original wave')plt.subplot(222)plt.plot(xf,yf,'r')plt.title('FFT of Mixed wave(two sides
fft python 举例_Python快速变换傅里叶(FFT)过程实例分析
最新推荐文章于 2024-08-05 08:53:06 发布
这篇博客通过Python演示了快速傅里叶变换(FFT)的过程,包括信号采样、计算FFT、归一化处理以及频率域分析。使用numpy和scipy库进行操作,并通过matplotlib进行可视化,展示了不同频率分量的信号如何在频域中表示。
摘要由CSDN通过智能技术生成