1. 简介
目的和目标受众:
首先,几个重要的术语:
软件定义无线电 (SDR): 一种无线电,它使用软件来执行传统上由硬件执行的信号处理任务
数字信号处理(DSP): 信号的数字处理,在我们的例子中是无线电频率(RF)
本教程是对DSP、SDR和无线通信领域的实践介绍。它专为以下人员设计:
1.有兴趣使用 SDR 做很酷的事情
2.擅长使用Python
3.对 DSP、无线通信和 SDR 感兴趣
4.视觉学习者,更喜欢动画而不是方程式
5.在学习概念后更好地理解方程式
6.寻找简洁的解释,而不是1000页的教科书
一个例子是计算机科学专业的学生毕业后对涉及无线通信的工作感兴趣,当然任何渴望了解SDR并且具有编程经验的人都可以使用它。因此,本教程涵盖了理解DSP技术的必要理论,而无需DSP课程中通常包含的高难度数学。不是将自己埋在方程中,而是使用大量的图像和动画来帮助传达概念,例如下面的傅里叶级数复平面动画。我相信,通过视觉和实践练习学习概念后,才能最好地理解方程。
本教材旨在快速流畅地介绍概念,使读者能够容易地执行DSP和使用SDR。它并不是包含所有DSP/SDR概念的参考教科书;已经有很多很棒的教科书,例如ADI公司的SDR教科书和
dspguide.com。与更传统的课程和教科书相比,它更轻,时间和金钱投入更少,您可以将这教程视为进入 DSP 和 SDR 世界的钥匙。
为了涵盖基础DSP理论,全部的“信号和系统”知识被浓缩为几个章节。一旦涵盖了DSP基础知识,我们就会开始研究SDR,尽管DSP和无线通信概念继续出现在教科书中。
代码示例在 Python 中提供。他们利用NumPy,这是Python用于数组和高级数学的标准库。这些示例还依赖于 Matplotlib,这是一个 Python绘图库,提供了一种可视化信号、数组和复数的简单方法。请注意,虽然Python通常比C++“慢”,但Python/NumPy中的大多数数学函数都是用C/ C++实现的,并且进行了大量优化。同样,我们使用的SDR API只是一组用于C /C++函数/类的Python绑定。那些几乎没有Python经验但在MATLAB,Ruby或Perl方面有坚实基础的人在熟悉Python的语法后可能会很好。