【问题标题】:How do I cut my EMG signal and get an average signal?如何切断我的 EMG 信号并获得平均信号?
【发布时间】:2014-11-24 14:46:02
【问题描述】:

我有一个受试者在跑步机上行走的 EMG 信号。 我们使用脚踏开关可以看到受试者何时放脚,因此我们可以及时看到有多少个周期(步数)。 我们希望以周期(步)为单位切割信号并获得一个平均信号(100% 步周期)。

我尝试了重塑功能,但它不起作用

当我数到 38 步时:

nwaves = 38;
sig2 = reshape(sig,[numel(sig)/nwaves nwaves])';
avgSig = mean(sig2,1);
plot(avgSig);

显示的错误是:Size arguments must be real integers.

谁能帮我解决这个问题?谢谢!

【问题讨论】:

    标签: matlab signal-processing average cycle


    【解决方案1】:

    首先,重塑数组是解决问题的不好方法。在现实世界中,不能假设跑步机上的人会以毫秒级的精度有节奏地迈步(即对于相同数量的样本)。

    更现实的方法是使用footswitch 信号:假设真的是一个开关在单脚上(1=foot on,0=foot off),它的动作被过滤以避免噪音(例如施密特触发器),当脚从跑步机上移开时,您可以获得样本索引:

    foot_off = find(diff(footswitch) < 0);
    

    然后您可以在连续步骤之间将信号转换为数据向量的元胞数组(可变长度):

    step_len = diff([0, foot_off, numel(footswitch)]);
    sig2     = mat2cell(sig(:), step_len, 1);
    

    现在的问题是您不能将mean() 应用于信号切片以获得“平均步骤”:您必须先处理每个步骤,然后对结果进行平均。

    【讨论】:

    • 好的,我明白你的意思。当我尝试这个时,我得到“CAT 参数尺寸不一致”。这是什么意思?
    • 当我将代码更改为sig2= mat2cell(sig(:), [1; foot_on; numel(sig)], 1); 时,此错误已解决,但后来我得到了???在 116 个输入参数 D1 到 D2 处使用 ==> mat2cell 时出错,必须对输入矩阵大小的每个维度求和,[51116 1]
    【解决方案2】:

    这可能是因为numel(sig)/nwaves 不是整数。您需要使用round(numel(sig)/nwaves) 将其四舍五入到最接近的整数。

    基于 cmets 编辑:

    您的问题是您不能将51116 除以38(它是1345.2),因此您不能以38 长的块来重塑您的信号。如果您希望能够以38 的块对其进行整形,则需要一个长度正好是38 的倍数的信号。要么,要么从你的信号中删除最后一个(或第一个)6 值,以获得38 的精确倍数(1345 * 38 = 51110):

    nwaves = 38;
    n_chunks = round(numel(sig)/nwaves);
    max_sig_length =  n_chunks * nwaves;
    sig2 = reshape(sig(1:max_sig_length),[n_chunks nwaves])';
    avgSig = mean(sig2,1);
    plot(avgSig);
    

    【讨论】:

    • 好的,谢谢,该错误已解决,但现在我得到“要重塑元素的数量不能改变。”
    • 那是因为round(numel(sig)/nwaves * nwavessize(sig,1) * size(sig,2) 不同。 size(sig)numel(sig) 是什么?
    • 大小 (EMG_VM_new) = 51116 1 个 (EMG_VM_new) = 51116
    • 我编辑了我的答案来解释为什么你不能完全按照你的意愿去做。希望很清楚。
    • 是的,很清楚,我从中得到了一些东西......到目前为止,谢谢!
    猜你喜欢
    • 2013-12-27
    • 1970-01-01
    • 2012-04-26
    • 2021-12-26
    • 2019-01-18
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多