PySDR: Посібник із SDR та DSP з використанням Python
автор — Dr. Marc Lichtman — pysdr@vt.edu
Ласкаво просимо до PySDR — безкоштовного онлайн-підручника (це не бібліотека Python!), який надає доступне введення до бездротового зв’язку та програмно-визначеного радіо (SDR), використовуючи безліч діаграм, анімацій і прикладів коду на Python. Від ШПФ і фільтрів до цифрової модуляції, а також приймання та передавання з SDR у Python — PySDR допоможе вам у всьому!
Мета PySDR — зробити доступнішими теми, які традиційно подаються з великою математичною складовою і лише в обмеженій кількості університетів. Увесь вміст, що використовується для створення PySDR, має відкритий код і доступний тут.
Див. Розділ 1: Вступ, щоб дізнатися про призначення підручника та його цільову аудиторію.
Щоб швидко відчути, що таке обробка РЧ-сигналів, спробуйте погратися з наведеною нижче симуляцією, яка показує частотну та часову області сигналу, що складається з тону та білого гаусового шуму.
Розгорнути повний зміст
- 1. Вступ
- 2. Частотна область
- 3. Вибірка IQ
- Основи вибірки
- Вибірка Найквіста
- Квадратурна дискретизація
- Комплексні числа
- Комплексні числа у ШПФ
- Сторона приймача
- Перетворення носія і понижуючий коефіцієнт
- Архітектура приймачів
- Сигнали основної та смугових частот
- Налаштування стрибкоподібного та зміщеного постійного струму
- Семплірування за допомогою нашого SDR
- Обчислення середньої потужності
- Обчислення спектральної щільності потужності
- Подальше читання
- 4. Цифрова модуляція
- 5. PlutoSDR на Python
- 6. USRP на Python
- 7. BladeRF у Python
- 8. RTL-SDR у Python
- 9. HackRF One у Python
- 10. Шум і випадкові величини
- 11. Фільтри
- 12. Розрахунок бюджету лінії зв’язку
- 13. Канальне кодування
- 14. IQ файли та SigMF
- 15. Багатопроменеві завмирання
- 16. Pulse Shaping
- 17. Синхронізація
- 18. Приклад повної реалізації
- Знайомство з FM-радіо та RDS
- Сигнал RDS
- Отримання сигналу
- FM-демодуляція
- Зсув частоти
- Фільтрація для виділення RDS
- Децимація на 10
- Перевиділення до 19 кГц
- Синхронізація в часі (рівень символів)
- Точна частотна синхронізація
- Демодуляція BPSK
- Диференціальне декодування
- Декодування RDS
- Розбір RDS
- Підсумок та фінальний код
- Подяки
- Додаткові матеріали
- 19. Формування променя та DOA
- Огляд формування променя
- Огляд пеленгації (DOA)
- Типи решіток
- Вимоги до SDR
- Вступ до матричної математики в Python/NumPy
- Вектор спрямування (Steering Vector)
- Прийом сигналу
- Звичайне формування променя та DOA
- Неоднозначність 180 градусів
- Діаграма спрямованості (Beam Pattern)
- Ширина променя решітки (Array Beamwidth)
- Коли d не дорівнює λ/2
- Просторове зважування (Spatial Tapering)
- Ручна зміна ваг (Manually Changing Weights)
- Адаптивне формування променя (Adaptive Beamforming)
- MVDR/Формувач променя Капона (MVDR/Capon Beamformer)
- Коваріаційна матриця (Covariance Matrix)
- LCMV-формувач променя (LCMV Beamformer)
- Керування нулями (Null Steering)
- MUSIC
- Root MUSIC
- LMS
- Тренувальні дані (Training Data)
- Моделювання широкосмугових перешкод (Simulating Wideband Interferers)
- Кругові решітки (Circular Arrays)
- Висновки та список використаної літератури
- 20. 2D формування променя
- 21. Практична робота з Phaser
- 22. Циклічно-стаціонарна обробка
- Вступ
- Огляд функції автокореляції
- Циклічна автокореляційна функція (Cyclic Autocorrelation Function CAF)
- Спектральна кореляційна функція (Spectral Correlation Function SCF)
- Метод частотного згладжування (Frequency Smoothing Method FSM)
- Метод часового згладжування (Time Smoothing Method TSM)
- SNR та кількість символів
- QPSK та модуляції вищих порядків
- Кілька сигналів, що перекриваються
- Альтернативні ознаки CSP
- Функція спектральної когерентності (Spectral Coherence Function COH)
- Спряжені варіанти
- Метод накопичення FFT (FAM)
- OFDM
- Виявлення сигналів із відомою циклічною частотою
- Зовнішні ресурси
- 23. Графічні інтерфейси реального часу з PyQt
- Вступ
- Огляд Qt
- Базова структура застосунку
- Застосунок із робочим потоком
- Сигнали та слоти
- PyQtGraph
- Лейаути
QPushButtonQSliderQComboBox- Лямбда-функції
- PlotWidget із PyQtGraph
- ImageItem із PyQtGraph
- Робочий потік
- Сигнали PyQt
- Слоти робочого потоку
- Функція run() робочого потоку
- Повний код фінального прикладу
- 24. Виявлення за допомогою кореляції
- 25. Аналогові відеосигнали FPV
- 26. TDOA
- Вступ
- Геометрія TDOA
- Модель сигналу та вимірювань
- Оцінювання часової затримки: вимірювальний тракт
- Алгоритми локалізації в замкненій формі
- Ітеративне та статистичне оцінювання
- Повний перебір із тепловою картою
- Аналіз характеристик і фундаментальні межі
- Практичні проблеми реальних систем
- Додаткові теми
- 27. Про автора