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实现根据窗口标题调用窗口的方法
Mar 13 Python
基于python时间处理方法(详解)
Aug 14 Python
Python中创建二维数组
Oct 17 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
jupyter notebook 中输出pyecharts图实例
Apr 23 Python
django settings.py 配置文件及介绍
Jul 15 Python
Python tkinter和exe打包的方法
Feb 05 Python
Python常用断言函数实例汇总
Nov 30 Python
弄清Pytorch显存的分配机制
Dec 10 Python
python os.listdir()乱码解决方案
Jan 31 Python
深度学习小工程练习之垃圾分类详解
Apr 14 Python
用Python简陋模拟n阶魔方
Apr 17 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
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
jQuery之网页换肤实现代码
2011/04/30 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
react ant Design手动设置表单的值操作
2020/10/31 Javascript
Python计算已经过去多少个周末的方法
2015/07/25 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
python简单区块链模拟详解
2019/07/03 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
Python列表推导式实现代码实例
2020/09/09 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
高级电工工作职责
2013/11/21 职场文书
写好自荐信的几个要点
2013/12/26 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
学校标语大全
2014/06/19 职场文书
五四演讲稿范文
2014/09/03 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
食品卫生管理制度
2015/08/06 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL