Python实现快速傅里叶变换(FFT)
Python 实现 快速 变换 傅里叶 FFT
2023-09-14 09:09:29 时间
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu May 24 21:00:47 2018
@author: luogan
"""
import numpy as np
from scipy.fftpack import fft,ifft
import matplotlib.pyplot as plt
import seaborn
#采样点选择1400个,因为设置的信号频率分量最高为600赫兹,根据采样定理知采样频率要大于信号频率2倍,所以这里设置采样频率为1400赫兹(即一秒内有1400个采样点,一样意思的)
x=np.linspace(0,1,1400)
#设置需要采样的信号,频率分量有180,390和600
y=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 = xf
xf2 = 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 frequency range)',fontsize=7,color='#7A378B') #注意这里的颜色可以查询颜色代码表
plt.subplot(223)
plt.plot(xf1,yf1,'g')
plt.title('FFT of Mixed wave(normalization)',fontsize=9,color='r')
plt.subplot(224)
plt.plot(xf2,yf2,'b')
plt.title('FFT of Mixed wave)',fontsize=10,color='#F08080')
plt.show()
相关文章
- [转]Python 资源大全中文版
- 快速排序算法回顾 (Python实现)
- 在Python中使用glob模块查找文件路径的方法
- Python查询Mysql时返回字典结构的代码
- 详解用python实现简单的遗传算法
- Python Django 使用cookie实现三天免登录及记住密码功能代码示例
- Python操作redis
- Atitit.http代理的实现 代码java php c# python
- 关于Python自学的方法有哪些?
- 将蒙特卡罗方法加速2000倍(Python代码实现)
- python带你采集帅哥美女,并且不含带水印~
- python求解整数线性规划
- Python装饰器总结,带你几步跨越此坑!
- Python实现GWO智能灰狼优化算法优化XGBoost分类模型(XGBClassifier算法)项目实战
- Python实现GWO智能灰狼优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战
- Python实现哈里斯鹰优化算法(HHO)优化支持向量机回归模型(SVR算法)项目实战
- Python实现人工神经网络回归模型(MLPRegressor算法)并基于网格搜索(GridSearchCV)进行优化项目实战
- 【项目实战】Python实现RVM相关向量机回归模型(RVR算法)项目实战
- Python Flask框架学习05:Flask 路由
- python实现QQ机器人(自己主动登录,获取群消息,发送群消息)
- 【华为OD机试Python实现】HJ55 挑7(中等)
- 【LeetCode Python实现】17. 电话号码的字母组合(中等)
- Python编程:aiohttp库服务器端简单使用
- python 匿名函数捕获变量值 (执行时的值)
- Python 入門語法和類型(转载学习)
- python的多线程到底有没有用?
- 设计模式(Python语言)----模板方法模式
- 基于改进的离散PSO算法的FJSP的研究(Python代码实现)