1. Вступ

Мета та цільова аудиторія

Перш за все, кілька важливих термінів:

Програмно-визначене радіо (SDR):
Як концепція, це використання програмного забезпечення для виконання завдань обробки сигналів, які традиційно виконувалися

апаратними засобами та пов’язані з радіо/RF застосунками. Це програмне забезпечення може працювати на комп’ютері загального призначення (CPU), FPGA або навіть GPU і може застосовуватися як у режимі реального часу, так і для офлайн-обробки записаних сигналів. Аналогічні терміни: «програмне радіо» та «радіочастотна цифрова обробка сигналів».

Як пристрій (наприклад, «SDR») це зазвичай пристрій, до якого можна під’єднати антену й приймати радіочастотні сигнали, а

оцифровані RF-вибірки надсилаються на комп’ютер для обробки чи запису (наприклад, через USB, Ethernet, PCI). Багато SDR також мають можливості передавання, що дозволяють комп’ютеру надсилати вибірки до SDR, який потім випромінює сигнал на заданій радіочастоті. Деякі вбудовані SDR мають інтегрований комп’ютер.

Цифрова обробка сигналів (DSP):
Цифрова обробка сигналів; у нашому випадку — радіосигналів.

Цей підручник є практичним вступом до галузей DSP, SDR та бездротового зв’язку. Він призначений для тих, хто:

  1. Зацікавлений у використанні SDR для створення крутих речей
  2. Добре знається на Python
  3. Відносно новачок в ЦОС (DSP), бездротовому зв’язку та SDR
  4. Візуальний учень, що віддає перевагу анімації, а не рівнянням
  5. Краще розуміє рівняння після вивчення концепцій
  6. Шукає стислі пояснення, а не 1000-сторінковий підручник

Прикладом може бути студент факультету комп’ютерних наук, зацікавлений у роботі, пов’язаній з бездротовим зв’язком, після закінчення навчання, хоча ним може користуватися будь-хто, хто прагне вивчити SDR і має досвід програмування. Таким чином, він охоплює необхідну теорію для розуміння методів DSP без складної математики, яка зазвичай присутня в курсах DSP. Замість того, щоб занурюватися в рівняння, автор використовує велику кількість зображень і анімацій, які допомагають передати концепції, наприклад анімацію комплексної площини ряду Фур’є, наведену нижче. Я вважаю, що рівняння найкраще розуміються після опанування концепцій за допомогою візуалізацій і практичних вправ. Інтенсивне використання анімацій — причина, чому PySDR ніколи не матиме друкованої версії, що продається на Amazon.

Логотип PySDR, створений за допомогою перетворення Фур'є

Цей підручник покликаний швидко і плавно ознайомити з поняттями, що дозволить читачеві виконувати DSP і розумно використовувати SDR. Він не задуманий як довідник з усіх тем DSP/SDR; уже існує безліч чудових підручників, таких як Analog Device’s SDR textbook та dspguide.com. Ви завжди можете скористатися Google, щоб пригадати тригонометричні тотожності або межу Шеннона. Сприймайте цей підручник як «ворота» у світ DSP та SDR: він легший і потребує менше часу та коштів у порівнянні з більш традиційними курсами і підручниками.

Щоб охопити фундаментальну теорію DSP, цілий семестр курсу «Сигнали і системи», типового для електротехнічних спеціальностей, стиснуто до кількох розділів. Після вивчення основ DSP ми переходимо до SDR, хоча поняття DSP і бездротового зв’язку продовжують з’являтися протягом усього підручника.

Приклади коду наведено мовою Python. Використовується NumPy — стандартна бібліотека Python для масивів і високорівневої математики. Приклади також покладаються на Matplotlib — бібліотеку побудови графіків Python, що надає простий спосіб візуалізації сигналів, масивів і комплексних чисел. Зауважте, що хоча Python загалом «повільніша», ніж C++, більшість математичних функцій у Python/NumPy реалізовано на C/C++ і добре оптимізовано. Так само API SDR, який ми використовуємо, — це набір Python-обгорток для функцій/класів C/C++. Ті, хто має небагато досвіду з Python, але міцну базу в MATLAB, Ruby або Perl, ймовірно, почуватимуться впевнено після ознайомлення із синтаксисом Python.

Долучитися

Якщо ви отримали користь від PySDR, поділіться ним із колегами, студентами та іншими допитливими людьми, яких може зацікавити цей матеріал. Ви також можете зробити пожертву через PySDR Patreon як спосіб подяки та отримати згадку зліва на кожній сторінці під списком розділів.

Якщо ви прочитаєте будь-яку частину цього підручника і напишете мені на marc@pysdr.org з питаннями/коментарями/пропозиціями, то вітаємо, ви зробили свій внесок у створення цього підручника! Ви також можете редагувати вихідний матеріал безпосередньо на сторінці підручника на GitHub (ваша зміна покладе початок новому запиту на заміну). Не соромтеся надсилати проблему або навіть запит на вилучення (PR) з виправленнями або покращеннями. Ті, хто надсилає цінні відгуки/виправлення, будуть постійно додаватися до розділу подяк нижче. Не дуже добре володієте Git’ом, але хочете запропонувати зміни? Не соромтеся писати мені на marc@pysdr.org.

Подяки

Дякуємо всім, хто прочитав будь-яку частину цього підручника і надіслав відгук, а особливо:

А також усім прихильникам PySDR Patreon!