Создание кольцевого / кольцевого буфера в matlab/simulink
Я пытаюсь реализовать алгоритм сдвига высоты тона в Simulink, который использует кольцевой / кольцевой буфер, но я не знаю, как это сделать. Я передаю аудиосигнал с помощью микрофона, и я хочу сохранить данные в кольцевом буфере, чтобы изменить высоту звука, и я хотел бы знать, как реализовать такой буфер.
1 ответ
Самый простой способ - увеличить индекс массива таким образом, чтобы он зацикливался.
bufSize = 10;
circBuffer = zeros(bufSize,1);
for i = 1:15
ind = mod(i-1,bufSize) + 1;
circBuffer(ind) = i;
end
Вам нужно что-то более сложное, чем это?