Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】


Posted in Python onMay 04, 2018

本文实例讲述了Python实现正弦信号的时域波形和频谱图。分享给大家供大家参考,具体如下:

# -*- coding: utf-8 -*-
# 正弦信号的时域波形与频谱图
import numpy as np
import matplotlib.pyplot as pl
import matplotlib
import math
import random
row = 4
col = 4
N = 500
fs = 5
n = [2*math.pi*fs*t/N for t in range(N)]  # 生成了500个介于0.0-31.35之间的点
# print n
axis_x = np.linspace(0,3,num=N)
#频率为5Hz的正弦信号
x = [math.sin(i) for i in n]
pl.subplot(221)
pl.plot(axis_x,x)
pl.title(u'5Hz的正弦信号',fontproperties='SimHei')
pl.axis('tight')
#频率为5Hz、幅值为3的正弦+噪声
x1 = [random.gauss(0,0.5) for i in range(N)]
xx = []
#有没有直接两个列表对应项相加的方式??
for i in range(len(x)):
  xx.append(x[i]*3 + x1[i])
pl.subplot(222)
pl.plot(axis_x,xx)
pl.title(u'频率为5Hz、幅值为3的正弦+噪声',fontproperties='SimHei')
pl.axis('tight')
#频谱绘制
xf = np.fft.fft(x)
xf_abs = np.fft.fftshift(abs(xf))
axis_xf = np.linspace(-N/2,N/2-1,num=N)
pl.subplot(223)
pl.title(u'频率为5Hz的正弦频谱图',fontproperties='SimHei')
pl.plot(axis_xf,xf_abs)
pl.axis('tight')
#频谱绘制
xf = np.fft.fft(xx)
xf_abs = np.fft.fftshift(abs(xf))
pl.subplot(224)
pl.title(u'频率为5Hz的正弦频谱图',fontproperties='SimHei')
pl.plot(axis_xf,xf_abs)
pl.axis('tight')
pl.show()

运行效果:

Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python splitlines使用技巧
Sep 06 Python
Python转换HTML到Text纯文本的方法
Jan 15 Python
Python中转换角度为弧度的radians()方法
May 18 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
python自动化之Ansible的安装教程
Jun 13 Python
PyQt5实现从主窗口打开子窗口的方法
Jun 19 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
python实现发送form-data数据的方法详解
Sep 27 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
Python生成器实现简单"生产者消费者"模型代码实例
Mar 27 Python
pycharm导入源码的具体步骤
Aug 04 Python
python 遍历磁盘目录的三种方法
Apr 02 Python
使用python3+xlrd解析Excel的实例
May 04 #Python
对python中的xlsxwriter库简单分析
May 04 #Python
使用实现XlsxWriter创建Excel文件并编辑
May 04 #Python
Python实现获取前100组勾股数的方法示例
May 04 #Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 #Python
Python 中的Selenium异常处理实例代码
May 03 #Python
Python读写/追加excel文件Demo分享
May 03 #Python
You might like
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python字符串匹配算法KMP实例
2015/07/18 Python
用Python抢过年的火车票附源码
2015/12/07 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
百度软件工程师职位
2013/02/14 面试题
小学教育毕业生自荐信
2013/11/18 职场文书
组织关系转移介绍信
2014/01/16 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
文秘个人求职信范文
2014/04/22 职场文书
工商管理自荐书
2014/07/06 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
Python预测分词的实现
2021/06/18 Python
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python