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 相关文章推荐
Python3.2中的字符串函数学习总结
Apr 23 Python
初步认识Python中的列表与位运算符
Oct 12 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
python3学习之Splash的安装与实例教程
Jul 09 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
简单了解python反射机制的一些知识
Jul 13 Python
Django缓存系统实现过程解析
Aug 02 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
Python如何把十进制数转换成ip地址
May 25 Python
用Python实现屏幕截图详解
Jan 22 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基础知识:函数基础知识
2006/12/13 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
详解react如何在组件中获取路由参数
2017/06/15 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
python 判断网络连通的实现方法
2018/04/22 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
python函数的作用域及关键字详解
2019/08/20 Python
python manage.py runserver流程解析
2019/11/08 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
学校就业推荐信范文
2014/05/19 职场文书
学校运动会霸气口号
2014/06/07 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
文员岗位职责范本
2015/04/16 职场文书
舞出我人生观后感
2015/06/16 职场文书
百年孤独读书笔记
2015/06/29 职场文书
情人节单身感言
2015/08/03 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
Go中的条件语句Switch示例详解
2021/08/23 Golang