Идея software defined radio базируется на двух китах:

Передача широкополосного сигнала с радиоприемника в компьютер. Ширина обрабатываемой полосы может быть от 48КГц (звуковая карта ПК) до 50МГц (сверхбыстрый АЦП с передачей сигнала по Gigabit Ethernet или USB3.0).
Демодуляция сигнала — все то, что «обычный» радиоприемник (AM, FM, фильтры и пр) делает в «железе» — в SDR делается на компьютере, математическими алгоритмами. Сам радиоприемник конечно, все равно нужен, но только его «половина» — та часть, которая собственно принимает радиосигнал.

Как подсказали в комментариях, SDR в принципе может работать и автономно, без ПК, если вся «математика» делается прямо в устройстве. Однако это скорее экзотика, так что мы будем рассматривать приемники «обычные». Хотя последнее время новые модели приемников и трансиверов стали делаться по принципу SDR, что конечно радует.

Назвать точную дату, когда в продаже появились первые SDR-приемники, довольно сложно. Сама идея оцифровки радиосигналов звуковой картой существовала довольно давно — так например, декодировали RTTY или пейджинговые сообщения, но не было подходящих алгоритмов, чтобы объединить все это вместе.

Первая версия Winrad датируется 2007 годом, и выглядела она примерно так (можно обратить внимание на системные требования :)

Как можно видеть, интерфейс весьма минималистичный, но программа уже умела воспроизводить AM, FM, USB и LSB, и показывать спектр сигнала. По сравнению с шириной полосы обычного выхода для наушников любого приемника это был… ну почти прорыв. Разумеется, в проф. системах панорамные приставки существовали и раньше, но «простым смертным» оно было практически недоступно, а звуковая карта у каждого в ПК и так есть.

Типичным бюджетным решением для радиолюбителей были приемники Softrock — однодиапазонные приемники, содержание переключаемый кварц, смеситель и выход на звуковую карту.

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

Стали появляться и профессиональные решения, тогда же в 2010 появился Perseus SDR — приемник с 14-битным DDC АЦП, частотным диапазоном 10КГц-30МГц и шириной полосы пропускания 1.6МГц (в принципе, параметры вполне достаточные и на сегодня).

Цена приемника составляла 825Евро, что для тех лет было не так уж мало.

Кстати, страница http://microtelecom.it/perseus/ существует до сих пор, и на ней также висят скриншоты под XP, хотя продается приемник или нет, непонятно.

Начало было положено, дальше уже как говорится, дело техники — стали появляться разные модели, чипы стали дешеветь и так далее. Следующим прорывом в любительской технике стало появление приемника на чипе rtl-sdr. Сообщение с форума radioscanner за 2012 год можно процитировать дословно, как говорится, не убавить, не прибавить:

Оказалось, что DVB донглы на базе чипа Realtek RTL2832U, рекламируемые иногда также как поддерживающие FM, DAB(+), способны передавать на компьютер поток 8ми битных квадратур при частоте дискретизации около 3-х MSPS.

Принимаемый диапазон ограничивается использованным в определенной модели донгла тюнером, например у Elonics E4000 от 64 до 1700 МГц. Этот тюнер используется также в FunCube донгле, только с дополнительным МШУ.

По этому поводу основан проект. Уже успешно были приняты TETRA (~430 МГц) и сигналы спутника Турaйя (~1550 МГц), что для 8-ми битных квадратур весьма и весьма неплохо.

В общем, как оказалось, дешевые USB-ТВ приемники ценой 10-20$ после замены драйвера могут отдавать IQ-поток, что позволяет использовать их с уже существующим программным обеспечением для SDR. Сами приемники выглядели вот так:

Первые 1-2 года толку от rtl-sdr было довольно мало — под них просто не было интересного софта. Потом появился SDR#, разные плагины, стало расти сообщество энтузиастов, и сейчас rtl-sdr наверное самый популярный (прежде всего, в силу цены) SDR-приемник. Современные версии RTL SDR V3 умеют принимать уже и КВ (хотя и с небольшой чувствительностью и динамикой), но при цене в 30$ и это весьма неплохо. Как работает RTL SDR на КВ, можно посмотреть на видео.

Виды SDR

Существующие SDR можно разделить на 3 вида:

— Уже устаревшие модели на базе звуковой карты — оцифровка сигнала в них происходит в ПК, а сигнал передается на линейный вход по аудиокабелю. Сейчас они давно сняты с производства, но иногда могут появиться на барахолке. Брать по большому счету, смысла никакого, разве что отдадут даром — цена хорошей звуковой карты превысит цену самого SDR. Интересующиеся «цифровой археологией» могут почитать сообщения на cqham за 2010 год о выборе звуковой карты для SDR.

— SDR, имеющие встроенный АЦП и передающие сигналы в ПК в цифровом формате. Это большинство современных устройств среднего ценового диапазона. Они построены по принципу гетеродинного приема, только после переноса частоты вместо НЧ-блока стоит АЦП. Такие приемники имеют ширину полосы пропускания от 2 до 10МГц, есть разные модели на разные частоты и диапазоны (rtl sdr, SDRPlay, Airspy). Недостаток любого супергетеродинного приемника — наличие зеркальных каналов приема — поскольку фильтры неидеальны, станции принимаются там где реально их нет. Даже если фильтры более-менее неплохие, сигналы мощных станций все равно могут «пролезать» и воспроизводиться в виде помех.

— DDC (direct down conversion) SDR. Это самая современная технология на сегодняшний день. Суть в том, что гетеродин здесь не нужен — сверхбыстрый АЦП с частотой оцифровки порядка 100млн семплов/с оцифровывает непосредственно входной сигнал с эфира, что позволяет (согласно теореме Котельникова/Шеннона) иметь прием до частоты, равной половине частоты дискретизации, т.е. в нашем примере до 50МГц. Битовый поток желающие могут прикинуть самостоятельно — на компьютер оно разумеется, не передается, а обрабатывается в быстродействующей ПЛИС прямо на плате, и нужная полоса (обычно до 6МГц) передается в компьютер. Такой приемник не имеет зеркальных каналов, и в нем все хорошо (кроме цены:).

Верхний предел частоты DDC-приемников обычно ограничен 30-50МГц, т.к. более быстродействующих АЦП в продаже либо нет, либо они стоят космических денег (кстати, сверхбыстрые АЦП вроде попадают в американские ограничения по поставке высокотехнологичных электронных компонентов в страны третьего мира, но это не точно). Их самого топового, что доводилось видеть в прайсах — Flex 6600 с 16bit 245.76Msps АЦП стоит порядка 4000$, т.е. им можно принимать в режиме DDC до частоты 122МГц. Вряд ли мы в скором времени увидим DDC-приемники до гигагерца, хотя хотелось бы. Есть ли что-то быстрее, например для военки — наверно есть, кто знает, напишите в комментариях.

Другой важный параметр — тип подключения. Большинство SDR подключаются по USB, но есть модели и с LAN-портом (Afedri, Colibri):

Это может быть удобно для организации удаленного приема или передачи — приемник или трансивер можно разместить на даче/в деревне, и использовать его из города. KiwiSDR делает даже готовые устройства, зайти на которое можно непосредственно через web-интерфейс. Свой приемник владельцы KiwiSDR даже могут «расшарить» другим, посмотреть список доступных устройств можно на https://sdr.hu.

Последний, но не менее важный параметр — разрядность АЦП. Дешевые RTL SDR имеют всего 8бит АЦП, и этого мало, приемник легко перегружается сильными сигналами, ему крайне желателен аттенюатор и преселектор. SDRPlay имеют 12-бит АЦП, более дорогие модели имеют 14-бит, что достаточно для большинства случаев. Топовыми являются 16-бит АЦП, и в принципе, не каждая антенна способна выдавать диапазон сигналов, способных перегрузить такой приемник.

И наконец, о ценах. Их диапазон весьма варьируется, от 30$ за RTL SDR v3, 150$ за SDRPlay RSP2 до 600$ за ELAD FDM-S2. SDR-трансиверы (способные работать не только на прием, но и на передачу) дороже, SunSDR2 стоит порядка 1500$, FLEX-6400 стоит 2000$.

Отдельно стоит упомянуть платы для цифровой обработки сигналов. Это например, HackRF, LimeSDR, USRP, Red Pitaya. Эти устройства изначально предназначались для опытов с радиосигналами в пределах «рабочего стола», и на дальний прием просто не рассчитаны — ни регулируемого усилителя, ни аттенюатора, ни фильтров в схеме зачастую просто нет. Ловить что-то они будут, но весьма плохо, либо потребуется «доработка напильником». Они также могут работать на передачу, но с мощностью порядка 100мВт (где «м» это милли а не мега;), и зачастую никакого софта кроме пары DLL и SDK для них просто нет.