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