首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matlab中的上采样数据给出了数据中的“漂移”

matlab中的上采样数据给出了数据中的“漂移”
EN

Stack Overflow用户
提问于 2013-07-23 18:05:26
回答 1查看 222关注 0票数 0

我有两个信号,其中一个的采样率为500 Hz,另一个的采样率为115 Hz (确切地说不是大约)。我需要对115 Hz信号进行上采样,以检测500 Hz信号中的事件,但数据中似乎存在漂移。为了更清楚地说明这一点,我有一个事件,我可以很容易地在500 Hz信号和115 Hz信号中检测到,但是在上采样之后,标记的位置( 115 Hz)相对于500 Hz信号中的实际事件会在整个信号中发生变化。我的代码如下所示:

代码语言:javascript
复制
counter = 1;

for i = 1:length(time)
    position = round(time(i)*fs);
    if position ~= 0 && position <= size(data,1)
        convertedData(i,:) = data(position,:);
    elseif position > size(data,1)
        convertedData(i,:) = data(size(data,1),:);
    else
        convertedData(i,:) = data(1,:);        
    end
end

注意:我不需要插入点,因为标记放置的确切时间并不重要,只要它始终放置在相对于500 Hz信号中的事件的相同位置即可。在上面的代码中,“time”是与500 Hz信号具有相同元素数的阵列(从0到信号的末尾),“fs”是标记信号的采样频率(大约115 Hz),“data”是标记信号。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-23 20:51:20

使用MATLAB的一个常见问题是,所有向量、矩阵等都使用基于1的索引,而不是更自然的基于0的索引,后者通常用于数学、工程、数字信号处理等。在您的特定情况下,position的计算需要更改为:

代码语言:javascript
复制
    position = round(time(i)*fs);

至:

代码语言:javascript
复制
    position = 1 + round(time(i)*fs);

为了获得时间和(基于1的)样本数量之间的正确对应关系。

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

https://stackoverflow.com/questions/17807126

复制
相关文章

相似问题

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