Андрей Смирнов
Время чтения: ~18 мин.
Просмотров: 71

Как подружить PLUTO и HDSDR

HDSDR — вторая по популярности программа после SDRSharp, больше полюбившаяся радиолюбителям.

0039.jpg

Установка

Предполагается, что драйвер Zadig уже установлен. 1. Качаем программу с официального сайта: hdsdr.de 2. Устанавливаем на компьютер — все по умолчанию. 2. Качаем файл ExtIO_RTL2832.DLL 3. Копируем ExtIO_RTL2832.DLL в папку с установленной программой (по умолчанию C:Program FilesHDSDR). Запускаем программу и жмем Start [F2]. Если при запуске предложит выбрать файл, выберите ExtIO_RTL2832.dll и нажмите открыть.

Драйвер для приема ниже 24 МГц

Модернизированная dll-ка для HDSDR: ExtIO_RTL_SW_Patch.dll (источник…) Чувствительность с понижением частоты будет снижаться, и лучше, конечно, для КВ использовать конвертер.

UPD. Источник стал недоступен, качаем dll-ку отсюда https://yadi.sk/d/NvGPagXphkdHG/HDSDR

Драйвер для работы по сети

Dll-ка для удаленной работы HDSDR со свистком по сети (например, с сервером на Raspberry Pi): ExtIO_RTLTCP.dll

Русская версия HDSDR

Неофициальную русифицированную версию можно скачать отсюда (сайт автора ua3ndk.jimdo.com). Некоторые антивирусы на нее могут ругаться, такое бывает с патченными программами, нажмите игнорировать, добавить в белый список или нечто подобное. Но все же имейте ввиду, что любые неофициальные версии вы устанавливаете на свой страх и риск.

Выбор источника Options — Select Input. Основные параметры ExtIO (усиление, полоса обзора, буфер и др.). Галочку Tuner AGK лучше убрать и подобрать усиление Tuner Gain вручную. Возможно, понадобится выбрать звуковую карту: Soundcard [F5] — RX Output (to Speaker). Bandwidth [F6] — выбор максимальной полосы (Input) и частоты дискретизации звука (Output, выберите 48000).

Калибровка частоты: левой кнопкой EXTIO — Frequency Correction.

Ввод смещения частоты для конвертера: правой кнопкой мыши по ExtIO — третий сверху пункт «SDR hardware on Down/Up-Converter», в поле ввести частоту в герцах и нажать Apply. В том же меню находится калькулятор LO frequency calibration — можно вычислить значение ppm по эталонной радиостанции.

HDSDR имеет 2 настройки частоты: LO (Local Oscillator) грубая, и Tune точная. Ниже находится ползунок громкости (Volume). Под спектром находятся ползунки, которые регулируют водопад (Waterfall), спектр (Spectrum), дискретность частоты (RBW), усреднение (Avg), отображаемую полосу частот (Zoom) и скорость обновления водопада и спектра (Speed).

Чтобы слушать FM радио, выберите выходную частоту дискретизации 192000 (Bandwidth [F6] — Output). Нажмите на кнопку выбора модуляции FM и выставьте нужную полосу сигнала ползунком FM-BW (находится под значком loop-бесконечность).

Создание профилей

(с) Модест Петрович: Для «свистунов» с HDSDR могу поделиться, как сделать несколько профилей свистка. Это может быть полезно при использовании нескольких свистков или для экспериментов. В папке с установленной программой (она лежит обычно C:Program FilesHDSDR) создаем новый ярлык. Называем его к примеру 1st_RX затем щелкаем по ярлыку правой кнопкой — свойства — ярлык — и во вкладке объект после кавычек ставим пробел и прописываем следующее -profile 1_RX жмем применить ОК и копируем и вставляем ярлык в любое удобное место. Так можно создать сколько угодно ярлыков и настройки в каждом ярлыке будут независимы от других. Только в новых ярлыках прописываем -profile 2_RX и т.д. http://www.cqham.ru/forum/showthread.php?22261-RTL2832&p=1137437&viewfull=1#post1137437

(с) ua4wbk: Для организации панорамной приставки, по ПЧ, необходимо вывести 1-ую ПЧ трансивера, наружу, для подключения её к антенному входу донгла («свистку»). Место «вывода» 1-ой ПЧ, у каждого трансивера своё, по этому надо смотреть по схеме. В любом случае необходимо выводить сигнал 1-ой ПЧ, ещё до фильтра основной селекции, т.е. желательно сразу после 1-го смесителя, как например это сделано ТУТ и желательно через дополнительный каскад (например ТАКОЙ истоковый повторитель, как вариант или иной подходящий), как это сделано например ЗДЕСЬ. «Свисток» может быть практически любой, собранный на чипе RTL2832, вот наиболее распространённые «донглы», например ТАКОЙ, ТАКОЙ, вот ТАКОЙ и им подобные. Таким образом при наличии «свистка», трансивера, с выходом 1-ой ПЧ наружу, а так же соответствующей программы (наиболее распространённые HDSDR + ExtIO_RTL2832.DLL + Zadig или SDR Sharp), можно организовать панорамную «приставку», позволяющую просматривать участок диапазона, практически на любом трансивере. Как устанавливать вышеуказанные программы и драйвера, а так же возможные «глюки» при запуске программ HDSDR и SDR Sharp, рассматривать не буду, всё есть в инете. Далее. Если мы просто хотим наблюдать спектр интересующего нас диапазона (выбранного в трансивере), то соединяем выход 1-ой ПЧ трансивера, с антенным входом «свистка». Запускаем программу (HDSDR или SDR Sharp) и выставляем в ней частоту 1-ой ПЧ трансивера (чем точнее, тем лучше). Наблюдаем спектр интересующего нас диапазона. Выглядит это будет примерно ТАК, в программе HDSDR или ТАК, в программе SDR Sharp. Но всё это только визуализация участка диапазона выбранного на трансивере, с возможностью цифровой обработки принимаемого сигнала. Схема организации панорамной приставки, к трансиверу, как вариант, может выглядеть примерно так.

Корпус трансивера должен быть соединен с корпусом компьютера! Не забывайте об этом! Дабы избежать возможных, неблагоприятных последствий. Что бы управлять работой трансивера, непосредственно из программы (например HDSDR), нам нужна обратная связь компьютера, с трансивером, которую необходимо установить используя САТ кабель, совместимый с используемым трансивером (для разных моделей он может быть различным + ещё зависит от того к какому порту компьютера предполагается подключать трансивер, например YAESU FT-857, к USB или COM порту, соответственно выбираем и кабель, USB или СОМ. Можно изготовить САТ кабель и самостоятельно (в интернете есть много различных схем реализации САТ кабеля) из отдельных элементов или использовать для этого готовый адаптер, например ТАКОЙ или ТАКОЙ или иной другой аналогичный, поддерживающий работу с системой САТ трансивера и позволяющий вести управление радиостанцией с персонального компьютера, с помощью внешнего программного обеспечения. Подключение трансивера к компьютеру, с возможностью использования «свистка», для организации panadapter-а и программного управления трансивера, может иметь например такой вид.

Ещё раз обращаю внимание, на одном моменте. Корпус трансивера должен быть соединен с корпусом компьютера! Не забывайте об этом! Дабы избежать возможных, неблагоприятных последствий. Потребуется программа OmniRig + база ini файлов трансиверов INI files for OmniRig, последнюю необходимо разархивировать в папку Rigs, папки OmniRig (путь, по умолчанию, при установке C:Program FilesAfreetOmniRig), описание программы можно посмотреть ЗДЕСЬ. «Быструю» настройку программы HDSDR, для совместной работы с трансивером, через OmniRig, можно посмотреть например ЗДЕСЬ, что я и сделал. В результате, трансивер (в моём случае FT-817) был успешно подключён к компьютеру, с которого и управлялся. Для более качественной, индивидуальной настройки программы HDSDR, придётся, как минимум, изучить её ОПИСАНИЕ и экспериментально опробовать, с разными настройками. В принципе всё это описано в инете, в разных источниках, по этому при желании всё можно найти и в более подробном описании. http://www.radioscanner.ru/forum/topic17095-58.html#msg1186653

Много информации по HDSDR (на английском): https://sites.google.com/site/g4zfqradio/

Все материалы сюжета:

Разница между ними следующая: E4000 работает в диапазоне ~52–2200 МГц и имеет немного большую чувствительность на частотах менее 160 МГц. Из-за того что производитель E4000 обанкротился и микросхема снята с производства, остающиеся тюнеры покупать все труднее, и цены на них растут.

R820T работает в диапазоне 24–1766 МГц, однако диапазон перестройки внутренних фильтров сильно затрудняет работу R820T выше 1200 МГц (что делает невозможным, например, прием GPS). На данный момент тюнеры на этой микросхеме легко купить, и стоят они около 10–11 долларов.

Также продаются тюнеры на микросхемах FC0012/FC0013/FC2580 — у них очень серьезные ограничения по частотам работы, и лучше их не покупать. Узнать, на какой микросхеме сделан тюнер, можно в описании товара или спросив у продавца. Если информации по используемым чипам нет — лучше купить в другом месте.

Покупка

В розничных магазинах их не найти, поэтому нам поможет aliexpress.com. Пишем в поиске R820T или E4000, сортируем по количеству заказов, внимательно читаем описание (там должно быть явно написано, что тюнер использует микросхемы RTL2832 + E4000 или RTL2832 + R820T), и можно заказывать. Присылают обычно почтой России, в течение 3–6 недель.

В комплекте с тюнером будет и крошечная антенна — ее, конечно, лучше заменить. Хорошие результаты можно получить, используя обычную комнатную телевизионную антенну МВ-ДМВ «рога». В описании товара также нужно обратить внимание на разъем антенны — и либо искать тюнер с обычным телевизионным разъемом, либо расчехлять паяльник и делать переходник / перепаивать разъем. При пайке очень легко убить устройство статическим электричеством, так что заземляйтесь.

Типичный приемник на основе RTL2832 — EzTV668
Типичный приемник на основе RTL2832 — EzTV668

На многих тюнерах рядом с коннектором антенны отсутствуют защитные диоды (в данном случае U7) — их можно либо впаять самому (один к земле, один от земли — я, например, впаял 1N4148), либо оставить как есть, и антенну голыми руками не трогать и всячески беречь от статического электричества.

Софт и API для работы с RTL2832

rtl_sdr

Rtl_sdr – драйвер, обеспечивающий «нецелевое» использование данных с TV-тюнеров на базе rtl2832. В Windows вам придется заменить драйвер тюнера по умолчанию на WinUSB с помощью программы Zadig.

Rtlsdr.dll требуют все SDR-программы, и зачастую эта DLL уже идет в поставке софта, использующего RTL2832.

Rtl_sdr также можно использовать и через консольную утилиту, чтобы протестировать тюнер или слить кусок эфира в файл:

rtl_sdr -f 1575520000 -g 34 -s 2048000 out.dat 

При дальнейшей обработке нужно помнить, что в файле байты I- и Q-потоков идут поочередно.

SDRSharp

SDRSharp — одна из популярных и простых в использовании программ под Windows для работы с RTL2832 (и некоторыми другими SDR). При старте нужно выбрать RTL2832, нажав на кнопку Front-end. Вводить частоту руками нужно в поле Center.

Слева вверху — выбор типа демодулирования. FM используется для обычного FM-вещания и аудио в аналоговом телевидении, AM — в радиостанциях на низких частотах и переговоров самолетов, NFM — в рации.

Прием переговоров по рации на частоте 446 МГц в SDRSharp
Прием переговоров по рации на частоте 446 МГц в SDRSharp

Многие внешние декодеры цифровых передач работают через «аналоговый» интерфейс — то есть ты запускаешь SDRSharp, устанавливаешь программу Virtual Audio Cable (программа платная), настраиваешь SDRSharp, чтобы он декодированный звук выводил в VAC, и в системных настройках Windows указываешь VAC как устройство записи по умолчанию. В результате внешняя программа-декодер будет получать звук от SDRSharp.

Таким образом подключаются декодеры P25 раций (милиция), данных с метеоспутников, пейджеров, навигационных сообщений самолетов (ADS-B) и многого другого (об этом ниже). Такой необычный способ подключения сложился исторически — раньше к компьютеру подключали аналоговые приемники. Со временем декодеры дописывают, чтобы они напрямую работали с RTL-SDR.

GNU Radio

GNU Radio — настоящий зубр SDR. Это программный пакет, предназначенный для обработки данных, полученных от SDR-приемника, в реальном времени. Являющаяся стандартом де-факто для всех более-менее профессиональных забав в области радио, программа построена на модульной основе с учетом парадигмы ООП. Это настоящий радиоконструктор, в котором роль элементов отведена функциональным блокам: фильтрам, модуляторам/демодуляторам и несметному множеству других примитивов обработки сигналов. Таким образом, имеется возможность составить из них практически любой тракт обработки. Делается это в прямом смысле слова в несколько кликов мышкой в наглядном графическом редакторе, имя которому gnuradio-companion. Более того, gnuradio-companion написан на Python и позволяет генерировать схемы на Python. Но у такой гибкости есть и обратная сторона — освоить GNU Radio за десять минут невозможно.

Аппаратные дополнения

Расширение диапазона поддерживаемых частот

Ниже ~52 МГц / 24 МГц находится бОльшая часть интересного в радиоэфире — поэтому ограничение по минимальной частоте серьезно сужает возможности этих приемников. Расширить диапазон можно, купив up-converter, который сдвинет сигнал с антенны на 100 или 125 МГц вверх. Среди продающихся конвертеров пока лучше всех себя показывает NooElec — Ham It Up v1.2 с кварцем на 125 МГц. Использование кварца на 125 МГц очень важно, так как в районе 100 МГц находится много мощных FM-станций и без очень качественного экранирования всех частей системы они будут мешать приему.

RF-конвертер NooElec — Ham It Up v1.2

Этот конвертер можно использовать с любыми SDR-системами, в том числе и работающими на передачу (есть ограничение на мощность).

Для приема на частотах менее 50 МГц придется больше внимания уделить антенне, так как габариты ее растут пропорционально увеличению длины волны. Конструкций антенн для любительской радиосвязи в КВ-диапазоне очень много, но в самом простейшем случае — это спускаемый с балкона провод длиной 5–20 м.

Малошумящий усилитель

И E4000, и R820T — кремниевые микросхемы, и усилитель внутри них шумит сильнее, чем более дорогие отдельные GaAs-усилители. Для некоторого снижения уровня шумов (на 1,5–3 дБ) и улучшения возможностей приема очень слабых сигналов можно купить малошумящий усилитель, который включается между антенной и тюнером.

Один из вариантов — LNA for all.

Малошумящий усилитель LNA for all

Что послушать в радиоэфире?

Радиопереговоры в безлицензионных диапазонах

Гражданские рации, не требующие регистрации в России, работают на частотах 433 и 446 МГц. Впрочем, в Москве русскую речь там услышать сложно. Их сразу и без проблем слышно в SDRSharp, модуляция NFM.

Поскольку каналов много, очень полезен плагин для SDRSharp AutoTuner Plugin — он автоматически включает частоту, на которой ведется передача, и таким образом можно слушать сразу все каналы раций.

Чтобы слушать рации на частоте 27 МГц, нужен тюнер с микросхемой R820T или внешний конвертер в случае E4000 (например, описанный ранее Ham It Up v1.2). Оптимальная антенна для 27 МГц уже требуется более серьезная, длиной ~2,59 или ~1,23 м.

Радиопереговоры полиции

Полиция в Москве и во многих других регионах России перешла на использование цифровых радиостанций, работающих в стандарте APCO-25 (P25). В P25 данные передаются в цифровом виде со сжатием и кодами коррекции ошибок — это позволяет увеличить дальность устойчивой связи и больше каналов впихнуть в ту же полосу радиочастот. Также существует опциональная возможность шифрования переговоров, однако обычная полиция работает без шифрования.

Для приема P25-раций можно использовать декодер DSD. DSD ожидает аудиоданные на входе. Перенаправить аудио с SDRSharp в DSD можно с помощью Virtual Audio Cable. DSD весьма критичен к настройкам SDRSharp — я рекомендую устанавливать AF Gain около 20–40%, возможно отключать галочку Filter Audio. Если все идет по плану — в окне DSD побегут декодированные пакеты, а в наушниках будут слышны переговоры. Эта схема также работает с упомянутым плагином AutoTuner в SDRSharp.

Найти частоты предлагаю читателям самостоятельно, так как эта информация не является открытой.

Радиопереговоры самолетов и диспетчеров

По историческим причинам для радиосвязи в авиации используется амплитудная модуляция. Обычно передачи с самолетов лучше слышно, чем от диспетчеров или погодных информаторов на земле. Диапазон частот — 117–130 МГц.

Прием сигналов с автоматических передатчиков самолетов ADS-B

ADS-B используется для того, чтобы и диспетчер, и пилот видели воздушную обстановку. Каждый самолет регулярно передает параметры полета на частоте 1090 МГц: название рейса, высота, скорость, азимут, текущие координаты (передаются не всегда).

Эти данные можем принять и мы, чтобы лично наблюдать за полетами. Два популярных декодера ADS-B для RTL2832 — ADSB# и RTL1090. Я использовал ADSB#. Перед запуском желательно настроиться на 1090 МГц в SDRSharp, посмотреть, есть ли сигнал и какая ошибка частоты из-за неточности кварцевого генератора. Эту ошибку необходимо скомпенсировать в настройках Front-end’а: Frequency correction (ppm). Нужно помнить, что величина этой ошибки может изменяться вместе с температурой приемника. Найденную коррекцию нужно указать и в окне ADSB### (предварительно закрыв SDRSharp).

Оптимальная антенна-монополь для 1090 МГц получается длиной всего 6,9 см. Так как сигнал очень слабый, тут очень желательно иметь дипольную антенну, установленную вертикально с такой же длиной элементов.

ADSB# декодирует пакеты и ждет подключений по сети от клиента, отображающего воздушную обстановку. В качестве такого клиента мы будет использовать adsbSCOPE.

После запуска adsbSCOPE необходимо открыть пункт меню Other -> Network -> Network setup, нажать внизу на кнопку adsb#, убедиться, что указан адрес сервера 127.0.0.1. Затем на карте необходимо найти твое местоположение и выполнить команду Navigation -> Set Receiver Location. Затем запустить подключение к ADSB#: Other -> Network -> RAW-data client active.

Если все сделано правильно, то в течение нескольких минут ты сможешь увидеть информацию о самолетах (если, конечно, они пролетают рядом с тобой). В моем случае с антенной-монополем можно было принимать сигналы от самолетов на расстоянии примерно 25 км. Результат можно улучшить, взяв более качественную антенну (диполь и сложнее), добавив дополнительный усилитель на входе (желательно на GaAs), используя тюнер на основе R820T (на этой частоте он имеет более высокую чувствительность по сравнению с E4000).

Декодированные сообщения ADS-B

Прием длинно- и коротковолновых аналоговых и цифровых радиостанций

До прихода интернета КВ-радиостанции были одним из способов узнавать новости с другого конца земного шара — короткие волны, отражаясь от ионосферы, могут приниматься далеко за горизонтом. Большое количество КВ-радиостанций существует и поныне, их можно искать в диапазоне ~8–15 МГц. Ночью в Москве мне удавалось услышать радиостанции из Франции, Италии, Германии, Болгарии, Великобритании и Китая.

Дальнейшее развитие — цифровые DRM-радиостанции: на коротких волнах передается сжатый звук с коррекцией ошибок + дополнительная информация. Слушать их можно с помощью декодера Dream. Диапазон частот для поиска — от 0 до 15 МГц. Нужно помнить, что для таких низких частот может понадобиться большая антенна.

Помимо этого, можно услышать передачи радиолюбителей — на частотах 1810–2000 кГц, 3500–3800 кГц, 7000–7200 кГц, 144–146 МГц, 430–440 МГц и других.

Радиостанция «судного дня» — UVB-76

UVB-76 расположена в западной части России, передает на частоте 4,625 МГц с начала 80-х годов и имеет не до конца ясное военное назначение. В эфире время от времени передаются кодовые сообщения голосом. Мне удалось принять ее на RTL2832 с конвертором и 25-метровую антенну, спущенную с балкона.

GPS

Одна из самых необычных возможностей — прием навигационных сигналов со спутников GPS на TV-тюнер. Для этого понадобится активная GPS-антенна (с усилителем). Подключать антенну к тюнеру нужно через конденсатор, а до конденсатора (со стороны активной антенны) — батарейка на 3 В для питания усилителя в антенне.

Далее можно либо обрабатывать слитый дамп эфира matlab-скриптом — это может быть интересно в целях изучения принципов работы GPS, — либо использовать GNSS-SDR, который реализует декодирование сигналов GPS в реальном времени.

Принять аналогичным способом сигнал с ГЛОНАСС-спутников было бы затруднительно — там разные спутники передают на разных частотах, и все частоты в полосу RTL2832 не помещаются.

Другие применения и границы возможного

RTL2832 можно использовать для отладки радиопередатчиков, подслушивания за радионянями и аналоговыми радиотелефонами, для разбора протоколов связи в игрушках на радиоуправлении, радиозвонках, пультов от машин, погодных станций, систем удаленного сбора информации с датчиков, электросчетчиков. С конвертором можно считывать код с простейших 125 кГц RFID меток. Сигналы можно записывать днями, анализировать и затем повторить в эфир на передающем оборудовании. При необходимости тюнер можно подключить к Android-устройству, Raspberry Pi или другому компактному компьютеру для организации автономного сбора данных из радиоэфира.

Можно принимать фотографии с погодных спутников и слушать передачи с МКС — но тут уже потребуются специальные антенны, усилители. Фотографии декодируются программойWXtoImg.

Есть возможность захватывать зашифрованные данные, передаваемые GSM-телефонами (проект airprobe), в случае если в сети отключен frequency-hopping.

Возможности SDR на основе RTL2832 все-таки не безграничны: до Wi-Fi и Bluetooth он не достает по частоте, и, даже если сделать конвертер, из-за того, что полоса захватываемых частот не может быть шире ~2,8 МГц, невозможно будет принимать даже один канал Wi-Fi. Bluetooth 1600 раз в секунду меняет рабочую частоту в диапазоне 2400–2483МГц, и за ним будет не угнаться. По этой же причине невозможен полноценный прием аналогового телевидения (там нужна принимаемая полоса 8 МГц, с 2,8 МГц можно получить только черно-белую картинку без звука). Для таких применений нужны более серьезные SDR-приемники: HackRF, bladeRF, USRP1 и другие.

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

dxvl5cuxvc4qn7duv1lossoiz2c.jpeg

Не так давно импульсивно купил симпатичный SDR трансивер для детей и юношества – ADALM PLUTO. К моему сожалению он работает с кучей софта под LINUX, а вот мой любимый HDSDR его не поддерживает. Недолго думая стал разбираться с этой проблемой и вот что из этого получилось:

Analog Devices адресует свой PLUTO студентам. Весь софт для PLUTO открытый и находится в свободном доступе. На сайте компании есть страничка, на которой можно найти почти всю необходимую информацию о функционировании PLUTO. Большая часть софта написана под Linux и студентам рекомендуют пользоваться GNU Radio, MATLAB и т.п.

У меня же чисто радиолюбительский интерес к PLUTO. SDR с диапазоном от 70МГц до 6ГГц (после раскрытия) всего за 150 американских денег — это чудо. Сколько всяких экспериментов можно провести! Посмотрите как много там всего интегрировано:

aowgmnuvpv1nj7kzloexjef5-fy.jpeg

С помощью гугла я довольно быстро выяснил, что для решения моей задачи нужно создать специальную ExtIO_.dll библиотеку в формате Winrad. Эта библиотека служит программным мостом между HDSDR и желаемым SDR приёмником. К счастью, интерфейс библиотеки неплохо документирован. Кроме того, на github довольно много готовых реализаций библиотек для различных приёмников: RTL_SDR, LimeSDR и пр. Было где подсмотреть как надо писать код. Сама же библиотека совсем олдскульная, никаких новых технологий, чистый C89, как писали лет 20 лет назад. По крайней мере не надо учить новый язык программирования, что уже вселяло надежду на успех.

Теперь возник вопрос как управлять PLUTO программным способом. На самом деле есть несколько вариантов управления. Я нашёл минимум два: напрямую чипом через библиотеку libad9361.dll, либо через библиотеку IIO. Последний вариант мне показался более простым и хорошо описанным, поэтому остановился на нём. В этой библиотеке все настройки оборудования доступны в виде какого-то подобия XML структуры, обращение к отдельному элементу идёт по текстовому названию свойства, что довольно удобно. Подробнее описание библиотеки можно посмотреть здесь. Огромным преимуществом библиотеки является то, что она поставляется с утилитами командной строки, с помощью которых всегда можно быстро поменять нужную настройку приёмника. Таким образом, не нужно реализовывать все настройки SDR в интерфейсе HDSDR, можно обойтись необходимым минимумом. А загрузку какого-нибудь экзотического FIR фильтра можно сделать из командной строки, если вообще когда-нибудь такая необходимость появится. Потоки данных в IIO:

cedzbhmsy9z56vdehgcoaas5hmk.png

DWORD WINAPI GeneratorThreadProc( __in  LPVOID lpParameter ) { int16_tiqbuf[EXT_BLOCKLEN * 2]; ssize_tnbytes_rx; char*p_dat, *p_end; ptrdiff_tp_inc;  intiqcnt = 0; // pointer to sample in iqbuf  while ( !gbExitThread ) { nbytes_rx = iio_buffer_refill(rxbuf); p_inc = iio_buffer_step(rxbuf); p_end = (char *)iio_buffer_end(rxbuf); for (p_dat = (char *)iio_buffer_first(rxbuf, rx0_i); p_dat < p_end; p_dat += p_inc) {  iqbuf[iqcnt++] = ((int16_t*)p_dat)[0]; iqbuf[iqcnt++] = ((int16_t*)p_dat)[1];  if (iqcnt == EXT_BLOCKLEN * 2) { // buffer full iqcnt = 0; pfnCallback(EXT_BLOCKLEN, 0, 0.0F, &iqbuf[0]); } } } gbExitThread = false; gbThreadRunning = false; return 0; } 

bzsdhbg83dfjqv9iokbtcpwltbi.jpeg

Весь код библиотеки доступен на github здесь. Можете смело использовать его для своих экспериментов с ADALM PLUTO.

73 de R2AJP

Используемые источники:

  • http://blog.radiospy.ru/instrukcii/ustanovka-hdsdr.html
  • https://xakep.ru/2014/10/31/rtl-sdr-first-steps/
  • https://habr.com/post/441676/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации