点击上面"脑机接口社区"关注我们

更多技术干货第一时间送达

功率谱图又叫功率谱密度图

功率谱是功率谱密度函数的简称,它定义为单位频带内的信号功率。它表示了信号功率随着频率的变化情况,即信号功率在频域的分布状况。

功率谱表示了信号功率随着频率的变化关系。常用于功率信号(区别于能量信号)的表述与分析,其曲线(即功率谱曲线)一般横坐标为频率,纵坐标为功率。由于功率没有负值,所以功率谱曲线上的纵坐标也没有负数值,功率谱曲线所覆盖的面积在数值上等于信号的总功率(能量)。

知乎用户CrisYang对功率谱、能量谱、幅值谱之间的关系进行了详细的说明:

在频谱分析中幅度和功率是由紧密联系的两个不同的物理量:能量能表述为幅值的平方和,也能表述为功率在时间上的积分;功率谱密度,是指用密度的概念表示信号功率在各频率点的分布情况,是对随机变量均方值的量度,是单位频率的平均功率量纲;也就是说,对功率谱在频域上积分就可以得到信号的平均功率,而不是能量。能量谱密度是单位频率的幅值平方和量纲,能量谱密度曲线下面的面积才是这个信号的总能量。于是,功率谱、能量谱、幅值谱之间的紧密关系主要表述为:能量谱是功率谱密度函数在相位上的卷积,也是幅值谱密度函数的平方在频率上的积分;功率谱是信号自相关函数的傅里叶变换,能量谱是信号本身傅立叶变换幅度的平方。

from scipy.fftpack import fft, fftshift, ifftfrom scipy.fftpack import fftfreqimport numpy as npimport matplotlib.pyplot as pltimport warningswarnings.filterwarnings("ignore")fs = 1000#采样点数num_fft = 1024;"""生成原始信号序列在原始信号中加上噪声np.random.randn(t.size)"""t = np.arange(0, 1, 1/fs)f0 = 100f1 = 200x = np.cos(2*np.pi*f0*t) + 3*np.cos(2*np.pi*f1*t) + np.random.randn(t.size)plt.figure(figsize=(15, 12))ax=plt.subplot(511)ax.set_title('original signal')plt.tight_layout()plt.plot(x)"""FFT(Fast Fourier Transformation)快速傅里叶变换"""Y = fft(x, num_fft)Y = np.abs(Y)ax=plt.subplot(512)ax.set_title('fft transform')plt.plot(20*np.log10(Y[:num_fft//2]))"""功率谱 power spectrum直接平方"""ps = Y**2 / num_fftax=plt.subplot(513)ax.set_title('direct method')plt.plot(20*np.log10(ps[:num_fft//2]))"""相关功谱率 power spectrum using correlate间接法"""cor_x = np.correlate(x, x, 'same')cor_X = fft(cor_x, num_fft)ps_cor = np.abs(cor_X)ps_cor = ps_cor / np.max(ps_cor)ax=plt.subplot(514)ax.set_title('indirect method')plt.plot(20*np.log10(ps_cor[:num_fft//2]))plt.tight_layout()plt.show()

代码来源于网络,本文对代码进行注释并整理

功率谱功率谱密度(Power Spectral Density, PSD)函数的简称,它定义为单位频带内的信号功率。

它表示了信号功率随着频率的变化关系,即信号功率在频域的分布状况。

功率谱密度的单位用每赫兹的瓦特数(W/Hz)表示,

它的另一种单位 dB,当单位为dB时是因为对数据做了对数处理(10logX)

做对数处理的目的是拉高低振幅成分,便于观察噪声中的周期信号

功率谱估计是频域分析的主要分析手段,我们之前看到的是幅度随时间变化的脑电波

功率谱展现的是脑电功率随频率变化的频图。

在睡眠的分期以及智力活动与EEG之间的关系等很多方面,功率谱分析都非常有用。

MNE中专门针对Raw对象(也就是原始脑电信号),有多种绘制PSD图的方式

1.利用plot_psd()绘制功率谱图
2.利用plot_psd_topo()在脑地形图上绘制功率谱图

下面以plot_psd为例介绍一下绘制PSD的案例。

# 引入python库import mnefrom mne.datasets import sampleimport matplotlib.pyplot as plt# sample的存放地址data_path = sample.data_path()# 该fif文件存放地址file_name = data_path + '/MEG/sample/sample_audvis_raw.fif'"""读取数据文件"""raw = mne.io.read_raw_fif(file_name,preload=True)
"""绘制指定通道的功率谱图"""picks = ['eeg']raw.plot_psd(picks=picks)plt.show()

"""设置更窄频率范围设置fmin和fmax来指定频率的跨度。"""picks = ['eeg']#raw.plot_psd(picks=picks,fmin=0,fmax=100)raw.plot_psd(picks=picks,fmin=0,fmax=80)plt.show()

更多阅读

第1期 | 国内脑机接口领域专家教授汇总

第2期 | 国内脑机接口领域专家教授汇总

探索大脑静息态活动中的动态信息

收藏 | 脑电EEG基础与处理汇总

稳态视觉诱发电位SSVEP介绍

小脑的功能解剖

Python-Evoked地形图可视化

关于事件相关电位SSVEP应用于视频游戏的研究

Python-生成模拟原始脑电数据

应用深度学习EEGNet来处理脑电信号

脑机接口BCI学习交流QQ群:903290195

微信群请扫码添加,Rose拉你进群

(请务必填写备注,eg. 专业/领域/行业)

长按加群

欢迎点个在看

fft 相位谱_信号处理之功率谱原理与python实现相关推荐

  1. fft 相位谱_基于级联FFT的广义互相关算法在声源定位中的应用

    杨韬 余文辉 曹申 2020-09-30 Wednesday 针对2020年第十五届全国大学生智能车竞赛信标组关于声音信标的识别,需要采集声音信号和FM信号,通过声音信号和FM信号互相关进行距离检测和 ...

  2. fft 相位谱_数值积分——使用FFT来降低计算量

    问题引入: 我们考虑如下积分的数值计算问题 我们假定 是有界的,因为 的快速下降性,我们知道上述积分的主要贡献来自于 这样的一个邻域(当然, 只是一个示例.) 因此,我们可以采用复合梯形公式来数值求解 ...

  3. 信号处理之频谱原理与python实现

    目录 频谱分析 FFT频谱分析原理 下面就用python案例进行说明 案例1 案例2 短时傅里叶变换STFT 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区.QQ交流群:941473018 ...

  4. fft 相位谱_FFT和示波器实用指南——深圳零式未来仪器科技

    通用测试仪器 本文讨论了一些重要的FFT特性,解释了如何利用这些特性设置FFT以实现高效的分析. 快速傅里叶变换(FFT)是20世纪70年代微处理器进入商业设计时首次出现的.从昂贵的实验室型号到最便宜 ...

  5. java寻优算法_模拟退火算法SA原理及python、java、php、c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径...

    模拟退火算法SA原理及python.java.php.c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径 模拟退火算法(Simulated Annealing,SA)最早的思 ...

  6. python原理_强化学习:原理与Python实现

    强化学习:原理与Python实现 作者:肖智清 著 出版日期:2019年08月 文件大小:17.18M 支持设备: ¥60.00 适用客户端: 言商书局 iPad/iPhone客户端:下载 Andro ...

  7. 随机森林分类算法python代码_随机森林的原理及Python代码实现

    原标题:随机森林的原理及Python代码实现 最近在做kaggle的时候,发现随机森林这个算法在分类问题上效果十分的好,大多数情况下效果远要比svm,log回归,knn等算法效果好.因此想琢磨琢磨这个 ...

  8. python支持向量机回归_机器学习实战-支持向量机原理、Python实现和可视化(分类)...

    支持向量机(SVM)广泛应用于模式分类和非线性回归领域. SVM算法的原始形式由Vladimir N.Vapnik和Alexey Ya提出.自从那以后,SVM已经被巨大地改变以成功地用于许多现实世界问 ...

  9. python培训机构哪家靠谱_好程序员告诉你Python机构哪家比较靠谱

    原标题:好程序员告诉你Python机构哪家比较靠谱 诚如大家所知,Python语言的就业方向多样,大体上可以划分为:Linux运维.Python自动化测试.Python全栈工程师.数据分析.人工智能等 ...

最新文章

  1. SpringBoot开发案例之CountDownLatch多任务并行处理
  2. ARM的交叉编译工具
  3. expsky.php,Typecho漏洞利用工具首发,半分钟完成渗透
  4. Serverless实战 —— 使用 Wintersmith + Serverless Framework 快速创建个人站点
  5. salesforce php,具有自动登录功能的Salesforce php REST API
  6. 查看监控Heap size 和 JVM 垃圾回收情况
  7. SDL2源代码分析3:渲染器(SDL_Renderer)
  8. 使用DotNetOpenAuth搭建OAuth2.0授权框架——Demo代码简单说明
  9. Go黑魔法之cgo reflect访问list存储C指针
  10. 百度SEO标题关键词伪原创组合工具
  11. 万物互联之边缘计算简述-背景
  12. 论文笔记:HIE-SQL:History Information Enhanced Network for Context-Dependent Text-to-SQL Semantic Parsing
  13. 单总线CPU微程序控制器设计
  14. windows和linux共用蓝牙鼠标,双系统共用蓝牙键鼠(win10+macOS)
  15. GDUT——1169: Krito的讨伐(优先队列BFS)
  16. 部署WekaFS并行文件系统的10大理由
  17. (三)AsyncTask
  18. 为什么抖音张同学这么火爆?用 Python 分析 1w+条评论数据,我发现了其中的秘密
  19. 创建SpringMVC项目的基本步骤
  20. 《钻哥学管理之开启篇:技术+业务+管理》(Yanlz+Unity+SteamVR+云技术+5G+AI=VR云游戏=技术+业务+管理+使命必达+DF17+立钻哥哥+==)

热门文章

  1. c语言用随机数定义数组中,C语言 将发生的随机数存入数组,数据不能相同
  2. java 商城 jfinal,Jfinal开发农副产品电子商城系统,完整前后台系统
  3. html与html5论文区别,HTML、XML、XHTML和HTML5的异同
  4. java list键值_java基础之对List,Map,Set等集合键值对的简单认识
  5. 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
  6. 物体抓取位姿估計算法綜述_基于深度学习的物体抓取位置估计
  7. 如何用fiddler抓取HTTPS的详细教程(附fiddler安装教学)
  8. sql中还在傻傻的手动添加创建人、创建时间?高级开发工程师不得不知的一个通用技巧!
  9. 湖南工大计算机专业咋样,西北工业大学还是湖南大学计算机
  10. html5 直接获取当前位置,HTML5调用百度地图API获取当前位置并直接导航目的地的方法...