千家信息网

python中实现功率谱的原理是什么

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍python中实现功率谱的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。功率谱图又叫功率谱密度图功率谱是功率谱密度函数的简称,它定义为单位频带内的信号
千家信息网最后更新 2026年11月03日python中实现功率谱的原理是什么

这篇文章给大家介绍python中实现功率谱的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

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

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

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

知乎用户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()

关于python中实现功率谱的原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

功率 信号 能量 频率 密度 单位 函数 分析 变化 原始 之间 幅度 积分 脑电 变换 原理 中实 也就是 代码 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中关村互联网 科技集团 互联网的科技 电子科技大学互联网 盛创互联网科技有限公司 深圳前海聚择互联网科技有限公司 哈尔滨新华互联网科技学院 互联网系的金融科技公司 浙江互联网科技研学营 洛阳昕诺飞互联网科技有限公司 互联网在线教育科技创业 佛山市拉法互联网科技有限公司 无锡工业互联网科技有限公司 每天都有哪些好的互联网科技 互联网科技企业商标注意事项 互联网界的黑科技 同城互联网络科技 米泉互联网科技专业怎么样 广州三三互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司 每日互联网科技新闻 平安科技 互联网 猪兼强互联网科技 伴你行互联网科技有限公司 互联网 科技服务平台 国大互联网教育科技有限公司工作 浙南科技城互联网大厦招聘 互联网科技年终奖 广州互联网高科技取餐柜 亚光科技低轨卫星互联网 宁波允成互联网科技有限公司
0