RTL-SDR

Новая библиотека на языке C для алгоритма программной автоматической регулировки усиления для RTL-SDR и других SDR

Спасибо Chris Gianakopoulos за то, что написал нам и поделился выпуском своей библиотеки AGC с открытым исходным кодом, реализованной на языке C. Библиотека не зависит от аппаратного обеспечения и разработана так, чтобы программистам было легко внедрять алгоритм AGC в их программы. Библиотека AGC может автоматически оптимизировать отношение сигнал-шум (SNR) на SDR с регулируемыми усилителями (VGA). Крис объясняет:

Я преобразовал свой программный AGC в код на C со следующими улучшениями:

1. Он не привязан к конкретной радиосистеме.
2. Он написан на языке C, чтобы его могли использовать как приложения на C, так и на C++.
3. Приложение предоставляет две функции обратного вызова: одну — для предоставления текущего значения усиления усилителя, и другую — для установки усиления.
4. В качестве входа в алгоритм AGC подается величина сигнала.
5. Среди прочего — количество бит, используемое для представления величины сигнала, задаётся во время инициализации.

Для получения более подробной информации репозиторий находится по адресу,

https://github.com/wizardyesterday/AutomaticGainControl

Я успешно интегрировал этот AGC в тестовую версию радиодиагностики, находящуюся по адресу

https://github.com/wizardyesterday/RtlSdrWork_agc

—–

Автоматическая регулировка усиления (AGC) — это система обратной связи, которая регулирует коэффициент усиления вариабельного усилителя (VGA) для поддержания рабочей точки, такой как уровень напряжения, уровень тока или, в случае цифрового радиоприёмника, величина сигнала, подаваемого на AGC. Обычно в качестве входа в AGC используется среднее значение величины блока данных, что обеспечивает сглаживание входа, подаваемого на AGC.

Была предпринята попытка точной реализации того, что описано в статье (Фред Харрис и Грегори Смит) в каталоге doc/papers/. Подробности по проектированию и реализации см. в этой статье.

Он далее продолжает объяснять, почему программная AGC полезна:

Моя мотивация создать AGC заключалась в том, чтобы дать людям возможность запускать SDR-программное обеспечение на радиоустройствах, которые содержат A/D-конверторы, выдающие 8-битные выходные образцы. При диапазоне примерно 48 дБ (теоретически, без учета потерь реализации) в радиосреде с резко различающимися уровнями сигнала не остается много пространства для манёвра.

С усилителем, выход которого подаётся на A/D-конвертор на rtl-sdr, когда я слушал частоты самолётов, я слышал сильные тоны, когда принимался сильный сигнал. Решение заключалось в снижении усиления LNA и усилителя смесителя.

Я задался вопросом: зачем снижать чувствительность фронтенда, если перегрузка сигнала не происходила на входе переменного усилителя? Это была перегрузка A/D-конвертора!

С AGC пользователь может установить безопасную рабочую точку, которая обеспечивает запас по динамике и позволяет избежать перегрузки при появлении сильного сигнала. Когда сигнал исчезает, усиление увеличивается, чтобы вы могли услышать слабые сигналы.

Надеемся, что разработчики SDR-программного обеспечения увидят это и внедрят это в своё программное обеспечение!


Источник:

Подбираете SDR под задачу?

Опишите, что и где хотите принимать, — подскажем подходящие модели и где их купить.

Похожие материалы

Весь блог