шаг 1 просто игнорируйте перекрытие частот на данный момент ... и выполните работу по преобразованию звука (во временной области) с помощью БПФ, который предоставит вам данные (частотный домен), здесь у вас есть массив частотных бинов, каждый с амплитудой и фазой сдвиг ... затем подайте эти данные в обратный БПФ, чтобы ваши данные снова были аудио (временная область) ... хороший способ подтвердить, что ваш код работает, если ваш аудиовыход будет соответствовать вашему аудио в
шаг 2 после того, как приведенный выше код работает нормально, затем улучшите приведенный выше код, чтобы сделать значение 0 величиной (амплитудой) каждого частотного бункера (частотного домена), который не имеет перекрытия ... это так просто
На шаге 2 ваши данные находятся в частотной области (после того, как звук был отправлен в вызов FFT), который обычно представляет собой массив комплексных чисел ... вот какой-то псевдокод для синтаксического анализа этого массива
Вы столкнетесь с проблемой использования как можно меньшего количества аудиосэмплов для получения максимальной степени временной специфичности (если вы используете слишком много аудиосэмплов, ваш звук будет звучать как каша) ... однако, если вы используйте слишком мало аудиосэмплов, ваша детализация частотных бункеров будет низкой, что означает, что у вас будет большее приращение между каждой частотой в вашем частотном домене
person
Scott Stensland
schedule
03.10.2019