python频域分析_Python频谱分析
我正在尝试估计心电信号心率变异性的PSD.为了测试我的代码,我从
fantasia ECG database提取了R-R间隔.我提取了可以访问的信号
here.要计算PSD,我使用的是如下所示的welch方法:
import matplotlib.pyplot as plt
import numpy as np
from scipy.signal import welch
ibi_signal = np.loadtxt('fantasia-f1y01-RR.txt')
t = np.array(ibi_signal[:, 0]) # time index in seconds
ibi = np.array(ibi_signal[:, 1]) # the IBI in seconds
# Convert the IBI in milliseconds
ibi = ibi * 1000
# Calculate the welch estimate
Fxx, Pxx = welch(ibi, fs=4.0, window='hanning', nperseg=256, noverlap=128)
接下来,计算曲线下面积以估计不同HRV频带的功率谱,如下所示
ulf = 0.003
vlf = 0.04
lf = 0.15
hf = 0.4
Fs = 250
# find the indexes corresponding to the VLF, LF, and HF bands
ulf_freq_band = (Fxx <= ulf)
vlf_freq_band = (Fxx >= ulf) & (Fxx <= vlf)
lf_freq_band = (Fxx >= vlf) & (Fxx <= lf)
hf_freq_band = (Fxx >= lf) & (Fxx <= hf)
tp_freq_band = (Fxx >= 0) & (Fxx <= hf)
# Calculate the area under the given frequency band
dy = 1.0 / Fs
ULF = np.trapz(y=abs(Pxx[ulf_freq_band]), x=None, dx=dy)
VLF = np.trapz(y=abs(Pxx[vlf_freq_band]), x=None, dx=dy)
LF = np.trapz(y=abs(Pxx[lf_freq_band]), x=None, dx=dy)
HF = np.trapz(y=abs(Pxx[hf_freq_band]), x=None, dx=dy)
TP = np.trapz(y=abs(Pxx[tp_freq_band]), x=None, dx=dy)
LF_HF = float(LF) / HF
HF_LF = float(HF) / LF
HF_NU = float(HF) / (TP - VLF)
LF_NU = float(LF) / (TP - VLF)
然后我绘制PSD并获得以下图
起初我坚韧的输出看起来不错.然而,当我将我的输出与Kubios的输出进行比较时,Kubios是比分析HRV的软件,我注意到有差异.下图显示了Kubios计算出的PSD的预期值
名称上,两个图在视觉上不同,它们的值是不同的.为了确认这一点,我的数据中的打印清楚地表明我的计算是错误的
ULF 0.0
VLF 13.7412277853
LF 45.3602063444
HF 147.371442221
TP 239.521363002
LF_HF 0.307795090152
HF_LF 3.2489147228
HF_NU 0.652721029154
LF_NU 0.200904328012
因此,我想知道:
有人可以提出我应该阅读的文件来提高我对光谱分析的理解吗?
>我的做法有什么问题?
>如何选择最适合的焊接功能参数?
>虽然这两个地块的形状不一样,但数据完全不一样.如何改善这个?
有没有更好的方法来解决这个问题?我正在考虑使用Lomb-Scargle的估计,但我正在等待至少让Welch方法工作.
python频域分析_Python频谱分析相关推荐
- python画代码-Python教程_Python画Mandelbrot集 代码
Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...
- c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...
用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...
- python编程语言_python编程语言的简要历史
python编程语言 The Python programming language is a general-purpose programming language that has carved ...
- 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?
2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...
- python信号分析_Python频谱分析
我正在尝试估计ECG信号的心率变异性的PSD.为了测试我的代码,我从fantasia ECG database中提取了R-R间隔.我已经提取了信号,可以访问here.为了计算PSD,我使用的是如下所示 ...
- 菜鸟教程python正则表达式_python 正则表达式详解
python 正则表达式详解 1. 正则表达式模式 模式描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字 ...
- python分句_Python循环中的分句,继续和其他子句
python分句 Python中的循环 (Loops in Python) for loop for循环 while loop while循环 Let's learn how to use contr ...
- python 工具箱_Python交易工具箱:通过指标子图增强图表
python 工具箱 交易工具箱 (trading-toolbox) After a several months-long hiatus, I can finally resume posting ...
- python音频实时频谱分析_基于python的音频设计及频谱分析
74 Internet Technology 互联网 + 技术 一.引言 WAV 是 Microsoft 开发的一种声音文件格式,虽然它支持多种压缩格式,但是它通常被用来保存未压缩的声音数据(PCM ...
最新文章
- android gradle错误,更新到Android Studio 2.3后出现Gradle错误
- Oracle的rownum原理和使用
- zuul 网关的用途_Zuul网关
- 那些VisualStudio隐藏的调试功能
- c# mysql 操作_c#对mysql数据库的基本操作
- Python模块开发【Distutils】
- [高性能javascript笔记]1-加载和执行
- 分页缓冲池占用很高怎么解决_一次线上服务高 CPU 占用优化实践
- JavaScript学习(二十一)—scrollTop属性和scrollLeft属性
- WIN7安装VS2008的 Error1935 问题解决方案
- BZOJ-3227 红黑树(tree) 树形DP
- HTML学习(三):排版
- 图像艺术风格化 Neural-Style
- simulink简介
- 怎么把html改成迅雷bt种子文件格式,BT种子怎么制作?教你如何制作BT种子
- v-inline-date,类似携程,飞猪,带价格的时间选择
- 信号包络及其提取方法(Matlab)
- WIN7 直装版安装教程
- VS2015 更换序列号
- 【信管2.6】项目可研(二)详细可行性研究
热门文章
- 关于layui的table组件不支持IE导出的问题简单修复
- ADFS4.0 尝试为指纹所标识的信赖方信任证书建立证书链期间出错
- DL深度学习部分成果展示
- 1030个!电子设计电子竞赛毕业设计产品开发(吐血推荐)
- 我们所以为的“云计算”
- webmatrix安装_研究:用于前端开发的WebMatrix
- shred 粉碎文件
- 很实用的一款数据恢复软件 easyrecovery 分享给大家
- 最新转转验机源码带验机报告
- go语言并发下载电影和视频,根据m3u8索引url下载视频.下载网页中的图片,可以从当前页向下搜索层数.