Создание кольцевого/кругового буфера в matlab/simulink

Я пытаюсь реализовать алгоритм смещения высоты тона в Simulink, который использует кольцевой/круговой буфер, но я не знаю, как это делается. Я передаю аудиосигнал с помощью микрофона, и я хочу сохранить данные в кольцевом буфере, чтобы изменить высоту звука, и я хотел бы знать, как реализовать такой буфер.


person user3585110    schedule 02.05.2014    source источник


Ответы (1)


Самый простой способ — увеличить индекс массива таким образом, чтобы он зацикливался.

bufSize = 10;
circBuffer = zeros(bufSize,1);

for i = 1:15
  ind = mod(i-1,bufSize) + 1;
  circBuffer(ind) = i;
end

Вам нужно что-то более сложное, чем это?

person Chris Taylor    schedule 02.05.2014
comment
Ах, okej, спасибо, я думаю, что понял идею. Остается проблема, как я могу передавать данные в буфер. - person user3585110; 02.05.2014