Читайте двоичный код, передаваемый по радио в записи WAV - PullRequest
1 голос
/ 18 марта 2012

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

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

Есть идеи?

1 Ответ

1 голос
/ 18 марта 2012

Спецификация файла 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)

...