Ну, сначала вы должны сгенерировать две синусоидальные волны определенной частоты. По сути, вы узнаете текущую частоту дискретизации вашей звуковой карты и просто генерируете серию чисел с плавающей запятой, которые представляют синусоидальную волну определенной частоты с этой частотой дискретизации. т.е. для звуковой карты с частотой 48000 Гц и частотой 1000 Гц каждая полная синусоида (один холм, одна впадина) должна состоять из 48 отсчетов.
Обратите внимание, что максимальная частота, которую вы можете сгенерировать, составляет половину частоты дискретизации.
Затем вы генерируете вторую синусоиду со второй частотой. Убедитесь, что две частоты находятся на определенном расстоянии друг от друга. Коэффициента частоты в один полутон должно быть достаточно для этого factor >= (1+1/12)
.
Также убедитесь, что сумма обоих синусов не выходит за пределы максимальной амплитуды. Проще всего это сделать, ограничив оба синуса амплитудами <= 0.5
. Перерегулирование обрезает сигнал, что создает новые частотные пики.
На принимающей стороне выполните БПФ коротких временных интервалов (около 256–1024 отсчетов) входящего сигнала. Для лучшего разрешения по частоте возьмите перекрывающиеся срезы и постепенно затухайте концы, затем усредните спектральные срезы по времени. В результирующем спектре должны быть отчетливо видны пики на двух переданных частотах.
Если вы мало знаете об аудио, это, вероятно, довольно сложная задача.
person
bastibe
schedule
15.10.2010