Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 11 additions & 14 deletions content-ukraine/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
Перш за все, кілька важливих термінів:

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

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

**Цифрова обробка сигналів (DSP):**
Цифрова обробка сигналів; у нашому випадку — радіосигналів.
Expand All @@ -23,12 +23,11 @@
#. Зацікавлений у *використанні* SDR для створення крутих речей
#. Добре знається на Python
#. Відносно новачок в ЦОС (DSP), бездротовому зв'язку та SDR
#. Візуальний учень, що віддає перевагу анімації, а не рівнянням
#. Має візуальне сприйняття, тобто віддає перевагу візуалізаціям, а не рівнянням
#. Краще розуміє рівняння *після* вивчення концепцій
#. Шукає стислі пояснення, а не 1000-сторінковий підручник

Прикладом може бути студент факультету комп'ютерних наук, зацікавлений у роботі, пов'язаній з бездротовим зв'язком, після
закінчення навчання, хоча ним може користуватися будь-хто, хто прагне вивчити SDR і має досвід програмування. Таким чином, він
Прикладом цільоаої аудиторії може бути студент факультету комп'ютерних наук, зацікавлений у роботі, пов'язаній з бездротовим зв'язком, після навчання, хоча підручником може користуватися і будь-хто, хто прагне вивчити SDR і має досвід програмування. Таким чином, він
охоплює необхідну теорію для розуміння методів DSP без складної математики, яка зазвичай присутня в курсах DSP. Замість того,
щоб занурюватися в рівняння, автор використовує велику кількість зображень і анімацій, які допомагають передати концепції,
наприклад анімацію комплексної площини ряду Фур'є, наведену нижче. Я вважаю, що рівняння найкраще розуміються *після*
Expand All @@ -40,29 +39,27 @@
:align: center
:alt: Логотип PySDR, створений за допомогою перетворення Фур'є

Цей підручник покликаний швидко і плавно ознайомити з поняттями, що дозволить читачеві виконувати DSP і розумно використовувати
Цей підручник має швидко і плавно ознайомити з основними поняттями, що дозволить читачеві навчитися оброблювати сигнали і розумно використовувати
SDR. Він не задуманий як довідник з усіх тем DSP/SDR; уже існує безліч чудових підручників, таких як `Analog Device's SDR
textbook <https://www.analog.com/en/education/education-library/software-defined-radio-for-engineers.html>`_ та `dspguide.com
<http://www.dspguide.com/>`_. Ви завжди можете скористатися Google, щоб пригадати тригонометричні тотожності або межу Шеннона.
Сприймайте цей підручник як «ворота» у світ DSP та SDR: він легший і потребує менше часу та коштів у порівнянні з більш
традиційними курсами і підручниками.

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


************
Чому Python?
************

З огляду на назву PySDR ви можете подумати, що Python є критично важливою частиною цього ресурсу, але насправді вибір мови програмування тут не такий вже й принциповий. В епоху ШІ переписати код з однієї мови на іншу - тривіальна задача. У цьому підручнику **ми використовуємо Python майже як різновид псевдокоду**, з тим бонусом, що його справді можна запустити, побачити результати, побудувати графіки сигналів, перебрати параметри тощо. Python обрано просто тому, що він безкоштовний, легко запускається на всіх платформах, потребує мало шаблонного коду, має легкий синтаксис, добре читається і має величезну екосистему бібліотек та прикладів коду. Допомагає й те, що більшість SDR мають Python API.
З огляду на назву PySDR ви можете подумати, що Python є критично важливою частиною цього підручника, але насправді вибір мови програмування тут не такий вже й принциповий. В епоху ШІ переписати код з однієї мови на іншу - тривіальна задача. У цьому підручнику **ми використовуємо Python майже як різновид псевдокоду**, з тим бонусом, що його справді можна запустити, побачити результати, побудувати графіки сигналів, змінювати параметри тощо. Python обрано просто тому, що він безкоштовний, легко запускається на всіх платформах, потребує мало шаблонного коду, має легкий синтаксис, добре читається і має величезну екосистему бібліотек та прикладів коду. Допомагає й те, що більшість SDR пристроїв мають Python API.

PySDR навмисно не містить власної бібліотеки Python чи будь-яких функцій-обгорток - увесь код написано чистим Python із використанням стандартних бібліотек, таких як NumPy (стандартна бібліотека для масивів і математики високого рівня), SciPy (більш специфічні для ЦОС функції, наприклад проєктування фільтрів) та Matplotlib (побудова графіків, що дозволяє візуалізувати сигнали).
PySDR навмисно не містить власної бібліотеки Python чи будь-яких функцій-обгорток - увесь код написано на чистому Python із використанням стандартних бібліотек, таких як NumPy (стандартна бібліотека для масивів і математики високого рівня), SciPy (більш специфічні для DSP функції, наприклад проєктування фільтрів) та Matplotlib (побудова графіків, що дозволяє візуалізувати сигнали).

Зауважте, що хоча Python загалом "повільніший" за C/C++, більшість функцій у Python/NumPy насправді реалізовано на C/C++ під капотом і добре оптимізовано, тож ви можете здивуватися, наскільки швидко ЦОС на процесорі може працювати в Python. Так само SDR API, які ми використовуємо (наприклад, UHD), - це просто набір Python-прив'язок до функцій/класів на C/C++. У реальних розгорнутих радіосистемах високошвидкісна обробка сигналів усе одно зазвичай реалізується у ПЛІС!
Зауважте, що хоча Python загалом "повільніший" за C/C++, більшість функцій у Python/NumPy насправді під капотом реалізовано на C/C++ і добре оптимізовано, тож ви можете здивуватися, наскільки швидко DSP може працювати на процесорі в Python. Так само SDR API, які ми використовуємо (наприклад, UHD), - це просто набір Python-прив'язок до функцій/класів на C/C++. У реальних пристроях та радіосистемах високошвидкісна обробка сигналів усе одно зазвичай реалізується у ПЛІС!

Деякі глави PySDR містять приклади коду, які можна відкрити як вебовий Jupyter-ноутбук (за допомогою JupyterLite), що дозволяє експериментувати з прикладами на Python і запускати їх прямо з браузера, нічого не встановлюючи. Щоб перевірити, чи це працює у вашому браузері, спробуйте відкрити `цей приклад <../jupyterlite/notebooks/index.html?path=example.ipynb>`_.
Деякі глави PySDR містять приклади коду, які можна відкрити як вебовий Jupyter-ноутбук (за допомогою JupyterLite), що дозволяє експериментувати з прикладами на Python і запускати їх прямо з браузера, нічого не встановлюючи. Щоб перевірити, чи працює це у вашому браузері, спробуйте відкрити `цей приклад <../jupyterlite/notebooks/index.html?path=example.ipynb>`_.


***************
Expand All @@ -71,7 +68,7 @@ PySDR навмисно не містить власної бібліотеки P

Якщо ви отримали користь від PySDR, поділіться ним із колегами, студентами та іншими допитливими людьми, яких може зацікавити цей матеріал. Ви також можете зробити пожертву через `PySDR Patreon <https://www.patreon.com/PySDR>`_ як спосіб подяки та отримати згадку зліва на кожній сторінці під списком розділів. Є також можливість `зробити разову пожертву <https://www.paypal.com/donate/?hosted_button_id=FH3LQCJRUVPWL>`_.

Якщо ви прочитаєте будь-яку частину цього підручника і напишете мені на marc@pysdr.org з питаннями/коментарями/пропозиціями, то вітаємо, ви зробили свій внесок у створення цього підручника! Ви також можете редагувати вихідний матеріал безпосередньо на сторінці `підручника на GitHub <https://github.com/777arc/PySDR/tree/master/content>`_ (ваша зміна покладе початок новому запиту на заміну). Не соромтеся надсилати проблему або навіть запит на вилучення (PR) з виправленнями або покращеннями. Ті, хто надсилає цінні відгуки/виправлення, будуть постійно додаватися до розділу подяк нижче. Не дуже добре володієте Git'ом, але хочете запропонувати зміни? Не соромтеся писати мені на marc@pysdr.org.
Якщо ви прочитаєте будь-яку частину цього підручника і напишете мені на marc@pysdr.org з питаннями/коментарями/пропозиціями, то вітаю, ви зробили свій внесок у створення цього підручника! Ви також можете редагувати вихідний матеріал безпосередньо на сторінці `підручника на GitHub <https://github.com/777arc/PySDR/tree/master/content>`_ (ваша зміна покладе початок новому запиту на заміну). Не соромтеся надсилати проблему або навіть пул-реквест (PR) з виправленнями або покращеннями. Ті, хто надсилає цінні відгуки/виправлення, будуть постійно додаватися до розділу подяк нижче. Якщо ви не дуже добре володієте Git'ом, але хочете запропонувати зміни? Не соромтеся писати мені на marc@pysdr.org.

*****************
Подяки
Expand Down
Loading