PySDR:使用Python进行SDR和DSP指南
PySDR: A Guide to SDR and DSP Using Python

原始链接: https://pysdr.org/content/intro.html

## PySDR:软件定义无线电与数字信号处理实用入门 PySDR是一本实践性教材,专为希望通过实践和可视化方法学习软件定义无线电(SDR)和数字信号处理(DSP)的学习者设计。它面向具有Python编程经验的人员——例如计算机科学专业的学生——但对DSP或无线通信的先验知识有限。 与传统的、数学性强的教科书不同,PySDR优先理解*概念*,使用大量的动画和图像来阐释关键思想。它将基础的DSP理论(通常是一整个学期的课程)浓缩成简洁的形式,然后将这些原理应用于SDR应用。 本书使用Python以及NumPy和Matplotlib等库来提供代码示例,重点在于智能地使用SDR,而不是详尽的理论覆盖。它旨在作为该领域的入门,鼓励使用现有的资源(如dspguide.com)进行进一步的探索。 PySDR在线免费提供,并欢迎通过反馈、建议的编辑或通过Patreon捐赠来贡献。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 PySDR:使用 Python 进行 SDR 和 DSP 指南 (pysdr.org) 7 分,来自 kklisura 1 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 Skyy93 4 分钟前 [–] 我目前正在用这本书学习。它是一本非常好的实践和工程导向的指南,我推荐它!此外,书中提到的硬件价格便宜,我目前正在使用 nooelec 的 RTL-SDR,学习基础知识大约需要投资 50 欧元,我认为这很合理。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

Purpose and Target Audience

First and foremost, a couple important terms:

Software-Defined Radio (SDR):

As a concept it refers to using software to perform signal processing tasks that were traditionally performed by hardware, specific to radio/RF applications. This software can be run on a general-purpose computer (CPU), FPGA, or even GPU, and it can be used for real-time applications or offline processing of recorded signals. Analogous terms include “software radio” and “RF digital signal processing”.

As a thing (e.g., “an SDR”) it typically refers to a device that you can plug an antenna into and receive RF signals, with the digitized RF samples being sent to a computer for processing or recording (e.g., over USB, Ethernet, PCI). Many SDRs also have transmit capabilities, allowing the computer to send samples to the SDR which then transmits the signal at a specified RF frequency. Some embedded-style SDRs include an onboard computer.

Digital Signal Processing (DSP):
The digital processing of signals; in our case, RF signals.

This textbook acts as a hands-on introduction to the areas of DSP, SDR, and wireless communications. It is designed for someone who is:

  1. Interested in using SDRs to do cool stuff
  2. Good with Python
  3. Relatively new to DSP, wireless communications, and SDR
  4. A visual learner, preferring animations over equations
  5. Better at understanding equations after learning the concepts
  6. Looking for concise explanations, not a 1,000 page textbook

An example is a Computer Science student interested in a job involving wireless communications after graduation, although it can be used by anyone itching to learn about SDR who has programming experience. As such, it covers the necessary theory to understand DSP techniques without the intense math that is usually included in DSP courses. Instead of burying ourselves in equations, an abundance of images and animations are used to help convey the concepts, such as the Fourier series complex plane animation below. I believe that equations are best understood after learning the concepts through visuals and practical exercises. The heavy use of animations is why PySDR will never have a hard copy version being sold on Amazon.

The PySDR logo created using a Fourier transform

This textbook is meant to introduce concepts quickly and smoothly, enabling the reader to perform DSP and use SDRs intelligently. It’s not meant to be a reference textbook for all DSP/SDR topics; there are plenty of great textbooks already out there, such as Analog Device’s SDR textbook and dspguide.com. You can always use Google to recall trig identities or the Shannon limit. Think of this textbook like a gateway into the world of DSP and SDR: it’s lighter and less of a time and monetary commitment, when compared to more traditional courses and textbooks.

To cover foundational DSP theory, an entire semester of “Signals and Systems”, a typical course within electrical engineering, is condensed into a few chapters. Once the DSP fundamentals are covered, we launch into SDRs, although DSP and wireless communications concepts continue to come up throughout the textbook.

Code examples are provided in Python. They utilize NumPy, which is Python’s standard library for arrays and high-level math. The examples also rely upon Matplotlib, which is a Python plotting library that provides an easy way to visualize signals, arrays, and complex numbers. Note that while Python is “slower” than C++ in general, most math functions within Python/NumPy are implemented in C/C++ and heavily optimized. Likewise, the SDR API we use is simply a set of Python bindings for C/C++ functions/classes. Those who have little Python experience yet a solid foundation in MATLAB, Ruby, or Perl will likely be fine after familiarizing themselves with Python’s syntax.

Contributing

If you got value from PySDR, please share it with colleagues, students, and other lifelong learners who may be interested in the material. You can also donate through the PySDR Patreon as a way to say thanks and get your name on the left of every page below the chapter list.

If you get through any amount of this textbook and email me at marc@pysdr.org with questions/comments/suggestions, then congratulations, you will have contributed to this textbook! You can also edit the source material directly on the textbook’s GitHub page (your change will start a new pull request). Feel free to submit an issue or even a Pull Request (PR) with fixes or improvements. Those who submit valuable feedback/fixes will be permanently added to the acknowledgments section below. Not good at Git but have changes to suggest? Feel free to email me at marc@pysdr.org.

联系我们 contact @ memedata.com