matlab - MATLAB - 使用 buffer() 分割向量的问题
问题描述
考虑以下 MATLAB 代码:
x = zeros(1, 500);
overlap_percentage = 0.5;
total_frames = 10;
frame_length = length(x)/total_frames;
overlapping_frames = overlap_percentage*total_frames;
y = buffer(x, frame_length, overlapping_frames);
我想将我的信号 x 分成 10 个单独的帧,相邻帧之间有 50% 的重叠(当然,在内部,不希望第一帧的第一个元素与最后一帧的最后一个元素重叠)。所以我使用上面的代码。
现在可以肯定的是,生成的 y 数组应该有 10 个大小为 50 的帧?它没有。它有 12 个大小为 50 的帧。这意味着 buffer() 将它分成 12 个不同的帧而不是 10 个。为什么?
解决方案
我想我刚刚想通了。因为我有重叠的序列,所以我的帧无法等于 x 的长度。它总是会更大
推荐阅读
- c# - 使用 Nest 按多个字段分组
- sql - 计算 spark.sql 数据库列中包含的列表中特定元素的最长序列
- excel - 查找嵌套重复项
- excel - 需要帮助从“是”和“否”矩阵创建将行转换为工作表的宏
- python - 如果基于条件 python pandas 从其他表中丢失数据,则更新行
- python - 使用 cdk 获取两个分支 (codecommit) 之间的所有 CommitId
- python - 使用 Python 发送 IP 通知
- javascript - 有没有办法在配置文件中添加两个 url 并使用量角器从页面对象文件中调用?
- sqlalchemy - 如何在 sqlalchemy 查询过滤器中使用用户定义的 python 函数?
- firebase - 设置 firebase 时出错(使用 React)