Просто из чистого любопытства и в основном для "развлечения" я решил сгенерировать .wav-файл со сгенерированным тоном из синтетического спектра с этим средним и стандартным отклонением.
Быстрый тест подтвердил, что я могу создать .wav-файл файл с восстановленным исходным звуком, сохранив выходные данные numpy.irfft() в массиве, возвращаемом numpy.rfft(). Пока все хорошо.
И тут я застрял. Казалось бы, очевидная вещь — сохранить вывод из
Код: Выделить всё
numpy.irfft(numpy.random.normal(wAv,wStd,N))Написав это, я понимаю, что должен строить массив значений, которые следуют реальной кривой Гаусса, а не являются случайными. Это могло бы объяснить отличие результирующего спектра от того, что я ожидал, но не проблему мощности. Может ли это быть связано с тем, что я подаю в IRFFT массив чисто действительных чисел вместо комплексных чисел, которые могут ему понадобиться?
Я, конечно, мог бы генерировать синтетический тон во временной области, суммируя необходимую серию синусоидальных волн... но это было бы слишком дорого...
Подробнее здесь: https://stackoverflow.com/questions/798 ... c-spectrum
Мобильная версия