Откройте.cfile из rtl_sdr после конвертации с помощью GNU Radio

У меня есть двоичный файл (capture.bin) из инструмента rtl_sdr. Я преобразую его в.cfile с этим руководством http://sdr.osmocom.org/trac/wiki/rtl-sdr

Где я могу получить данные в этом файле? Цель состоит в том, чтобы получить числовой формат из источника. Это возможно?

1 ответ

На самом деле это описано в разделе FAQ по GNU Radio.

Каков формат файла file_sink? Как я могу прочитать файлы, созданные файловым приемником?

Все файлы в чистом двоичном формате. Просто биты. Вот и все. Поток данных с плавающей запятой сохраняется в файле как 32 бита, один за другим. Сложный сигнал имеет 32 бита для реальной части и 32 бита для мнимой части. Чтение комплексного числа означает чтение в 32 бита, сохранение его в действительной части сложной структуры данных, а затем чтение в следующих 32 битах как мнимой части структуры данных. И просто продолжайте читать данные.

Взгляните на файлы Octave и Python в gr-utils для чтения данных с использованием Octave и модуля Scipy Python.

Исключением является формат при использовании формата файла метаданных. Эти файлы создаются блоком мета-файла: http://gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1file__meta__sink.html блоком и считываются блоком мета-файла файла. > См. Страницу руководства по формату файла метаданных для получения дополнительной информации о том, как обращаться с этими файлами.

Однострочная команда Python для чтения всего файла в массив numpy:

f = scipy.fromfile(open("filename"), dtype=scipy.uint8)

Замените dtype на scipy.int16, scipy.int32, scipy.float32, scipy.complex64 или> любым другим типом, который вы использовали.

Обновление scipy.fromfile будет устаревшим в версии 2.0, поэтому вместо этого используйте библиотеку numpy

f = numpy.fromfile(open("filename"), dtype=numpy.uint8)

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