Как сделать модуляцию звука?

Добрый день
Возможно поднять частоту звука например до 18000 герц?
просто большое количество людей такие частоты не слышит.
если кто знает как это сделать на другом языке программирования то это не является проблемой мне бы понять принцип
  • Вопрос задан
  • 418 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Т.е. вы хотите низкочастотный звук перенести в высокие частоты?
Перенести можно, но вряд ли из этого выйдет что-то удобоваримое
В теории это так.
Можно попробовать что-нибудь типа такого:
1.Делаем ДПФ
2.Добавляем между первым и вторым отсчетами результата ДПФ столько нулей, сколько необходимо для достижения новой частоты дискретизации. Не забываем про вторую половину спектра.
3.Делаем обратный ДПФ
Не знаю, что получится :-) это немного измененный алгоритм интерполяции через ДПФ. Там нулевые отсчеты добавляются в конец (поэтому сдвига спектра не происходит).
Делать надо, видимо, небольшими временными отрезками (0.5 - 1 секунда), затем результат складывать. Возможно надо будет брать сигнал с перекрытием. Но не факт, у меня не было опыта работы с речевыми сигналами.
Чтоб реализовать даже мой простой алгоритм надо немного понимать как все это работает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger
Сись админ
Два очень важных вопроса: где поднять и зачем.
Ответ написан
@vanyamba-electronics
sin(x) * sin(x) даёт функцию 0.5 * sin(2x) + 0.5.
5cb80533cdd20137159782.png
То есть, чтобы поднять сигнал на 1 октаву вверх, нужно вычислить значение:
y = (sin(x) * sin(x) - 0.5) * 2
Но, что если нужно поднять только на 3 четверти? Интерполяция даёт нужный результат:
y = 0.75 * sin(2x) + (1 - 0.75) * sin(x)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы