首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测最低水平肌电活动的算法?

检测最低水平肌电活动的算法?
EN

Stack Overflow用户
提问于 2022-03-17 06:47:07
回答 1查看 62关注 0票数 0

只有来自EMG传感器的数据,如何才能确定一个人是否处于REM阶段?换句话说,我需要从传感器的EMG中检测到最低水平的活动。好吧,或者至少登记一下相变..。

更详细的..。我要用肌电图( EMG )传感器做一个REM相位探测器。在github上已经有一个Android应用程序的草图,如果您感兴趣,我可以发布一个链接。虽然还有工作要做.)

该装置的工作应该基于这样一个事实:在不同的大脑状态下(清醒、缓慢睡眠、快速眼动睡眠),传感器将记录不同的活动水平。在快速眼动睡眠中,这种活动是最小的。

在睡觉前将蓝牙传感器连接到身体上,启动Android程序,与传感器通信并通过WiFi将从传感器读取的数据发送给连接的TCP客户端。运行在网络桌面上的TCP客户端- python脚本。它接收数据,并按设计实时确定当前的活动水平是否是整个观测期间的最低水平。如果是这样的话,脚本将告诉服务器(Android程序)打开提示--它可以是手机上的振动或健身手镯,通过耳机播放音频样本、闪光、轻微电击等。

由于只使用一个EMG传感器,我承认不可能100%准确地捕捉REM睡眠阶段,但这是不必要的。如果准确度是80% -它已经很好了。首先,即使是检测当前活动级别变化的算法也是合适的。-将有一些试验和发展的地方。

问题在于算法。我不想使用固定的阈值,因为对于不同的人,甚至对于同一个人,在不同的时间和不同的状态下,这些阈值也会不同。因此,我将很高兴从你的身边得到一些想法和建议。

我发现了一篇有趣的文章“基于EOG和EMG的自动睡眠阶段分类的自适应阈值方法”(https://www.researchgate.net/publication/281722966_A_Self-adaptive_Threshold_Method_for_Automatic_Sleep_Stage_Classification_Using_EOG_and_EMG):但是仍然有一些难以理解的观点。首先,如何计算能量(步骤1-4:能量)?

代码语言:javascript
复制
    d = f.read(epoche_seconds*SAMPLE_RATE*2)
    if not d:
        break
    
    print('epoche#{}'.format(i))

    fmt = '<{}H'.format(len(d) // 2)
    t = unpack(fmt, d)
    d = list(t)
    d = np.array(d)
    d = d / (1 << 14) # 14 - bits per sample

    df=pd.DataFrame({'signal': d, 'id': [x*2 for x in range(len(d))]})
    df = df.set_index('id')
    
    d = df.signal
    # signal prepare:
    d = butter_bandpass_filter(d, lowcut, highcut, SAMPLE_RATE, order=2)

    # extract signal futures:
    future_iv = np.mean(np.absolute(d))
    print('iv={}'.format(future_iv))
    future_var = np.var(d)
    print('var={}'.format(future_var))
    
    ws = 6
    df = pd.DataFrame({'signal': np.absolute(d)})
    future_e = df.rolling(ws).sum()[ws-1:].max().signal
    print('E={}'.format(future_e))

--这是对的吗?

第二,能否有人详细说明这一点:

步骤2-1:归一化处理EMG和EOG特征向量采用归一化函数处理,然后进入分类步骤。特征向量归一化为跟随函数(4):

其中,Xmax和Xmin是通过以下步骤得到的:首先,排序x(i)向量,设置窗口长度N表示50;然后将2_N_k (k,值从10到1)与x(i)的长度进行比较,如果2_N_k大于后者,则减少k,直到2_N_k小于x(i)的长度。如果x(i)的长度大于2_N_k,则将50个较大值的平均值计算为Xmax,将50个较小值的平均值计算为Xmin。

EN

回答 1

Stack Overflow用户

发布于 2022-03-19 16:18:03

如果您正在寻找REM (深度睡眠);一个平面图将显示您的强度和频率信息1页的图表/图表。某个年龄段的人把光谱图称为TFFT - wiki链接是.https://en.wikipedia.org/wiki/Spectrogram

你能把这些数据输入到平面图显示/绘图中吗?使用一个大的FFT窗口(您可能有几个小时的数据)与一个小的重叠(15%)。我建议从1秒左右的FFT窗口开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71508065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档