Динамический диапазон rtl-sdr

Ниже я сделал перевод одной замечательной заметки Mile Kokotov о динамическом диапазоне rtl-sdr. Это очень важный показатель, которым я заинтересовался и решил разобраться. Возможно кому-нибудь это тоже будет полезно.

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

Перегрузка приёмника означает то, что он больше не является линейным и сам по себе начинает генерировать сигналы, добавляя шум. Очень сильные сигналы на входе приёмника делают его менее чувствительным, таким образом он больше не может принимать слабые сигналы до тех пор, пока существует сильный сигнал рядом. Не стоит забывать, что на вход приёмнику приходят все сигналы, несмотря на то, что нам нужен только один конкретный. Соответственно, чем шире полоса приёма, тем больше нужен динамический диапазон для того, чтобы избежать перегрузки.

Качество sdr приёмника зависит от множества факторов. И одним из наиболее важных параметров, которые напрямую влияют на качество sdr приёмника, является его динамический диапазон.

Что же такое “динамический диапазон”?

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

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

В sdr уровень аналогового сигнала, поступающего в АЦП, может быть отрегулирован (вручную или с помощью АРУ) для того, чтобы максимально эффективно использовать доступный динамический диапазон.

Если аналоговый сигнал слишком сильный, то его нельзя представить соответствующими значениями битов. В таком случае АЦП подставляет максимальное или минимальное значение. Это называется отсечение и с точки зрения обработки сигналов представляет собой форму нелинейного сигнала. При этом появляются фантомные сигналы, которые копируют оригинальный на различных частотах.

Если аналоговый сигнал слишком слабый, то его присутствие не сможет дать даже одного бита выходного цифрового сигнала. На практике же, более грубое представление цифрового сигнала приводит к потере информации. Эту ситуацию называют шумом квантования.

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

Самый сильный сигнал представляет собой максимальный входящий сигнал. Обычно 0dBFS (dBFS означает децибел по отношению к максимальному уровню) - это максимально возможный цифровой сигнал. При этом более слабые сигналы становятся отрицательными. Например, минимальный уровень шума может быть -60dBFS, -80dBFS, -100 dBFS в зависимости от качества sdr приёмника и соотношения сигнал/шум.

Динамический диапазон SDR зависит от количества бит согласно формуле:

$$ SQNR = 20\log_{10}(2^n\sqrt{\dfrac{3}{2}}) $$

Где n - количество бит, SQNR - динамический диапазон.

Согласно формуле динамический диапазон АЦП 8 бит равен ~50dB, 12 бит 74dB и 16 бит 98dB.

Почему же динамический диапазон важен для SDR?

Кто-то может подумать, что достаточно иметь АРУ (автоматическая регулировка усиления), которая поддерживает входной сигнал на необходимом уровне и, поэтому не нужен большой динамический диапазон. Это может сработать, но не стоит забывать что sdr приёмник получает сигнал на АЦП гораздо большей ширины, нежели необходимо. Дополнительная ширина сигнала позволяет получить спектограмму всей доступной полосы частот, но это так же значит, что на АЦП попадает множество энергии, в том числе и от нежелательных частот. Эти частоты могут быть достаточно сильными по сравнению с сигналом, который необходимо получить.

В таком случае, уровень усиления должен быть равен суммарной мощности всего радио сигнала поступающего на АЦП. Это решит проблему “слишком сильного” сигнала, при этом самый слабый сигнал будет определяться динамическим диапазоном. Тем не менее при большом динамическом диапазоне шум квантирования уменьшается, позволяя принимать слабые узкополосные сигналы.

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

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

Ограничения динамического диапазона

Помимо количества бит АЦП, динамический диапазон может зависеть от шума и фантомных сигналов.

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

Динамический диапазон системы должен быть больше соотношения сигнал/шум. Если же он меньше, то входящий сигнал будет искажён приёмником, и узким местом такой системы будет мощность усилителя.

Фантомные сигналы намного более опасны, чем шум. Они имеют гораздо большую амплитуду нежели шум и она не зависит от выбранной полосы пропускания. Эти сигналы появляются в результате нелинейности АЦП. SFDR для АЦП определяется как отношение RMS амплитуды сигнала к RMS амплитуды самого большего фантомного сигнала. SFDR представлен на картинке ниже:

SFDR

Использование децимации

Есть некоторое заблуждение связанное с динамическим диапазоном широкополосных АЦП. Оно заключается в том, что АЦП работающее на 20МГц с динамическим диапазоном 74dB не может быть лучше радиоприёмника с динамическим диапазоном 85dB. Проблема в том, что сравнивается белое с пушистым. Нельзя говорить о динамическом диапазоне не упоминая ширину канала. Для радиолюбительского радио - это ширина приёмника. Она может быть 2400Гц для SSB или 500Гц для морзе.

На самом деле в некоторых sdr приёмниках используется децимация. Процесс децимации заключается в том, что цифровой сигнал, полученный с гораздо большей частотой дискретизации, уменьшается до интересующей частоты дискретизации. В результате динамический диапазон увеличивается за счёт “усиления обработки”. Усиление достигается за счёт того, что удаляется шум вне интересующей полосы частот, тем самым увеличивая соотношение сигнал/шум.

Например, Если взять 12-битный АЦП, работающий с частотой дискретизации 10МГц, то с помощью децимации можно увеличивать динамический диапазон на 3dB при каждом увеличении децимации в 2 раза:

Децимация alias-free bandwidth (Mhz) Увеличение (dB) Динамический диапазон (dB)
0 8 0 74
2 4 3 77
4 2 6 80
8 1 9 83
16 0.5 12 86
32 0.25 15 89
64 0.125 18 92