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之eval()函数危险性浅析
Jul 03 Python
python实现判断数组是否包含指定元素的方法
Jul 15 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
使用Python 正则匹配两个特定字符之间的字符方法
Dec 24 Python
Python后台开发Django会话控制的实现
Apr 15 Python
在Python中使用MongoEngine操作数据库教程实例
Dec 03 Python
jupyter实现重新加载模块
Apr 16 Python
python图片合成的示例
Nov 09 Python
python 爬虫爬取京东ps4售卖情况
Dec 18 Python
Python修改DBF文件指定列
Dec 19 Python
Python中使用Lambda函数的5种用法
Apr 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
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
Vue组件化开发思考
2018/02/02 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
python实现统计代码行数的小工具
2019/09/19 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
入党函调证明材料
2014/12/24 职场文书
2015年三万活动总结
2015/03/25 职场文书
贫困证明怎么写
2015/06/16 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python