SDR приёмник из китайского USB свистка. Трансиверы

Уверен, для многих из вас, как и для меня совсем недавно, происходящее в радиоэфире было настоящей магией. Мы включаем телевизор или радио, поднимаем трубку сотового телефона, определяем свое положение на карте по спутникам GPS или ГЛОНАСС - и все это работает автоматически. Благодаря RTL-SDR у нас появился доступный способ заглянуть внутрь всего этого волшебства.

Как уже говорилось, RTL-SDR - это целое семейство дешевых ТВ-тюнеров, способных выполнять функцию SDR-приемника. У этих игрушек разные названия и бренды, но объединяет их одно - все они построены на чипсете RTL2832. Это микросхема, содержащая два 8-битных АЦП с частотой дискретизации до 3,2 МГц (однако выше 2,8 МГц могут быть потери данных), и интерфейс USB для связи с компьютером. Эта микросхема на входе принимает I- и Q-потоки, которые должны быть получены другой микросхемой.

R820T и E4000 - это две наиболее удобные для SDR микросхемы, реализующие радиочастотную часть SDR: усилитель антенны, перестраиваемый фильтр и квадратурный демодулятор с синтезатором частоты. На рисунке - блок-схема E4000.

Разница между ними следующая: 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 недель.

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


На многих тюнерах рядом с коннектором антенны отсутствуют защитные диоды (в данном случае 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


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

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

Гражданские рации, не требующие регистрации в России, работают на частотах 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).


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

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

Дальнейшее развитие - цифровые DRM-радиостанции: на коротких волнах передается сжатый звук с коррекцией ошибок + дополнительная информация. Слушать их можно с помощью декодера . Диапазон частот для поиска - от 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 и другие.

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

Естественно, говоря о сборке, я имею в виду техническую сторону этого вопроса. Все давно придумано до нас. Но вот почти полное отсутствие материалов по сборке широкополосного RTL-SDR в рунете натолкнуло меня на мысль сделать подробное руководство для этого интересного устройства.

Такой приемник можно купить на AliExpress или на eBay уже в собранном виде. Но лично я паять люблю и решил не отказывать себе в таком удовольствии, поэтому заказал разобранную версию приемника. Плюс, она дешевле долларов на 20. Брал Kit у этого продавца (ссылка на AliExpress).

Чем же это устройство замечательно и отличается от обычного «свистка» вставляющегося в USB? А отличается оно тем, что может принимать еще и КВ путем прямого оцифровывания ВЧ сигналов. Лично мне очень не хватало панорамного приемника на коротких волнах. На КВ он работает, на уровне обычного бытового КВ приемника. Чувствительность КВ входа не высока, примерно такая же как и у обычных китайских всеволновых балалаек, около 30 мкВ. Хитрые китайцы про это знают, но не пишут. Однако при желании можно встроить дополнительный УВЧ тем самым сильно подняв чувствительность, на плате есть места для организации узлов расширяющих возможности приемника. Но лучше просто озаботиться хорошей КВ антенной. Кроме того, в отличие от «свистка» этот приемник хорошо экранирован.

Но довольно разговоров, пора включать паяльник в сеть и начинать сборку. Поставляется приемник в разобранном виде.

В комплекте идут корпус из алюминиевого профиля, плата для монтажа приемника и конвертера, набор деталей (конденсаторы, резисторы), провода для намотки трансформатора и индуктивностей, разъемы для подключения приемника по USB и к приемным антеннам, сама антенна не понятно на какой диапазон и хороший USB кабель.

Сама плата сделана довольно аккуратно, здесь придраться не к чему. Приемник дешевый, наверное самый дешевый из тех что продаются на AliExpress.

Монтаж

Возможно, более опытные радиомонтажники меня будут ругать, но я решил собирать все в той последовательности, в которой сейчас и опишу. Мне так удобнее.

Для начала собираем стенд для припаивания ВЧ разъемов к плате приемника. Для этого прикручиваем пластину с отверстиями к профилю и вставляем плату с установленными разъемами на место. Это позволит нам избежать ошибок с перекосами, и как следствие не нужных нам механических напряжений на плате.

Вставляем и прихватываем разъемы сверху.

Далее начинаем монтаж SMD компонентов на плату. В принципе, на плате все подписано и компоненты из комплекта тоже, так что тут проблем возникнуть не должно. Единственный совет, будьте предельно аккуратны, поскольку компоненты идут с запасом в одну штуку, и потеря сразу двух каких-нибудь мелких компонентов может свести на нет всю работу.

После монтажа SMD монтируем USB разъем.

Основа почти готова, осталось только намотать трансформатор, индуктивности и установить плату приемника на ее законное место. С нее и начнем. Освобождаем плату приемника от разъемов.

И спаиваем в наши платы с обеих сторон.

Затем наматываем на оправке диаметром 5 мм две катушки по 8-10 витков.

И впаиваем их в плату.

Теперь пришло время для самого сложного. Это изготовление трансформатора и его монтаж.

Для этого необходимо взять обмоточный провод идущий в комплекте и сложить его втрое скрутив между собой. Так, чтобы получилась скрутка трех проводов одной длины. После этого наматываем этот тройной провод на ферритовое колечко, так, чтобы получилось около 9-10 витков.

При помощи тестера определяем начало и конец всех трех обмоток и помечаем их, например A, B, C и A1, B1, C1.

И самое сложное. Концы соединенных вместе обмоток С и В1 необходимо припаять к 4 и 5 ножкам микросхемы RTL2832U (Q branch). Как вариант, можно паяться и к ножкам 1 и 2 (I branch), это не принципиально.

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

Ну вот вроде бы и все. Можно упаковывать наш приемник в корпус.

Теперь необходимо все проверить. Для этого подключаем приемник через USB к компьютеру, устанавливаем драйвера и скачиваем SDRSharp. В общем, все как я уже описывал в статье « ». Если все установилось правильно и заработали водопад и спектр, пришло время испытать наше устройство.

Для прослушивания КВ диапазона нужно подключить антенну к соответствующему входу, а в программе SDRSharp выбирать прямое семплирование с порта Q !

Для прослушивания УКВ необходимо выбирать режим квадратурного семплирования и соответствующую антенну.

Испытания

Исследуем чувствительность приемника. Для исследования чувствительности, приемник был подключен к ноутбуку Asus R510C. Принимаемый сигнал снимался со встроенной звуковой карты. В качестве источника сигнала и анализатора использовался прибор Rohde&Schwarz CMS 52.

Параметры для SSB: Тон 1кГц. Режим демодуляции приемника USB, RTL-AGC – On. Чувствительность приемника при SINAD 12дБ

Параметры для AM: Тон 1кГц. Режим демодуляции приемника AM, глубина модуляции 80%. RTL-AGC – On. Чувствительность приемника при SINAD 10дБ

Параметры для FM: Тон 1кГц. Режим демодуляции приемника NFM, девиация частоты 2кГц. RTL-AGC – On. Чувствительность приемника при SINAD 12дБ

КВ вход

80 метров
Частота 3.600 МГц

  • USB: 22,78 мкВ
  • AM: 39,72 мкВ

40 метров
Частота 7.100 МГц

  • USB: 21,68 мкВ
  • AM: 38,81 мкВ

30 метров
Частота 10.130 МГц

  • USB: 26.98 мкВ
  • AM: 46,24 мкВ

20 метров
Частота 14.200 МГц

  • USB: 23,5 мкВ
  • AM: 35,11 мкВ

17 метров
Частота 18.120 МГц

  • USB: 20,7 мкВ
  • AM: 32,4 мкВ

15 метров
Частота 21.225 МГц

  • USB: 22,18 мкВ
  • AM: 32,77 мкВ

12 метров
Частота 24.940 МГц

  • USB: 17,42 мкВ
  • AM: 26,7 мкВ

Си-Би (11 метров)
Частота 27.200 МГц

  • USB: 49,26 мкВ
  • AM: 97,95 меВ
  • FM: 63,68 мкВ

10 метров
Частота 28.550 МГц

  • USB: 0,11 мВ
  • AM: 0,155 мВ
  • FM: 0,126 мВ

УКВ вход

12 метров
Частота 24.940 МГц

  • USB: 0,58 мкВ
  • AM: 0,64 мкВ

Си-Би (11 метров)
Частота 27.200 МГц

  • USB: 0,4 мкВ
  • AM: 0,67 мкВ
  • FM: 0,58 мкВ

10 метров
Частота 28.550 МГц

  • USB: 0,38 мкВ
  • FM: 0,5 мкВ

2 метра
Частота 145.000 МГц

  • FM: 0,51 мкВ

70 сантиметров
Частота 433.000 МГц

  • FM: 1,78 мкВ

30 сантиметров
Частота 900.000 МГц

  • FM: 1.45 мкВ

Выше измерить уже не смог, прибор позволяет работать только до 1ГГц. Вот собственно и все. Если есть вопросы, пишите, постараюсь ответить.

SDR приемопередающая техника, хотим мы этого или нет – прочно обосновалась в нашем быту в промышленных приемо-передающих устройствах. Принципы SDR используются в том или ином виде во всех беспроводных интерфейсах нашего мобильного телефона (даже FM-радио) и в прочих бытовых устройствах. Не являются исключением и базовые станции мобильных операторов, вещательные станции.

SDR means…

Software Defined Radio, что в вольном переводе означает Программно-определяемое радио

Почему именно SDR?

Ответ банален – значительно дешевле в изготовлении, настройке и эксплуатации. Радиотракт может содержать минимум намоточных деталей, а декодирование модулированного сигнала или его создание – возлагается целиком на цифровую и программную часть радиоустройства. Удобно, ибо всего лишь сменой управляющей программы в устройстве можно получить возможность создавать новые виды радиоизлучений, и декодировать новые виды принимаемых сигналов.

Всё началось с…

А если я хочу и передатчик?

Нет ничего проще. Устанавливаем второй коммутатор, разворачиваем операционные усилители наоборот, подключая их входы к выходу звуковой карты, и формируем сигнал для передачи тем же PowerSDR
Вот пример, позаимствованный у Александра UR4QBP из схемы его клона радиолюбительского трансивера SDR-1000

RTL-SDR – широко известное сочетание букв в среде радиолюбителей. Дешевые и доступные, можно сказать уже, народные SDR приемники из поднебесной несколько лет назад стали настоящим открытием для многих радиолюбителей. Куча народу потратило очень много времени и сил для того, чтобы реалтековский чип смог из обычного DVB-T приемника превратиться в полноценный сверхширокополосный SDR. И в этом обзоре я расскажу вам о следующей ступени эволюции этого приемника.

Я давно краем глаза поглядывал за тем, чем занимаются ребята из RTL-SDR.COM и таки сподобился заказать себе уже третью версию их свистка. О говорить бессмысленно, про него не писал только уже ленивый, а вот что нам могут предложить ребята из RTL-SDR? На мой взгляд, в их устройстве, на данный момент, реализованы все доработки которые были рождены и опробованы сообществом любителей RTL-SDR на практике. В итоге получилась классная игрушка как для начинающих, так и для продвинутых радиолюбителей. Пройдемся по основным пунктам отличающим этот приемник от конкурентов

Корпус

Ну, во-первых, это алюминиевый корпус, а не пластиковый, как на дешевых собратьях.

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

Корпус сделан из алюминиевого профиля и закрыт с двух сторон крышками, через которые с одной стороны выведен антенный разъем типа SMA который для жесткости закрепляется еще и гайкой.

А с другой стороны USB.

В целом, конструкция достаточно надежная. На мой взгляд, немного похабно выглядят саморезы которые крепят крышки корпуса, но это мелочи.

Внутри

Ребята из RTL-SDR.com сделали полностью свою, совершенно новую плату. В результате чего по утверждениям разработчиков удалось значительно снизить внутренние шумы схемы и уменьшить количество пораженных частот.

На плате, как и положено, разместились RTL2832U

И приемник от Rafael Micro R820T2. Все как у классического свистка. Но на этом сходство и заканчивается.

У нового девайса установлен термокомпенсированный опорный генератор от WTL на 28.8МГц расположенный в центре платы, что логично и правильно. К сожалению на офф. сайте WTL не смог найти описание на этот компонент, было бы интересно посмотреть на характеристики…

Для полного представления о новом приемнике проще всего посмотреть на схему которую я любезно позаимствовал .

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

А затем уже идет развязывающий трансформатор подключающийся непосредственно к RTL2832U.

Для питания микросхем приемника в RTL-SDR.com используют мощный малошумящий стабилизатор напряжения на AP2114. Для сравнения, в обычных «свистках» используется AMS1117.

Для питания активных антенн у RTL-SDR.com есть т.н. инжектор питания на 4.5 вольта, реализованный на отдельном переключателе (на фото обозначен стрелкой) который управляется непосредственно через интерфейс RTL2832U. На мой взгляд 4.5 вольта это как-то маловато, для питания, например, той же Mini-Whip, но это напряжение можно использовать, например как контрольное для включения/выключения схем управления питанием антенн. Здесь же по входу стоит диодная сборка BAV99. Это двадиода включенных встречно-параллельно, по сути, обычный диодный ограничитель защищающий чувствительный вход приемника (на фотографии A7W).

Также интересной особенностью является возможность масштабирования, например можно несколько приемников использовать одновременно для мониторинга разных диапазонов, при этом есть возможность подключения внешнего высокостабильного опорного генератора вместо встроенного TCXO, если он по какой-то причине Вас не устраивает. Для этого необходимо выполнить ряд манипуляций с паяльником, что для продвинутого радиолюбителя не является большой проблемой. Так же есть еще ряд интересных моментов, например на плату удобным образом выведены порты GPIO, CLK вход/выход опорного сигнала, 3,3 В, GND, I2C, которые также могут быть использованы продвинутыми радиолюбителями в своих целях.

SDRSharp

Здесь все как всегда, скачиваем SDRSharp с официального сайта , распаковываем в удобную для работы директорию, например: C:\SDRSharp и если раньше у Вас никогда не было в хозяйстве свистков на RTL2832, запускаем файл install-rtlsdr.bat который скачает нам драйвера и утилиту для их установки. Вставляем наш приемник в USB. Далее запускаем скачанный в ту же самую директорию файл zadig.exe и видим перед собой вот такое вот окно.

При этом, если вместо Bulk-In Interface (Interface 0) пустота, то проверьте, чтобы в меню Options стояла галочка List All Devices, далее в списке выбираем Bulk-In Interface (Interface 0) и жмем кнопку Install Driver. Собственно после установки можно запускать SDRSharp.exe, выбирать в списке приемников RTL-SDR (USB), и работать.

Прием КВ и УКВ

Для приема средних и коротких волн (500 кГц — 24 МГц) необходимо из режима квадратурного семплирования (Quadrature sampling) который используется для приема УКВ (24 МГц — 1200 МГц)

переключиться в режим прямого семплирования с порта Q branch (Direct sampling (Q branch)).

Испытания

Для изучения характеристик приемника использовался мой рабочий ноутбук Asus R510C. Принимаемый сигнал снимался со встроенной звуковой карты. В качестве источника сигнала и анализатора использовался прибор Rohde&Schwarz CMS 52. Увы, измерения удалось провести только до частоты 1ГГц, выше мой прибор уже не способен работать. Параметры при которых проводились измерения были выбраны такие же как при испытаниях приемника о котором я уже писал на страницах журнала.

Параметры для SSB: Тон 1кГц. Режим демодуляции приемника USB, RTL-AGC – On. Чувствительность приемника при SINAD 12дБ. Полоса приемника 3кГц.

Параметры для AM: Тон 1кГц. Режим демодуляции приемника AM, глубина модуляции 80%. RTL-AGC – On. Чувствительность приемника при SINAD 10дБ

Параметры для FM: Тон 1кГц. Режим демодуляции приемника NFM, девиация частоты 2кГц. RTL-AGC – On. Чувствительность приемника при SINAD 12дБ

Короткие волны (режим прямого сэмплирования (Q branch))

УКВ (режим квадратурного семплирования)

Как видно из результатов измерений предусилитель на КВ делает свое дело, и если у чувствительность была довольно низкая, то у девайса от RTL-SDR.com все в принципе не плохо. В режиме квадратурного сэмплирования немного удивила чувствительность на 12м-10м диапазонах, она не катастрофически низкая, но с трудом дотягивает до уровня не самой совершенной си-бишки, что наводит на размышления о том, что ребята разработчики несколько перемудрили с фильтром, для получения более высокой чувствительности придется немного подкорректировать номиналы элементов на входе в R820T. В остальном, чувствительность как на КВ, так и на УКВ отменная и заслуживает всяческих похвал.

Нагрев

В режиме квадратурного сэмплирования, когда устройство работает на полную мощность, корпус девайса достаточно сильно греется. Благодаря теплопроводящей прокладке, тепло с платы приемника передается на корпус и последний нагревается до достаточно больших температур, около 45 градусов по Цельсию.

RTL-SDR и другие ОС

Самое приятное для меня было в том, что приемник от RTL-SDR.COM, собственно как и другие аналогичные устройства на базе RTL2832U без проблем работают на моем стареньком MacBook. Просто скачиваем и устанавливаем CubicSDR, подключаем свисток в USB и у нас все готово для работы, никаких танцев с бубном не требуется.

Итог

А итог, надо сказать, весьма радостный. Всего за 20 долларов, да, да, всего за 20 долларов Вы получаете отличный гаджет для мониторинга как коротких, так и ультракоротких волн. Немного разочаровал фильтр на входе в R820T, но это не столь критично. В остальном RTL-SDR.com v.3 работает стабильно и без каких-либо проблем. Так что всем, кто все еще хочет попробовать и испытать на себе, что такое SDR, но по каким-то причинам сомневается, настоятельно рекомендую.

В этой статье я расскажу о том, как на базе отладочной платы DE0-nano сделать достаточно простой КВ SDR приёмник.
Пример принимаемых сигналов:

Про технологию SDR можно почитать . Вкратце - это методика приёма радиосигнала, в которой большой объем обработки информации производится в цифровом виде. Благодаря использованию ПЛИС и высокоскоростного АЦП, можно сделать приёмник, в котором даже перенос частоты «вниз» производится цифровым способом. Такой метод называется DDC (Digital Down Conversion), подробнее про него можно прочитать и . Используя эту методику, можно сильно упростить приёмник, в котором единственной аналоговой частью становится АЦП.

А теперь поподробнее о моем приёмнике.
Его основой является ПЛИС производства компании Altera, установленная на отладочной плате DE0-Nano. Плата относительно дешевая (60$ для студентов), правда, с достаточно дорогой доставкой (50$). Сейчас она становится все более популярной у радиолюбителей, начинающих знакомство с ПЛИС.
Главная задача ПЛИС - «захватить» цифровой сигнал с АЦП, перенести его в область низких частот, отфильтровать и отправить результат на компьютер. Структурная схема приёмника, реализованного мной, имеет такой вид:

Рассмотрим последовательно компоненты, которые проходит радиосигнал и цифровая информация.

Антенна

У радиолюбителей есть поговорка «Хорошая антенна - лучший усилитель». Действительно, от антенны зависит очень многое. Большинство наиболее интересных сигналов на коротких волнах нельзя принять на простую антенну (например, на кусок провода). За городом особых проблем нет - достаточно длинный провод может работать хорошей антенной (на приём). В городе, особенно внутри крупных железобетонных домов все значительно хуже - длинную антенну не растянуть, при этом мешающих шумов очень много (бытовые приборы способны создавать в эфире очень большой уровень шума), так что выбор антенны становится непростым делом.
Для приёма радиосигналов я пользуюсь активной рамочной антенной, конструкция которой описана .
Моя антенна выглядит так:

Фактически антенна представляет собой большой колебательный контур (конденсатор находится внутри коробки на столе). Установлена она на балконе, и достаточно неплохо работает. Основное достоинство рамочной антенны - за счет использования явления резонанса она позволяет подавлять шумы на неиспользуемых частотах, однако есть и недостаток - при переходе с одного диапазона частот на другой антенну нужно перестраивать.

АЦП

Выбор АЦП тоже непрост. АЦП должен обладать большой разрядностью для повышения динамического диапазона, а для DDC приёмника - еще и высоким быстродействием. Обычно в хорошие DDC приёмники ставят АЦП с разрядностью 16-бит и быстродействием >50 MSPS. Однако стоимость таких АЦП больше 50$, и в экспериментальную конструкцию хотелось поставить что-нибудь попроще.
Я выбрал AD9200 - 10-битный 20 MSPS АЦП стоимостью 200 руб. Это очень посредственные характеристики для DDC приёмника, однако, как показала практика, АЦП вполне пригоден для приёма сигналов.
АЦП установлен на отдельной плате, которая вставляется в отладочную:

Снизу плата металлизирована, слой металла соединен с землей АЦП, что тоже защищает от помех.

Схема подключения АЦП


Опыта разводки ВЧ конструкций у меня нет, так что возможно, что схему и разводку можно улучшить.


Так как АЦП оцифровывает только сигналы положительного уровня, а сигнал с антенны биполярный, то сигнал приходится смещать на половину опорного напряжения (для этого служат резисторы R1 и R2). Искусственно созданная постоянная составляющая затем вычитается уже из цифрового сигнала в ПЛИС.

Вся дальнейшая обработка сигнала после АЦП идет в ПЛИС.
Поток данных с АЦП составляет 200 Мбит (10-bit x 20 MSPS). Передать такой поток напрямую в компьютер, а потом его еще и обработать очень сложно, поэтому частоту сигнала нужно специально понизить. При переносе на более низкую частоту возникает явление «зеркального канала», для борьбы с которым используют квадратурное преобразование частоты - сигнал преобразовывают в комплексную форму (происходит разделение на два канала I/Q). Перенос на более низкую частоту производится путем умножения исходного сигнала на сигнал генератора. В используемой ПЛИС достаточно аппаратных умножителей, так что это не представляет проблемы.

NCO

Для того, чтобы переносить входной сигнал на нужную частоту, ее нужно создать. Для этого используется готовый компонент Quartus - NCO (numerically controlled oscillator). На генератор подается тактовая частота, такая же как и у АЦП (20 МГц), на его вход управления подается значение, определяющее частоту, и на его выходе формируется цифровой синусоидальный сигнал нужной частоты, дискретизованный с частотой 20 МГц. NCO способен параллельно формировать и косинусный сигнал, благодаря чему можно формировать квадратурный сигнал.

CIC-фильтр

После смешивания с сигналом генератора с выхода умножителей сигнал выходит уже перенесенный на более низкую частоту, но все еще с высокой частотой дискретизации (20 MSPS). Сигнал требуется децимировать , то есть отбросить часть выборок. Просто так отбросить лишние выборки нельзя, так как это приведет к искажению выходного сигнала. Поэтому сигнал нужно пропустить через специальный фильтр (CIC-фильтр). В данном случае я хотел получить на выходе приёмника частоту дискретизации сигнала 50 кГц. Из этого следует, что частота должна быть понижена в (20e6 / 50e3 = 400) раз. Децимацию придется производить в 2 этапа - сначала в 200, затем в 2 раза.
Первый этап выполняет именно CIC-фильтр. Я использовал 5-каскадный фильтр.
В результате работы CIC-фильтр за счет понижения полосы сигнала разрядность выходного сигнала увеличивается. С своем приёмнике я искусственно ограничил ее 16 битами.
Так как каналов в приёмнике два, то и фильтров потребуется тоже два.
К сожалению, CIC-фильтр имеет довольно крутую АЧХ, стремящуюся к 0 при приближении к выходной частоте дискретизации (100 кГц). Для компенсации ее кривизны служит следующий фильтр.

Компенсационный FIR-фильтр

Этот фильтр нужен для того, чтобы компенсировать спад АЧХ CIC-фильтра и выполнить еще один этап децимации (в два раза). В Altera уже позаботились о методике расчета этого фильтра - при создании CIC-фильтра автоматически формируется программа для Matlab, запустив которую, можно сформировать коэффициенты для компенсационного фильтра.
Вид АЧХ CIC, FIR и получающегося результата (графики строит та же программа для Matlab):


Видно, что на частоте 25 кГц CIC-фильтр ослабит сигнал на 20 Дб, что очень много, однако с использованием FIR-фильтра ослабление всего 10 Дб, а на более низких частотах ослабление практически отсутствует.
На выходе FIR-фильтра с учетом децимации будет частота дискретизации сигнала будет 50 кГц.
Почему нельзя сразу было произвести децимацию сигнала в 400 раз? Это связано с тем, что частота среза FIR-фильтра должна составлять 1/4 от его выходной. В данном случае частота дискретизации на выходе фильтра без децимации, как и на его входе, составляет 100 кГц. В результате этого частота среза будет как раз 25 кГц, что и видно на графиках выше.
Оба фильтра являются готовыми компонентами Quartus.

Передача данных на компьютер

Полученный поток данных ((16+16)bit x 50 KSPS = 1.6 Mbit) нужно передать на компьютер. Данные я решил передавать через Ethernet. На отладочной плате нет такого интерфейса. Наиболее правильно было бы сделать отдельную плату с контроллером PHY, запустить soft-процессор Nios, и передавать данные через них. Однако это значительно усложняет конструкцию. Я пошел более простым путем - Ethernet пакеты можно формировать на самой ПЛИС, таким образом можно передавать данные со скоростью 10 Mbit. В данном случае Ethernet кабель через разделительный трансформатор соединяется с выводами ПЛИС. Проекты с таким принципом работы можно посмотреть и .
В качестве основы я выбрал первый проект, частично его доработав. В изначальном проекте ПЛИС посылает на компьютер с заданным IP и MAC адресом определенный UDP-пакет. После переделки модуль Ethernet передатчика мог передавать 1024 байта, считывая их из RAM. В результате на компьютер в одном пакете отправляются 256 пар 16-битных значений сигнала, взятого с выходов фильтров. Так как данные поступают от АЦП непрерывно, а отправлять их на компьютер нужно пакетами, то пришлось реализовать двойную буферизацию памяти - в то время, пока одна RAM заполняется, данные из другой RAM передаются по Ethernet. После того, как первая RAM заполнится, обе RAM «меняются местами», за что отвечает довольно простой управляющий модуль.
Так как на выходе фильтров данные передаются потоком из пары 16 битных величин, а по Ethernet передаются отдельные байты, то для преобразования потоков в конструкцию введен модуль, который преобразует поток 32 бит 50 KSPS в 8 бит 200 KSPS.

Как оказалось, если передавать поток данных со скоростью 1.6 Mbit, то устройство, к которому подключен приёмник, даже не обнаруживает его (нет линка). Это связано с тем, что пакеты данных при этом передаются с периодом примерно 5 мс, а для того, чтобы сообщить другому сетевому устройству скорость подключения (10 Mbit), нужно каждые 8-24 мс передавать специальный короткий импульс (NLP). Из-за высокой частоты передачи пакетов, модуль Ethernet не успевает передавать эти импульсы, и Autonegotiation не происходит.
Поэтому, для того, чтобы противоположное устройство все же могло определить скорость соединения, достаточно при включении приёмника временно уменьшить частоту передачи пакетов (у меня - в 4 раза), благодаря чему модуль Ethernet успевает передать импульсы NLP.

Приём данных от компьютера

Для того, чтобы управлять приёмником (устанавливать частоту настройки), на него нужно передавать определенную величину, которая будет использоваться для задания частоты NCO.
Для приёма этой величины так же используется компонент с вышеуказанного сайта, модифицированный для приёма данных, и выдачи их в виде 24 битного числа. Так как модули приёмника и передатчика никак не связаны друг с другом, то реализовать ARP нельзя, и фактически это значит, что приёмник не будет иметь IP и MAC адреса. Передать информацию на него можно, если отправить в сеть широковещательный пакет.
Физически, как и в случае с передатчиком, сетевой провод соединяется с отладочной платой через трансформатор. Однако здесь уже нельзя подключаться к произвольным выводам ПЛИС, так как сигнал достаточно мал. Нужно использовать выводы, поддерживающие интерфейс LVDS - он является дифференциальным.

Ресурсы, используемые программой ПЛИС:
- 5006 LE
- 68 9-bit умножителей (64 из них используются в FIR -фильтре).
- 16,826 bit памяти (8 блоков M9K).

Вид проекта проекта в Quartus:

Обработка данных на компьютере

После того, как компьютер принял данные, их нужно обработать. Лучше всего взять готовую программу. Обычно в SDR программах реализовывают нужные цифровые фильтры, алгоритмы, предназначенные для формирования звука и его фильтрацию, БПФ принятого сигнала, построение его спектра и «водопада».
Я использую программы HDSDR и SDRSharp, они обе поддерживают ввод данных при помощи одинаковых библиотек ExtIO (формат программы Winrad). Требования программ к библиотеке хорошо документированы .
Вот есть пример создания такой библиотеки. Я переделал этот пример, добавил в него приём данных из сети, склеивание двух пакетов (программа за раз приминает минимум 512 пар I/Q выборок), отправку их в программу, и передачу широковещательного пакета с вычисленным значением для NCO при смене частоты в программе. До этого мне никогда не приходилось создавать библиотеки, да и в C++ я не силен, так что в библиотека может быть написана совсем не оптимально.
Так как частота дискретизации I/Q сигналов на выходе фильтров приёмника составляет 50 кГц, то в программе при приёме для обзора будет доступна полоса 50 кГЦ. (± 25 кГц от частоты, формируемой NCO).

Собранный приёмник выглядит так:


Резистор соединяет средние точки трансформатора с 3.3 В платы - это улучшает приём и передачу данных по сети.

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

Блок питания обеспечивает напряжение 12 В для питания усилителя антенны, в металлической круглой коробке находятся несколько диапазонных полосовых фильтров, которые снижают внедиапазонные сигналы, что улучшает прим сигналов. Отмечу, что во многих случаях приём возможен и без ДПФ.

Теперь о том, что же удается принять на КВ. Несмотря на достаточно высокий уровень шумов, удается принять достаточно много сигналов, хорошо принимаются вещательные радиостанции, неплохо принимаются радиолюбители.
Пример приема сигналов в программе HDSDR (приём велся во время CQ WW DX Contest):


Видео приёма:

Удается принять сигналы WSPRnet. WSPRnet - сеть радиолюбительских маяков, которые автоматически обмениваются короткими сообщениями друг с другом. Данные от маяков автоматически публикуются в интернете. В данном случае, установив специальную программу, можно декодировать принятые сигналы и отправлять их в сеть. На сайте есть возможность посмотреть карту, на которой показываются связи между маяками за определенный интервал времени.
Вот что получилось у меня за полдня приема:


Важная особенность WSPR - очень маленькая мощность передатчиков (меньше 5 Вт), узкая полоса передаваемого сигнала, и большая длительность передачи одного сообщения (2 мин). Благодаря цифровой обработке в программе-декодере удается принимать очень слабые сигналы. Мне удавалось принять сигнал маяка мощностью 100 мВт, находящегося на расстоянии ~2000 км.

Радиолюбители, работающие с использованием JT65. JT65 - это один из протоколов цифровой связи между радиолюбителями. Как и в WSPR, в нем используются маленькие мощности и длительные передачи (1 мин). Принимаются сообщения автоматически, так что можно оставить приемник на длительное время, а потом смотреть, кого удалось принять.
Пример приема:

Цифровое радиовещание (DRM). Некоторые вещательные радиостанции передают звук в цифровом виде. Принять такие сигналы непросто в условиях города - не хватает уровня сигнала. Одну станцию принять удалось:

Существует множество других радиосигналов, которые было бы интересно принять. Есть еще погодные факсы, станция точного времени RBU (на чудной частоте 66.6 кГц), и другие.

Теги:

  • SDR
  • DDC
  • ПЛИС
  • FPGA
  • DE0-Nano
Добавить метки