Как отредактировать вывод файлового приемника GNU Radio?

Я записал сигнал с помощью GNU Radio, используя блок file sink, который выводит необработанный двоичный файл, который можно проанализировать или использовать в качестве источника ввода в GNU Radio.

Я хочу отредактировать этот необработанный файл, чтобы, когда я использую его в качестве источника внутри GNU Radio, он передал мой измененный файл вместо оригинала. Например: сигнал очень длинный и повторяет шаблон, я хочу отредактировать файл, чтобы уменьшить количество повторяющихся сигналов и сохранить его обратно в необработанном формате для последующей передачи с помощью gnuradio.

Я попытался импортировать файл в Audacity как необработанный файл (выбрав 32-битное число с плавающей запятой с 1 каналом и 48 КБ в качестве частоты дискретизации). Это работает для меня, чтобы видеть сигнал как аудиоданные, и я даже могу его редактировать, но я не уверен, правильно ли он сохраняет его, когда я экспортирую его как необработанные данные. Кроме того, временные показатели смелости кажутся далекими; сигнал должен быть только в микросекундах, но дерзость показывает, что это всего несколько секунд!

Кому-нибудь удалось отредактировать необработанный вывод приемника файлов из GNU Radio?


person vane    schedule 23.04.2015    source источник


Ответы (2)


Я был в состоянии последовательно сделать эту работу. Казалось, что 3 вещи мешают этому работать должным образом.

1) Я делал это неправильно! Мне нужно было вывести как действительные, так и мнимые числа в 2-канальный wav-файл.

2) Используя анализатор спектра, я смог увидеть, что Audacity делает что-то действительно странное с wav-файлом, когда вы удаляете часть аудио, поэтому для борьбы с этим я «заглушил» часть аудио, которую я хотел удалить.

3) Кажется, есть ошибка с Gnuradio и Osmocom Sink (да, у меня есть последняя версия обоих, из исходников). Если вы запустите свой потоковый граф, начните передачу, а затем остановите потоковый граф, щелкнув красный X в Gnuradio (убить потоковый граф), это сохранит передачу моего устройства (HackRF)! Если вы попытаетесь передать новый файл или тот же файл еще раз, он не передаст этот сигнал, потому что он уже пытается что-то передать. Чтобы остановить передачу устройства, просто закройте всплывающее окно блока, которое появляется при запуске потокового графа.

Третий пункт может не быть ошибкой, потому что я, возможно, с самого начала неправильно останавливал свои потоковые графы, но, следуя руководству Майкла Османна по использованию HackRF с Gnuradio, он говорит, что нужно щелкнуть красный X, чтобы правильно отключить потоковый граф и очистить все. вверх; похоже, что это НЕ так.

person vane    schedule 30.04.2015

В папке gr-utils/octave исходного кода GNU Radio есть несколько функций для Octave и Matlab. Некоторые из них позволяют извлекать и хранить необработанные двоичные файлы соответствующего типа данных.

Например, если ваш сигнал состоит из float сэмплов, вы можете использовать функцию read_float_binary для импорта семплов, хранящихся в блоке приемника файлов, в Octave/Matlab. Затем внесите свои изменения в сигнал и снова сохраните его, используя функцию write_float_binary. Сохраненный файл можно импортировать в потоковую диаграмму с помощью исходного блока файла.

person Manos    schedule 26.04.2015
comment
Да, это работает, но то, что я пытался сделать, это визуальное редактирование стокового файла с помощью Audacity или какой-либо подобной программы. Я все же понял это и позже дам ответ всем, кто заинтересован. - person vane; 28.04.2015
comment
Я думаю, что с такими научными инструментами, как Octave или Matlab, визуальные инструменты намного сложнее и удобнее. Если ваши модификации сигнала не ограничиваются только вырезанием/копированием/вставкой аудиосэмплов, я предлагаю вам попробовать их. - person Manos; 28.04.2015
comment
Я согласен, и я планирую попробовать Octave и Matlab, но в этом случае степень моего редактирования буквально сводится к удалению участков сигнала, и их легче визуально удалить. - person vane; 28.04.2015