Matlab:使用互协方差对齐数据

2024-03-12

我想获得 Matlab 中两个数据集之间样本的偏移量(让它们及时同步),这是一个很常见的问题。因此,我使用互相关函数 xcorr 或互协方差函数 xcov(在大多数情况下,两者都为此目的提供类似的结果)。对于人工数据,它工作得很好,但我在处理“真实”数据时遇到了困难,即使它应该几乎相同。 Matlab 总是说偏移量为零。我正在使用这段简单的代码:

[crossCorr] = xcov(b, c);
[~, peakIndex] = max(crossCorr())
offset = peakIndex - length(b)

我在pastebin上发布了一个完全可运行的示例m文件,其中包含下采样数据摘录:代码与pastebin上的数据 http://pastebin.com/2JuRKhai

编辑:下采样摘录似乎并不完全适合评估效果。这是一个更大的原始频率样本,请使用这个代替 http://en.file-upload.net/download-8639254/variables.mat.html。不幸的是,它对于pastebin来说太大了。

如图所示,通过互协方差获取偏移量应该没有问题。我还尝试更好地缩放数据以避免数值问题,但这根本没有改变任何东西。

如果有人能告诉我我的错误,那就太好了。


原则上你的方法没有任何问题,我成功地使用了完全相同的方法来临时对齐同一信号的不同音频记录。

然而,对于您的时间序列来说,相关性(或协方差)似乎根本不是比较移位版本的正确度量——可能是因为它们包含与总长度相当的时间尺度的组成部分。另一种方法是使用残差方差,即移位版本之间差异的方差。这是这个想法的一个(不是特别优雅的)实现:

lags = -1000 : 1000;
v = nan(size(lags));
for i = 1 : numel(lags)
    lag = lags(i);
    if lag >= 0
        v(i) = var(b(1 + lag : end) - c(1 : end - lag));
    else
        v(i) = var(b(1 : end + lag) - c(1 - lag : end));
    end
end
[~, ind] = min(v);
minlag = lags(ind);

对于您的(较长)数据集,这会导致minlag = 169。绘制滞后的残差方差可得:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab:使用互协方差对齐数据 的相关文章

  • 如何将 Simulink 编码器编译器版本设置为支持 C++11 的版本?

    我正在尝试将代码合并到 Simulink 及其嵌入式编码器中 该代码使用 C 11 扩展 跑步mex setup c 给出这个输出 mex setup c MEX configured to use Xcode Clang for C la
  • Matlab,如何获取imagesc生成的结果?

    我读过一些类似的文章 但它们不是我想要的 得到imagesc之后的矩阵 https stackoverflow com questions 14364239 get the matrix after imagesc 14364434 143
  • 读取 MEX 文件中的 4D 数组

    我在 MATLAB 中有一个 4 维数组 我正在尝试访问 MEX 函数中的数组 下面创建 testmatrix 一个 4 维矩阵 已知数据为uint8 type Create a 4D array 2x 2y rgb 3 framenumb
  • MATLAB 黑洞变量

    MATLAB 是否有 黑洞 或丢弃变量 假设我正在做类似的事情 rows cols size A 但我不想存储行 是否有一个 黑洞 变量可以让我发送值去死 所以任务就像 BLACKHOLE cols size A 其中 BLACKHOLE
  • MATLAB:解包函数

    我正在与 Mathworks 的某人讨论 unwrap http www mathworks com access helpdesk help techdoc ref unwrap html函数中对于 以外的跳跃容差有一个 bug 并且希望
  • Google Chrome 的互联网历史记录脚本

    我并不是在寻找 最佳 或最有效的脚本来执行此操作 但我想知道是否存在一个脚本可以从 Google Chrome 中提取一天的互联网历史记录并将其记录到 txt 文件中 我更喜欢用 Python 或 MATLAB 编写 如果你们有不同的方法
  • 有没有办法在 MATLAB 中执行函数内联?

    我可以使用什么语言功能或开箱即用的技巧来完成 MATLAB 中的函数内联 令人烦恼的是 Google 搜索 matlab 内联函数 http www google com search q matlab inline function揭示了
  • 如何在 R 中导入 matlab 表

    我有一个matlab mat文件与表数据类型我想将其导入 R 中 我为此使用 readMat R 正在将其作为列表读取 之后有没有办法将列表转换为 R 中的数据帧或表格格式 当我使用as dataframe我收到以下错误 Error in
  • 如何在matlab中绘制彩色一维直方图

    我有一个一维数组 X 其中包含相关系数的统计数据 我想绘制一个彩色直方图 我使用以下代码 histogram X 10 它可以创建具有单色的直方图 现在我想绘制一个直方图 其中每个条形都有不同的颜色 但 FaceColor 选项只能调整整个
  • 朴素分类器 matlab

    在 matlab 中测试朴素分类器时 即使我在相同的样本数据上进行训练和测试 我也会得到不同的结果 我想知道我的代码是否正确 是否有人可以帮助解释这是为什么 dimensionality reduction columns 6 U S V
  • 在 MATLAB 中高效地形成动态窗口

    有人可以帮助我提供一种有效的方法 或者帮助我执行提供的代码 以尽可能少的步骤获得相同的结果 我将感激你 我有一个原始数组 A 1 1 1 4 3 4 5 4 4 3 3 1 0 0 2 6 2 6 3 6 6 2 7 4 8 7 2 2 2
  • 优化数组压缩

    假设我有一个数组k 1 2 0 0 5 4 0 我可以按如下方式计算掩码m k gt 0 1 1 0 0 1 1 0 仅使用掩码 m 和以下操作 左移 右移 And Or 加 减 乘 我可以将 k 压缩为以下形式 1 2 5 4 以下是我目
  • 比较元胞数组中的字符串

    我试图在单词列表中找到最常见的单词 到目前为止 这是我的代码 uniWords unique lower words for i 1 length words for j 1 length uniWords if uniWords j lo
  • 如何在Matlab脚本中将泰勒级数系数存储到数组中

    这个问题是在 m 脚本的上下文中 我知道如何获取函数的泰勒级数 但我没有看到任何命令允许将级数的系数存储到数组中 sym2poly似乎不起作用 如何将系数存储到数组中 例如这个函数 syms x f 1 x 2 4 x 9 我们怎样才能得到
  • 使用 libsvm 交叉验证后重新训练

    我知道交叉验证用于选择好的参数 找到它们后 我需要在不使用 v 选项的情况下重新训练整个数据 但我面临的问题是 在使用 v 选项训练后 我得到了交叉验证精度 例如 85 没有模型 我看不到 C 和 gamma 的值 在这种情况下我该如何重新
  • 将 Matlab MEX 文件中的函数直接嵌入到 Python 中

    我正在使用专有的 Matlab MEX 文件在 Matlab 中导入一些仿真结果 当然没有可用的源代码 Matlab 的接口实际上非常简单 因为只有一个函数 返回一个 Matlab 结构体 我想知道是否有任何方法可以直接从Python调用M
  • 如何将Matlab代码库与Android集成?

    我有一个算法和 MATLAB 中的一些其他代码 我想在我的 Android 应用程序中使用它 我怎样才能做到这一点 我可以从 MATLAB 制作 jar 文件以便与 Android 一起使用吗 我必须做点别的事吗 如果您还有其他产品 适用于
  • 在 matlab/octave 中将数据集分成两个子集 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将数据集分为两个子集 例如 训练 和 测试 其中 训练集包含 80 的数据 测试集包含剩余的 20 分裂的意思是生成一个长度等于的逻辑索引
  • 使用 java 执行 Matlab 函数

    我正在编写一个应用程序 它使用 matlab 进行图像处理 然后使用 Java 接口显示结果 由于某些原因 我必须同时使用 Java 和 Matlab 如何在java中使用matlab函数 如何创建和访问界面 MATLAB控制 http m
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500

随机推荐

  • System.Drawing.Color 操作的扩展方法库

    有没有人为 System Drawing Color 编写过一个不错的扩展方法 库 很高兴地说 Color Red AdjustBrightness 5 Color Red AdjustAlpha 5 Color Red ToHSV 或类似
  • 如何播放 Google 云端硬盘链接中的视频?

    在我的应用程序中 我想播放来自 Google Drive 链接的视频 我尝试过使用VideoPlayerController controller VideoPlayerController network https drive goog
  • 我对 True 和 False 感到困惑。True 值代表非零,False 值代表零吗? [复制]

    这个问题在这里已经有答案了 为什么下面的程序在完成比较操作后给出相反的答案 main int k 35 printf d n d n d k 35 k 50 k lt 40 output 0 50 1 根据 C 标准 该程序不是有效的 C
  • VBA:使用变量传递列数组时删除重复项失败

    The bounty https stackoverflow com help bounty过期4天内 此问题的答案有资格获得 50声誉赏金 L42 users 2685412 l42想要奖励现有答案 一个答案提供了创建解决方法的详细分步过
  • mapstruct 将 id 映射到对象

    我有一个对象学校 它有一个对象人 人已经保存在数据库中 当我保存学校对象时 我给它一个人ID 所以在班级 school 中 我有一个 Person 类型的属性 person 在 SchoolDTO 中 我有一个 Long 类型的属性 per
  • 如何将 FormUrlEncodedContent 用于复杂数据类型?

    我需要与仅接受表单编码有效负载的第三方端点进行交互 端点需要在此端点上使用复杂的数据类型 这意味着类似这样的内容 但形式编码 而不是 JSON foo bar baz zip zap 我的谷歌搜索和端点的文档表明这应该是这样的形式编码 fo
  • pandas DataFrame 中 x 天每个元素的累积乘积

    我尝试计算 a 中的每个元素Dataframe df1累计积超过x天 例如 3 有没有有效的方法来做到这一点 到目前为止 我只知道在行上生成正常的累积乘积 而不将回溯期固定为x days df2 例如 2022 01 02 ID1 1 05
  • 如何在 C# 中获取活动进程名称?

    如何在 C 中获取活动进程名称 我知道我必须使用这段代码 DllImport user32 dll private static extern IntPtr GetForegroundWindow 但我不知道如何使用它 正如中提到的这个答案
  • 是否可以选择 Windows 表单标签上的文本?

    是否可以突出显示 选择 Windows 窗体标签控件中的部分文本 我知道使用 RTFtextbox 控件是可能的 但使用该控件会有点矫枉过正 因为我需要创建许多标签实例 是否可以选择 Windows 表单标签上的文本 否 至少没有简单的方法
  • 如何总结组合列表

    我有一个包含 2 个元素组合的列表 如下所示 cbnl lt list c A B c B A c C D c E D c F G c H I c J K c I H c K J c G F c D C c E C c D E c C E
  • 使用消息驱动通道适配器和服务激活器进行事务处理

    我正在开发一个 POC 它执行以下操作 使用消息驱动的通道适配器来接收事务中的消息 调用服务激活器 该激活器使用处理程序将从适配器接收到的消息插入到数据库 并将消息发布到出站通道 现在 如果消息的数据库插入失败 我希望 JMS 消息返回到队
  • OpenSSL 使用固定值来生成 Diffie Hellman 密钥

    根据该文件 https wiki openssl org index php Diffie Hellman Using the Low Level APIs https wiki openssl org index php Diffie H
  • xcodebuild 使用哪个版本的 Xcode?

    我在同一台机器上安装了 Xcode 3 2 和 Xcode 4 0 2 它使用 Hudson 进行自动化 CI 持续集成 构建 当我说两者都已安装时 我的意思是我可以同时或交替使用 Xcode 3 和 Xcode 4 它们都存在于机器上 因
  • C++:有效但未指定的状态。这是什么意思? [复制]

    这个问题在这里已经有答案了 我一直在尝试理解 std move This http www cplusplus com reference utility move doc描述得很好 但它在示例部分中说 而 bar 失去了它的值 现在处于有
  • 如何将值注入 TensorFlow 图的中间?

    考虑以下代码 x tf placeholder tf float32 name x z x tf constant 5 0 y tf mul z tf constant 0 5 with tf Session as sess print s
  • jQuery Ajax 请求每 30 秒一次

    我有这段代码 但当有人访问我的网站时 这些值可能会发生变化 我需要每 30 秒左右更新一次 finance div 这可以做到吗 function getJSON http query yahooapis com v1 public yql
  • 输入字符串 1 无效 UTF-8 Shiny 应用程序

    我正在尝试创建一个闪亮的应用程序并不断收到错误Warning Error in sub input string 1 is invalid UTF 8这阻止了我的selectInput从出现 我尝试过使用utf8包将字符串转换为有效的 UT
  • 将一台机器中一个节点的elasticsearch索引移动到同一台机器的另一个驱动器

    我的机器中有一个 elasticsearch 节点 配有 150gb SSD 和 3 TB HDD 由于 SSD 空间不足 我想将一个索引从 SSD 移动到 HDD 这可能吗 如果是这样怎么办 我可以在硬盘上创建另一个节点 但我宁愿在机器上
  • 获取 Woocommerce 订阅的订阅产品作者

    如何遍历所有当前活跃的 woo 订阅并打印发布与每个活跃订阅 PHP 相关的产品的用户的用户 ID 我认为这样的东西只会提供订阅 args array subscriptions per page gt 1 post type gt sho
  • Matlab:使用互协方差对齐数据

    我想获得 Matlab 中两个数据集之间样本的偏移量 让它们及时同步 这是一个很常见的问题 因此 我使用互相关函数 xcorr 或互协方差函数 xcov 在大多数情况下 两者都为此目的提供类似的结果 对于人工数据 它工作得很好 但我在处理