Я знаю, как создать и применить фильтр нижних частот с заданной частотой среза к входному звуковому файлу с помощью функций масло и фильтр. Теперь я хочу со временем увеличивать частоту среза, чтобы создать хорошо известный «эффект развертки фильтра». Мой наивный подход заключался бы в том, чтобы перебрать аудио вектор и применить фильтр для каждого сэмпла (или группы сэмплов), но это кажется очень неэффективным. Что является «правильным» для выполнения этого в MATLAB?
PS. Судя по названию, кажется, что вопрос это похож, но, на мой взгляд, он не отвечает на мой конкретный вопрос.





Если у вас есть набор инструментов DSP, обратите внимание на dsp.IIRFilter, поскольку он был разработан для фильтрации в реальном времени.
Вы можете создать этот объект:
iir = dsp.IIRFilter;
Назначьте коэффициенты фильтра:
iir.Numerator = B;
iir.Denominator = A;
Отфильтруйте кадр (например, стереозвук):
iir(randn(1024,2));
Промыть и повторить.