Рассмотрим следующий код 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. Почему?