Введение в GNU Radio и основы SDR

Попался мне тут в руки стик e4000, я решил его подключить. Но писать об этом слишком скучно, да и получается какая-то WindowsTM магия с рассказыванием про то как запустить GUI и нажать там парочку кнопок

Поэтому в статье по мимо подключения SDR Dongle E4000 ,приводится перевод терминов используемых в SDR , а также основные принципы работы GNU Radio.

Я не начинающий радиолюбитель, у меня нет в запасе какого-то опыта, поэтому если Вам что-то не понятно или не нравится пишите, подправим/дополним

gnu_radio_and_chocolate.png

Быстрый старт для E4000

Характеристики

Elonics E4000 — 52 — 2200 MHz with a gap from 1100 MHz to 1250 MHz (varies)

Установка

Ну в общем под Ubuntu все просто нужно PPA,которое под GUI оболочку Gqrx, но туда включено GNU Radio https://launchpad.net/~gqrx/+archive/releases

Затем вставляем донгл запускаем Gqrx

sudo add-apt-repository ppa:gqrx/releases
sudo apt-get update
sudo apt-get install gqrx
# вставляем донгл
gqrx

Собственно, запустится GUI который изображен на скриншоте ,это GQRX отдельная разработка , GNU-Radio же позволяет собирать свои интерфейсы, но увы пока ничего качественного сразу не удается, да и это больше запутает. Ниже будут даны определения ,некоторым сокращениям. Также GQRX поддерживает HackRF BladeRF , но это софтина раскрывает лишь малую толику их потенциала.

Также, дальше стоит воспользоваться подробными инструкциями о том как работать с GNU Radio и донглом.

А именно проверка и удаление мешающего на 3.x ядрах модуля ядра dvb_usb\_rtl28xxu ,если он есть конечно

lsmod | grep dvb_usb_rtl28xxu
sudo modprobe -r dvb_usb_rtl28xxu

Тестирование оборудования

rtl_test -t

Прослушивание указанной частоты из консоли

rtl_fm -f 96.3e6 -W -s 200000 -r 48000 - | aplay -r 48k -f S16_LE

Ham it up v1.2 upconverter

Немного о конверторе

http://habrahabr.ru/post/187946/

Конвертер Ham It Up v1.2 — RF Upconverter For Software Defined Radio высококачественный приемный КВ конвертер Hi-End КВ конвертер (RTLSDR/FUNCUBE)

  • Предназначен для любого приемника УКВ с диапазоном 125 MHz to 155 MHz — например RTLSDR.
  • Отлично подходит и проверен на ДВ-СВ и КВ в комплекте с RTL-SDR
  • Питание от мини USB тип В или +5В .
  • Диапазон принимаемых сигналов 100КГц до 50МГц.
  • Имеет пассивный высокоуровневый смеситель Miniciruits ADE IP = +7дБм
  • Хорошая фильтрация — ФНЧ — LO ДПФ — IF Output ДПФ
  • Есть коммутация на обход, Вы можете одним переключением обойти этот КВ конвертер и вернуться к прослушиванию УКВ диапазона.
  • ПРЕКРАСНО РАБОТАЕТ с HDSDR и SDRConsole v2
  • Нужно сконфигурировать как UP CONVERTER IF — 125 M

Краткая справка по терминам

73611_fig01.gif

Чем меньше длинна волны тем больше частота.

У нас в отличии от «буржуев» все через длину волны выражается.

Обозначение
русское
Диапазон
частот
Обозначение
английское
Диапазон
частот
Виды
модуляции
Длинные волны(ДВ) 148.5-283.5 кГц Low frequency(LF) 30 -300 kHz AM, DRM
Средние волны(СВ) 526,5-1606,5 кГц Medium frequency(MF) 300kHz-3MHz AM, DRM
Короткие волны(КВ)   High frequency(HF) 3-30MHz AM, DRM
КВ-1 3,95-4,00 МГц      
КВ-2 5,90-6,20 МГц      
КВ-3 7,20-7,45 МГц      
КВ-4 9,40-9,90 МГц      
КВ-5 11,60-12,10 МГц      
КВ-6 13,57-13,87 МГц      
КВ-7 15,10-15,80 МГц      
КВ-8 17,48-17,90 МГц      
КВ-9 18,90-19,02 МГц      
КВ-10 21,45-21,85 МГц      
КВ-11 25,67-26,10 МГц      
Ультра короткие волны        
УКВ(Метровые)   Very High Frequency (VHF) 30-300MHz FM
УКВ(дециметровые)   Ultra-high Frequency(UHF) 300MHz-3GHz  
    L 1-2GHz  
    S 2-4GHz  
УКВ(миллиметровые)   Super-high Frequency 3GHz-30GHz  
    C 4-8GHz  
    X 8-12GHz  
    K_u 12-18GHz  
    K 18-26.5GHz  
    Extremely high frequency 30-300GHz  
    K_a 26.5-40GHz  
    Q 30-50GHz  
    U 40-60GHz  
    V 50-75GHz  
    E 60-90GHz  
    W 75-110GHz  
    F 90-140GHz  
    D 110-170GHz  
         

Сокращения

Русская
аббревиатура
Расшифровка Английская
аббревиатура
AM Амплитудная модуляция AM
ЧМ Частотная модуляция FM
ЛЧМ Линейная ЧМ Chirp
ФМ Фазовая модуляция PM
КАМ Квадратурная АМ QAM
  Continuous wave(morse code) CW
  CW Lower Sideband CWL
  CW Upper Sideband CWU
  Upper Sideband USB
  Lower Sideband LSB
  Спутниковый конвертер LNB
  Цифровое(Аудио)радиовещание DAB
  Набор технологий для DAB DRM
     

Источники

Что ловить

Очевидно- радио)))) Иногда можно определить что Вы поймали, что-то не то.

распределения полос частот между радиослужбами Российской Федерации

Небольшой перевод про о базовых концепциях GNU Radio — Источник

Базовые концепции GNU Radio

Это очень простой вводный учебник к GNU Radio. Вам точно понадобится прочесть его , перед чтением чего нибудь ещё. Даже если вы об этом всем, по крайне мере бегло просмотрите, может вы что-то пропустили.

Потоковые графы – and what they’re made of

Прежде чем,мы к чему нибудь приступим, с начало на необходимо понять самые базовые концепции GNU Radio: Потоковые графы и блоки.

Потоковые графы это графы (из теории графов), по которым идут потоки данных. Множество приложений GNU Radio содержат, только потоковый граф и ничего более. Узлы этого графа называются блоками, а потоки данных текут по ребрам его.

Любая фактическая обработка сигнала производится блоками. В идеале каждый блок должен делать только одну работу, этот путь позволяет оставаться GNU Radio модульным и гибким. Блоки обычно пишутся на C++ (также можно писать их на Python); писать новые блоки не очень сложно.

Чтобы как то представить этот рассеянную по топику тему, давайте начнем с примера (все примеры были созданы с помощью GNU Radio companion (GRC) — графический интерфейс к GNU Radio).

Здесь, представлено три блока(прямоугольники). Данные перемещаются с лева на право в данном примере, это означает что они берут начало в аудио источнике проходят через фильтр низких частот и заканчивают свой путь записываясь в файл на жестком диске.

fg1-audiolpf.png

Блоки соединяются через порты. У первого блока нет входного порта, он создает образцы(sample). Такой блок, только с входным портом, называется Исток(source). В аналоговом стиле, последний блок , без выходного порта, называется Сток (sink).

Иногда это смущает: с точки зрения пользователя, аудио блок (также снимает образцы с звуковой карты) и является лишь частью обработчика. Когда мы говорим о Стоках и Истоках, это всегда означает с точки зрения потокового графа.

Так что же происходит здесь. Блок audio source подсоединен к драйверу звуковой карты и выводит аудио образцы. Это образцы дольше обрабатываются в фильтре низких частот. Наконец образцы(сэмплы), передаются в блок который записывает их в WAV файл.

Элементы

В основном, мы называем то что блок выводит — элементом. В предыдущем примере, один элемент это вещественное число представляло один сэмпл произведенный аудиодрайвером. Однако, элемент может быть представлен и в цифровом виде. Наиболее распространенный тип сэмплов это вещественные — real samples (как в примере выше), комплексные — complex samples (наиболее распространенные в software defined radio), целые — integer types и векторы — vectors этих скалярных типов.

Чтобы понять эту концепцию рассмотрим анализ БПФ (Быстрое Преобразование Фурье или FFT). Скажем так, мы хотим выполнить БПФ над сигналом, перед тем как сохранять его в файл. Конечно же нам необходимо некоторое количество сэмплов в одно время, чтобы вычислить БПФ; в отличие от фильтров , оно не работает с одним единственным образцом.

Вот как это работает:

fg2-fftvec.png

Здесь появился, новый блок названный ‘Stream to vector’. Его особенность в том что выводимое им значение отличатся от того что поступает на вход. Этот блок берет 1024 сэмпла (т.е. 1024 элемента) и посылает их на вывод в виде одного вектора из 1024 сэмплов (т.е. это его элемент ). Комплексный вывод БПФ затем преобразуется как величина площади в реальный тип данных (обратите внимание как мы используем различные цвета портов для указания различных типов данных).

Так что помните: элемент может быть любым, сэмпл, набор битов, заданный коэффициент для фильтра или любой другой.

Резюме:

Вот что вы должны знать:

  • Вся обработка сигнала в GNU Radio осуществляется через потоковые графы.
  • Потоковый граф состоит из блоков. Блок совершает одну операцию по обработке сигнала,такую как фильтрация, добавление сигнала, превращение,декодирования, доступ к железу и множество других.
  • Данные перемещаются между блоками в различных форматах, комплексные или вещественные , целые, числа с плавающей точкой или любой другой заданный вами тип.
  • Каждый потоковый граф должен обладать по крайне мере одним Истоком и одним Стоком.

So what does GNU Radio do?

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

Частота дискретизации

Конечно, если вы читаете эту статью, вы знаете что такое частота дискретизации (если это не так, отправляйтесь к картинке чтобы понять это).

Давайте посмотрим на потоковые графы. В первом примере, аудио источник обладает фиксированной частотой дискретизации 32кб/с. Так как фильтр никак не меняет частоту дискретизации, эта частота используется на протяжении всего потокового графа.

Во втором примере, второй блок (stream to vector) создает элемент каждые 1024 элемента, поступающих на вход. Так что, частота с которой создаются эти элементы в 024 раза меньше, чем та с которой он потребляет элементы (то что на самом деле он производит столько же байт ,сколько и потребляет, здесь не имеет значения). Такой блок называется дециматором(decimator), потому что он прореживает частоту появления элементов. Блок создающих элементы с большей частотой чем та что поступает на вход называется интерполятором (interpolator). Если создание и потребление элементов происходит на одной частоте , это — sync block.

Теперь ,давайте вернемся ко второму примеру. Как уже упоминалось он обладает различными частотами дискретизации на всем потоковом графе. Но какая частота является базовой?

OK, приготовьтесь: нет такой вещи. До тех пор пока нет представления о внутреннем таймере железа который фиксирует частоту, частота дискретизации бессмысленна– только относительная частота (т.е. отношение частот входа к выходу. Ваш компьютер может обрабатывать сэмплы так быстро ,как он хочет (заметьте это может заставить ваш компьютер зависнуть, т.к. 100% ЦПУ будет занято обработкой вашего сигнала).

Вот другой пример:

fg3-dialtone.png

Прежде всего, что нового мы здесь видим здесь представлены один Сток и два Истока. Каждый порт представляет из себя один из каналов(левый и правый) звуковой карты, которые работают на фиксированной и разной частоте.

Подробнее о блоках (и атомарности) #

Давайте вернемся к блокам. Наибольшая часть GNU Radio это большое количество блоков.Когда вы начнете использовать GNU Radio, вы будете соединять блок за блоком. Рано или поздно Вам понадобится блок, который будет недоступен в GNU Radio, тогда вы лего можете написать его самостоятельно. Это не трудно.

Вопрос в том ,что вы поместите в этот блок? В идеале, блоки должны быть как можно более атомарными; каждый блок должен выполнять только одну работу — этот путь оставляет GNU Radio модульным и гибким. Однако ,иногда это просто не работает. Некоторые блоки , должны будут выполнять несколько заданий одновременно. Вы вероятно найдете компромисс между модульностью и производительностью.

Метаданные

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

В GNU Radio, добавление метаданных к потоку осуществляется через механизм называемый метками stream tags. Метка это специфический объект которая соединена со определенным элементом (т.е. сэмплом). Это может быть скаляр любого типа, вектор, список ,словарь или то что укажет пользователь.

Сохраняя поток на диск, метаданные также будут сохранены (смотри также Metadata Documentation Page).

8 Comments

  1. gennady.frolov

    17.03.2014 at 10:06

    Продаётся оборудование для Software Defined Radio (SDR) в отличном состоянии:

    Ettus Research USRP N210
    + 1 x Ethernet cable
    + 1 x Power supply

    Ettus Research SBX board rev.5
    SBX 400-4400 MHz Rx/Tx (40 MHz) USRP Daughterboard (400 MHz — 4.4 GHz)
    + 1 x SMA-Bulkhead

    О цене договоримся.

    gennady.frolov.76@mail.ru

  2. Здравствуйте. Подскажите как можно в ПТГКфвшщ написать свой блок может примерчик ссылка а то я неочень программист а написать свое надо.

  3. Valber подскажи я написал свой блок в GnuRadio , подключил к его входу источник сигналов и не могу разобраться как идет по времени считывание из его входного буфера сигналов. Случай когда мой блок ведет обработку сэмплов и не будет успевать забирать с той же частотой cэмплы которые ему льются на вход что и как будет происходить? статейку вроде нашел но разобраться не могу (особенно как происходит начало и конец функции work() и что такое noutput_items ). Спасибо.

    • Valber

      10.07.2017 at 16:59

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

Добавить комментарий

Your email address will not be published.

*

*

© 2017 Crafting.be

Theme by Anders NorénUp ↑