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 del()函数用法
Mar 24 Python
python中字典dict常用操作方法实例总结
Apr 04 Python
Python实现的数据结构与算法之双端队列详解
Apr 22 Python
python生成excel的实例代码
Nov 08 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
python3 反射的四种基本方法解析
Aug 26 Python
使用python快速实现不同机器间文件夹共享方式
Dec 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 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
php设计模式 Visitor 访问者模式
2011/06/28 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
Python常用小技巧总结
2015/06/01 Python
浅谈Python中的闭包
2015/07/08 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
python import 上级目录的导入
2020/11/03 Python
python实现三种随机请求头方式
2021/01/05 Python
Oracle性能调优原则
2012/05/03 面试题
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
实习报告范文
2019/07/30 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android