Чтение двоичного кода, передаваемого по радио в записи WAV

У меня есть несколько файлов WAV, которые были записаны по радио. Он содержит информацию о том, кто отправил передачу, и я хочу иметь возможность прочитать эту информацию. Информация передается путем отправки x hz для 0 и y hz для 1 (Подробнее об AFSK в Википедии)

Моя проблема: Как я могу получить двоичные данные из волнового файла? Если бы были элементы управления для C#, было бы неплохо, но некоторый исходный код для лучшего понимания был бы лучше.

Есть идеи?

1 ответ

Спецификация файла WAV - это ваш план чтения звуковых данных из файла WAV. Пример кода для чтения и управления WAV-файлами можно найти в этой статье CodeProject.

Чтобы добиться тонального отображения, вы можете прочитать эту статью, которая описывает, как написать программное обеспечение для передачи данных между двумя звуковыми картами. Например, чтобы узнать, какая часть данной частоты присутствует в определенном сегменте файла WAV, вы должны использовать преобразование Фурье.

Что-то вроде этого:

double fourier1(double x_in[], double n, int length) {

    double x_complex[2] = { 0, 0 };

    int i;

    for(i = 0; i < length; i++) 
    {
        x_complex[0] += x_in[i] * cos(M_PI * 2 * i * n / (double) length);
        x_complex[1] += x_in[i] * sin(M_PI * 2 * i * n / (double) length);
    }

    return sqrt(x_complex[0]*x_complex[0] + x_complex[1]*x_complex[1]) / (double) length; 
} 

Где x_in - это серия чисел от -1 до 1, а n - измененная частота:

(length * fre­quency / rate)

Другие вопросы по тегам