Почему при генерации очень коротких звуковых сигналов синусоидой (длительностью в десятки миллисекунд) с тишиной между ними такой же или чуть большей длительностью слышны щелчки и прочие посторонние звуки? Шебм стронгли рилейтед.
Сайн вейв генерируется стандартной формулой: for(t = 0; t < (seconds x 44100); $t++) { amplitude x sin(pi x 2 x 1000 x t / 44100) }
Как сделать всё по уму? Изменение таймингов is not an option Количество миллисекунд может быть десятичной дробью и максимум что можно позволить это округлить и сделать четным - в этом случае ситуация незначительно лучше. Тут надо как-то по особому сайн вейв генерировать.
>>3378333 В продакшнене для обработки сигналов обычно используют С и С++. Особенно если идёт связка с эмбеддед или нужна высокая скорость обработки. Хотя даже тогда Си бывает недостаточно, приходится использовать FPGA и Verilog.
>>3378017 (OP) Потому что у апериодичных сигналов бесконечный спектр. Когда в окно фурье попадает и прямая линия и синусоида одновременно её спектр размазывается. По уму надо принять что всё корректно. Высокочастотные щелчки - неотъемлемая часть переходных процессов. Но если тебе важна эстетическая часть - добавь небольшую атаку и релиз.
В чем суть преобразования Фурье, можете объяснить как для дебила? Интересует, почему оно работает даже над конечными полями. Есть алгоритмы декодирования циклических помехозащищенных кодов, основанные на преобразовании Фурье над конечным полем. Почему оно применимо даже тут?
>>3378017 (OP) Так а что звук воспроизводит? Откуда он берётся? Если это динамик, то помоему очевидно, что это пусковые токи. Ток в цепи с индуктивным элементом не может измениться скачком (т.е. резко в мгновение). На старе движения катушка потребляет больше энергии чтобы разогнаться, и из-за этого индуктивность больше и ток больше. Посмотри токовую характеристику асинхронногр двигателя, там тоже самое.