2010-10-15 4 views
0

Моя цель состоит в том, чтобы иметь набор частот, таких как 2 частоты, которые представляют биты (0 и 1). Я хочу отправить эти частоты на аудио через звуковую карту. На другом конце я подключаю шнур к микрофону на звуковой карте. Мне нравится воспринимать этот сигнал (сгенерированный ряд из 2 фиксированных частот) с другого компьютера и повторно формировать данные.Анализ входного аудиочастотного сигнала и генерирование определенной частоты на выходе

Как это сделать?

+3

Думаю, я понимаю, что вы пытаетесь сделать, но я не знаю, что ваш вопрос? – stark

+1

Отлично! Модем FSK, реализованный на Java. и вопрос есть? –

ответ

0

Ну, сначала вы должны создать две синусоидальные волны определенной частоты. В основном, вы узнаете текущий образец вашей звуковой карты и просто сгенерируете серию поплавков, которые представляют собой синусоидальную волну определенной частоты в этом семплере. То есть для звуковой карты с частотой 48000 Гц и частотой 1000 Гц каждая полная синусоидальная волна (один холм, один желоб) должна состоять из 48 образцов.

Обратите внимание, что максимальная частота, которую вы можете сгенерировать, составляет половину выборки.

Затем вы создаете вторую синусоидальную волну со второй частотой. Убедитесь, что две частоты имеют определенное расстояние друг от друга. Частотный коэффициент для одного полутона должен быть достаточным для этого factor >= (1+1/12).

Также убедитесь, что сумма обоих синусов не превышает максимальную амплитуду. Самый простой способ сделать это - ограничить оба синуса амплитудами <= 0.5. Overshooting закрепит сигнал, который создаст новые пики частоты.

На принимающей стороне выполните БПФ коротких временных фрагментов (около 256-1024 выборок) входящего сигнала. Для лучшего частотного разрешения возьмите перекрывающиеся срезы и постепенно затухайте концы, а затем усредните средние спектральные срезы. В полученном спектре вы должны четко видеть пики на двух переданных частотах.

Если вы мало знаете об аудио, это, вероятно, довольно сложная задача.