Python中signal.hilbert与fftpack.hilbert的区别
文章目录
- 1 代码演示
- 2 分析总结
在Python的scipy模块中,有两个实现希尔伯特变换计算的方式,分别为signal.hilbert与fftpack.hilbert,但是这两种方式得到的结果有所区别。
1 代码演示
下面进行代码演示。
1、代码块1:使用signal.hilbert
from scipy.signal import hilbertx=[1,2,3,4]
y=hilbert(x)
print(y)
输出如下:
[1.+1.j 2.-1.j 3.-1.j 4.+1.j]
2、代码块2:使用fftpack.hilbert
from scipy.fftpack import hilbertx=[1,2,3,4]
y=hilbert(x)
print(y)
输出如下:
[-1. 1. 1. -1.]
3、代码块3:使用【MATLAB】中的Hilbert函数计算,本代码块及其结果用于与上述两个Python代码块的结果进行对比:
>> x=[1,2,3,4];
>> y=hilbert(x);
>> yy =1.0000 + 1.0000i 2.0000 - 1.0000i 3.0000 - 1.0000i 4.0000 + 1.0000i
2 分析总结
1、第一节中的代码块1、2为Python中的计算结果,代码块3是MATLAB中计算的结果。
2、使用signal.hilbert的代码块1计算的结果与代码块3中的计算结果完全一致,在输出中每一项的复数由实部为x、虚部为x的希尔伯特变换结果组成,这样的输出被称为解析信号。
3、使用fftpack.hilbert的代码块2的输出结果仅为x的希尔伯特变换结果,但是与代码块1、3的输出复数的虚部部分总是相差一个负号,即总是相反的结果,因此可以断定,使用fftpack.hilbert计算的结果实际上正好为希尔伯特变换结果的相反数,实际使用时要重新输出对应结果的相反数,可以修改代码块2为:
from scipy.fftpack import hilbertx=[1,2,3,4]
y=hilbert(x)temp=[]
for i in y:temp.append(-i)
y=tempprint(y)
输出如下:
[1.0, -1.0, -1.0, 1.0]
上述结果才是正确的希尔伯特变换结果。
END
Python中signal.hilbert与fftpack.hilbert的区别相关推荐
- 浅析Python中signal包的使用
原文链接:https://www.jb51.net/article/74844.htm 这篇文章主要介绍了Python中signal包的使用,主要在Linux系统下对进程信号进行相关操作,需要的朋友可 ...
- python while if 区别_对python中for、if、while的区别与比较方法
如下所示: if应用举例: #if 若条件成立,只执行一次 #if 条件:如果条件成立,执行条件后的代码块内容,不成立,直接跳过代码块 #判断如果年龄age小于18,输出未成年 #=一个等号表示赋值的 ...
- Python中threading的join和setDaemon的区别及用法 例子
Python中threading的join和setDaemon的区别及用法 Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别. 1.join ...
- python的none是什么-python中的null与none有什么区别
Python中none与null的区别有:none可以看作是一个具体的值用来初始化变量,而null表示空不是一个值,并且没有与任何一个值绑定并且存储空间也没有存储值 Python中所有的操作都是针对对 ...
- Python基础学习-Python中最常见括号()、[]、{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho
Python基础学习-Python中最常见括号().[].{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho ...
- python中_x、__x、__xx__的区别
python中_x.__x.__xx__的区别 注释:该文章是从英文文档翻译过来的,具体代码可以参考原网址,这里只是简单解释一下他们的区别,方便大家迅速了解.原地址:difference-betwee ...
- Python中NaN、nan和NAN的区别及使用方法
Python中NaN.nan和NAN的区别及使用方法 Python中的NaN(Not a Number)是一个特殊的浮点数值,用于表示非数值型计算结果或无限大的运算结果,常用于科学计算.数据分析等领域 ...
- Python学习笔记(一)1.Python中end=和sep=的用法与区别。
一.Python中end=和sep=的用法与区别: python中常用到的end=和sep=两种参数用法相似,一个是python输出结尾,一个是python输出分割. end: 默认是换行,表示两个字 ...
- Python中最常见括号()、[]、{}的区别
原文:https://www.cnblogs.com/xuxiaolu/p/4726064.html Python中最常见括号().[].{}的区别 在Python语言中最常见的括号有三种,分别是:小 ...
最新文章
- 【哲学】为什么威尔·杜兰特在其所著的《哲学的故事》一书中说“所有科学源于哲学,终于艺术?”
- BUUCTF-WEB:[极客大挑战 2019]Havefun 1
- J2ME下访问.net的webservice
- gettimeofday函数
- Silverlight中开发和设计人员的合作文档信息
- P4552-[Poetize6]IncDec Sequence【差分】
- C语言日志操作类实例
- mysql5.7 至少需要1560,mysq5.7.28配置innodb_page_size错误引起的错误1071(42000)
- Google开放最大目标检测数据集,还要为它举办AI挑战赛
- Qt学习笔记(3)——PushButton、RadioButton、CheckBox
- socket 服务器
- 小程序{errcode:40029,errmsg:invalid code, hints: [ req_id: 8H_oSa0564ns12 ]}
- 你不屑于大器晚成,就只能平庸一生
- 基于html人事管理报告,人事管理工作实习报告范文
- SCSI——小型计算机系统接口
- python函数调用关系分析
- JS循环输出数组及数组键值
- 分享8个超好用的免费工具/软件/网站(一定有你要的)
- 【重磅新闻】罗永浩约战王自如:一场两败俱伤的战役!
- 如何使用jQuery 制作全屏幕背景的嵌入视频