MATLAB - проблема с буфером () для разделения вектора - PullRequest
0 голосов
/ 27 октября 2018

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

1 Ответ

0 голосов
/ 28 октября 2018

Я думаю, я только что понял это.Так как у меня есть перекрывающиеся последовательности, у моих кадров нет возможности равняться длине x.Это всегда будет больше

...