Я занимаюсь обработкой звука. Я мог загружать некоторые аудиофайлы в MATLAB, воспроизводить их, смешивать и синтезировать сигналы.Фильтр нижних частот в MATLAB, возвращающий значения NaN
Теперь, однако, я хочу извлечь базу, похожую на эквалайзер или фильтр нижних частот, в программу редактирования аудио. Я знаю, что MATLAB имеет множество фильтров и встроенных инструментов для проектирования фильтров; Я просто хочу добавить простой фильтр нижних частот. Я нашел это руководство: http://www.aquaphoenix.com/lecture/matlab10/page4.html
f = 44100;
n = [1:f];
note_a = 440;
note_csharp = 554.365;
note_e = 659.255;
chord_a = sin(2*pi*(note_a/f)*n)+sin(2*pi*(note_csharp/f)*n)+sin(2*pi*(note_e/f)*n);
fNorm = 200/(f/2);
[b,a] = butter(10, fNorm, 'low');
chords_low = filtfilt(b, a, chord_a);
я не получаю сообщение об ошибке, но все значения на выходе фильтра NaN. Почему это? Песня в стерео, не так ли?
Каковы значения f & fNorm перед вызовом butter()? Каков результат всех (isfinite (фанки))? – Max
f имеет значение 44100 fNorm имеет значение 0.0091 все (isfinite (funky)) имеет значение [1, 1] – user1661303
Я получил нижний план. Кто-нибудь хочет объяснить, что я сделал неправильно, чтобы я мог избежать этого в следующий раз? Я думал, что вопрос был четко сформулирован, но, возможно, я ошибся. Это также не слишком упрощенно. Я попробовал ответить за полчаса до публикации. Пожалуйста, не стесняйтесь указать, что я сделал неправильно. – user1661303