Откройте.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)