python实现周期方波信号频谱图


Posted in Python onJuly 21, 2018

在学习傅里叶变换的时候遇到了求周期方波信号频谱图的例子,在书上和网上查阅了一些资料,发现大都是讨论的都是下图左边的周期信号的频谱,课程老师的PPT中也只列出了另一种周期信号频谱图的结论,没有在进行傅里叶变换,自己便根据定义推导了一遍,贴在这里作记录和分享之用。

关于傅立叶级数展开的另一讨论在我的另一篇文章https://3water.com/article/144194.htm

python实现周期方波信号频谱图

2016年11月21号更新

在第二个周期方波信号的傅里叶变换里,注意是

python实现周期方波信号频谱图

转换为sin函数下为

python实现周期方波信号频谱图

之前写错了,今天更正。

对于这两种方波信号,我们也可以编程验证一下,就是用正弦函数去逼近方波信号,Python的实现代码如下:

# 分析傅里叶级数分解之后cos和sin的和项的图像输出

from numpy import mgrid,sin,cos,array,pi
from matplotlib.pyplot import plot,show,title,legend,xlabel,ylabel

x = mgrid[0:10:0.02] # 这里类似于MATLAB用冒号产生步长为0.02的序列,但是语法和MATLAB不同



# 下面的这段循环实现y=sin(x)+sin(3x)+...+sin(19x)

def cos_square():
  y1 = 0;
  for i in range(0,20,1):
    b = (-1)**(i)*cos((2*i+1)*x)/(2*i+1)
    y1=b+y1    # 这种求和的方法是从C语言移植过来的
  plot(x,y1,'orange',linewidth=0.6)
  title('cos_square')
  xlabel('Time')
  ylabel('Amplitude')
  show()

def sin_square():
  y2 = 0
  for i in range(0,20,1):
    b = sin((2*i+1)*x)/(2*i+1)
    y2=b+y2    # 这种求和的方法是从C语言移植过来的
  plot(x,y2,'g',linewidth=0.6)
  title('sin_square')
  xlabel('Time')
  ylabel('Amplitude')
  show()

cos_square() 

sin_square()

输出结果如下:

python实现周期方波信号频谱图

python实现周期方波信号频谱图

由结果可以看两种不同的方波级数展开是正确的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之集成开发环境(IDE)
Sep 12 Python
在Python的Flask框架中实现单元测试的教程
Apr 20 Python
Python中操作文件之write()方法的使用教程
May 25 Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
python 安装移动复制第三方库操作
Jul 13 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
python中random模块详解
Mar 01 Python
Flask-Mail用法实例分析
Jul 21 #Python
python实现傅里叶级数展开的实现
Jul 21 #Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 #Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 #Python
opencv python 傅里叶变换的使用
Jul 21 #Python
Numpy中的mask的使用
Jul 21 #Python
Flask框架使用DBUtils模块连接数据库操作示例
Jul 20 #Python
You might like
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
Augularjs-起步详解
2016/07/08 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
Python实现的购物车功能示例
2018/02/11 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
np.dot()函数的用法详解
2020/01/17 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
大学生个人推荐信范文
2013/11/25 职场文书
接受捐赠答谢词
2014/01/27 职场文书
银行类自荐信
2014/02/04 职场文书
财务部总监岗位职责
2014/03/12 职场文书
企业趣味活动方案
2014/08/21 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
民事赔偿协议书
2014/11/02 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
法务专员岗位职责
2015/02/14 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL