Как да редактирам изхода на GNU Radio?

Записах сигнал с GNU Radio, използвайки file sink блок, който извежда необработен двоичен файл, който може да бъде анализиран или използван като източник на входни данни в GNU Radio.

Искам да редактирам този необработен файл, така че когато го използвам като източник в GNU Radio, той предава моя променен файл вместо оригинала. Например: Сигналът е много дълъг и повтаря модел, искам да редактирам файла, за да намаля броя на повтарящите се сигнали и да го запиша обратно в необработен формат, за да предам по-късно с помощта на gnuradio.

Опитах се да импортирам файла в Audacity като необработен файл (избирайки 32-битов float с 1 канал и 48k като честота на дискретизация). Това работи за мен, за да видя сигнала като аудио данни и дори мога да го редактирам, но не съм сигурен дали го записва правилно, когато го експортирам като необработени данни. Също така, времевите индекси в Audacity изглеждат далеч; сигналът трябва да е само микросекунди, но дързостта го показва като общо няколко секунди!

Някой има ли късмет с редактирането на изхода на необработения файл от GNU Radio?


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


Отговори (2)


Успях последователно да накарам това да работи. Изглежда, че има 3 неща, които пречат на това да работи правилно.

1) Правех го погрешно! Трябваше да изведа както реалните, така и въображаемите числа в 2-канален wav файл.

2) Използвайки спектрален анализатор, успях да видя, че Audacity прави нещо наистина странно с wav файла, когато изтриете секция от аудио, така че за да се боря с това, „заглуших“ секцията с аудио, която исках да изтрия.

3) Изглежда има грешка с Gnuradio и Osmocom Sink (да, имам най-новата версия и на двете, от източника). Ако стартирате графиката на потока, започнете да предавате, след което спрете графика на потока, като щракнете върху червения X в Gnuradio (Унищожете графика на потока), това поддържа предаването на моето устройство (HackRF)! Ако се опитате да предадете нов файл или същия файл отново, той няма да предаде този сигнал, защото вече се опитва да предаде нещо. За да спрете устройството да предава, просто затворете блоковия изскачащ прозорец, който се появява, когато стартирате графиката на потока.

Третият елемент може да не е грешка, защото може да съм спрял графиките си неправилно в началото, но следвайки урока на Michael Ossmann за използване на 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