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

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

1 ответ

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

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

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

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

Другие вопросы по тегам