我知道我们可以使用buffer
matlab 中的函数将长信号拆分为重叠帧。但是有什么函数可以用来把帧放回去重建信号吗?
这是我在 Matlab 中的当前代码
n = 0.1:0.1:100;
y = sin(n*pi*0.5)';
Nw = 100; % window length
Nh = 25; % hop size
Y = buffer(y,Nw,Nw-Nh, 'nodelay'); % Y is the matrix containing the overlapping frames
我接下来要做的是使用 Y 重构原始信号 y。像这样的东西
yNew = unbuffer(Y, Nw, Nw-Nh)
当然unbuffer
,没有我所知道的 , 之类的功能。所以我的问题是,是否有任何功能可以完成这项工作unbuffer
?
情况类似于这里的这个问题:https ://www.reddit.com/r/matlab/comments/361y9w/reverse_buffer_function/ ,这是 5 年前的,仍然没有收到任何答案。