你的位置:首页 >> 产品展示 >> 元宇宙测试系统 >> 表面肌电量测系统  表面肌电量测系统
FFT幅度谱是对称的
来源:delsys表面肌电脑电分析系统_EMG_EEG_人因工程 | 发布时间:2022/7/25 16:09:03 | 浏览次数:

实际上,由于计算机无法处理连续信号,因此

原始信号在特定位置采样到一组离散数据点

采样次数。采样速度称为采样率。例如

我们的大多数电路板使用250Hz的采样率,这意味着250个数据点将

,两个相邻数据点之间的间隔将

be 1/250秒=4毫秒。采样过程如下所示。

由于原始数据是离散的,FFT的输出也将是一组

离散数据点如下图所示。如果FFT采用L采样

采样率为Fs时的数据点(称为长度-L FFT),然后生成L

数据点或L频率箱,其中第i个箱(i从0开始)具有

i*Fs/L的中心频率,在频谱中与Fs/L一样宽。通常是L

是二的幂。由于原始FFT幅度谱是对称的,因此

然后折叠成单侧频谱以显示真实振幅。新的

频谱的频率范围为0~Fs/2,从信号中心开始

第0个到第1/2个箱子,总共覆盖1/2+1个箱子。

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd。通用域名格式

如何在OpenBCI GUI中读取FFT图?

在GUI中,我们看到的FFT图基本上是

经过处理的信号(稍后在高级部分中解释),FFT的结果是

在dB空间中随时间平滑。

那么,如何读取给定的振幅谱?例如,如果您看到

给定如下图所示的FFT幅度谱,可以在

约12 Hz,约0.87 uV。这意味着原始信号是

主要由以12Hz左右的频率振动的正弦波组成-

0.87V至+0.87V。

事实上,原始信号是振幅为1.0V、频率为12Hz的正弦波

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

频率这种差异是在采样数据不一致时产生的

具有足够的代表性,则FFT将假设较小的幅度扩展

围绕频谱中的实际频率,并降低峰值振幅。

这种现象称为频谱泄漏。

为了处理频谱泄漏,引入了窗口函数。图像

下面显示了理想的傅立叶变换、无窗FFT和FFT

应用汉明窗口后。你可以看到,虽然峰值振幅是

在加窗后,频谱泄漏甚至衰减得更厉害。(更好

如果应用能量补偿)

随着时间的推移变得平滑?

由于EEG数据buff通常每1/5秒刷新一次,FFT计算

最新的数据集也是每1/5秒一次。然后对FFT值进行平滑处理

dB当前FFT值和最后一个FFT值之间的空间。平滑的

然后使用0-1之间的系数。因子是指前一个变量的权重

一组FFT值,因此因子越高,FFT越平滑。

钥匙:

1-1该峰值的频率约为10Hz,其振幅约为2

紫外线。

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

1-2因为采样率意味着一秒钟内有多少个数据点

必修的。在这种情况下,两个相邻数据点之间的时间跨度为1/250秒。

长度为256的FFT计算256个数据点。因此,时间跨度为256

数据点为256*1/250秒=1.024秒=1024毫秒。

1-3,因为0Hz是第0个箱子的中心频率,250 Hz是中心频率

第256格的频率,第25格的中心频率将为25*250/256

=24.41 Hz。由于20 Hz的可能指数为20*256/250=20.48,因此应

属于第20个箱子。(第20个箱子的中心频率为19.53

第21个箱子的频率为20.5,两个箱子之间的边界为19.53+20.5=

20.015Hz,因此20Hz落在第20个箱子的右半部分)。

1-4减少频谱泄漏的影响。

1-5它通常每1/5秒刷新一次。使绘图更平滑

需要平滑因子,例如0.9。

Lv2(中间):在GUI中使用FFT

以下任务是本节的目标。如果你能回答所有的问题,

您可以跳过本节,继续下一节。

//-------开始任务#2-------

任务2-1:起点

在GUI中有一个方便的地方来存放自己的FFT代码?

任务2-2:阿尔法峰

如何编写一段代码来查找

α波段,如果α波段定义为7-13 Hz?

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

任务2-3:信息流

从原始EEG数据到最终平滑FFT的过程是什么

?

//-------任务结束#2-------

在GUI中设置代码:

OpenBCI GUI使用Minim库计算FFT。

Nfft注册FFT的长度,fftBuff[]保存最新的FFT数据

从每个通道。

OpenBCI板的采样率可以通过调用

openBCI.get\u fs\u Hz()。Minim要求该采样率转换bin

索引到中心频率。

A.然后为FFT计算指定一个汉明窗口(以减少频谱

泄漏)。

如果你想用FFT创造一些有趣的东西,你的出发点是

下面是代码主干。之后,您可以通过搜索FFT\u freq\u Hz来找到它

检查OpenBCI GUI中的“所有选项卡”。

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

外回路通过所有可用通道,内回路通过

通过所有有效的FFT箱。

fftData(与fftBuff相同)保存nchan的单侧振幅谱

数据通道,每个通道有1/2+1个FFT箱。此数量的箱子

可以通过Minim提供的.specSize()函数访问。

然后在循环中,这两个值是您需要的:

fftData[Ichan]。indexToFreq(Ibin)是Minim库中的一个函数。它回来了

通过查找其索引得到FFT箱的中心频率(FFT图中的x值)。

fftData[Ichan]。getBand(Ibin)是Minim库中的一个函数。它返回

FFT箱在uV中的振幅。

钥匙:

2-1下载OpenBCI GUI的副本。打开编辑->查找,选中“全部”

选项卡”,键入“FFT\u freq\u Hz”。您应该能够找到所需的

密码

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

2-2代码示例(绿线是添加的行):

2-3在EEG buff内传递最新的256点原始EEG数据,a

计算前使用汉明窗,然后使用单边FFT频谱

计算并存储在fftBuff[]内,然后对fftBuff[]值进行平滑处理

具有以前的fftBuff[]值。

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

采样原始uV->汉明窗口->fftBuff[]->平滑fftBuff[]

3级(高级):更详细

这里没有测验。如果你喜欢,请阅读

关于GUI中FFT的整个故事:

导入最小库,初始化FFT:

计算FFT并转换为单波段:

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

在dB空间中平滑:

复制GUI过程的Matlab版本

概述:

(较旧版本的GUI根据原始数据计算FFT,较新版本将

对滤波后的数据应用FFT。此处使用滤波脑电图)

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

加窗和计算单边FFT幅度谱:

1、间隔定义为缓冲区自身刷新的速度。这里有50个数据点

250Hz采样率表示1/5秒。

2、为了减少频谱泄漏,对原稿应用汉明窗口

信号:temp\u han=temp\u dat.*hamming(L);

3.然后,计算FFT幅度的方程为:temp\u mag=abs(FFT(temp\u han));

4、为了将其转换为单边频谱,抛出FFT频谱的右半部分,

然后将除第一个(DC)和最后一个(在奈奎斯特频率下)外的任何点乘以

两个用于校正振幅:temp\u mag=temp\u mag(1:L/2+1);temp\u mag(2:end-1)=

2*temp\u mag(2:end-1);

dB空间中的平滑:

在浏览器专业版中打开你是开发人员吗?试用HTML到PDF API pdfcrowd.com

上述Matlab代码将很快提供。

 
TAG:
打印本页 || 关闭窗口
 上一篇:FFT分析的最终指南
 下一篇:脑-机接口(BCIS)左手与右手手指敲击实验