Files
Handbook/docs/HamCQ手册/02.走进业余无线电/04.开始通联/04.其他类型无线电/02.SDR.md
T
2024-09-04 00:18:31 +08:00

102 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: SDR
date: 2024-07-31 17:47:48
permalink: /pages/0de773/
categories:
- HamCQ手册
- 走进业余无线电
- 开始通联
- 其他类型无线电
tags:
-
---
> 本文编辑:@BloodBlade
# 软件定义无线电 SDR
传统的无线电设备通常使用特定的电路来对信号收发进行处理,因此当有新的需求时通常需要对电路进行修改。此外,电路中的许多有源器件也会在处理过程中引入新的频率分量。
不过随着现代电子技术的发展,现代处理器的性能越来越强,这使得通过ADC和DAC直接产生信号成为了可能。由于信号的产生和解析全都交由软件处理,大大降低了硬件的复杂度,也提高了灵活性。
SDR架构通常分为模拟和数字两个部分,其中与射频相关的部分为模拟部分,这部分主要是硬件,并仍然需要遵守传统的射频器件设计,而数字部分以软件为主。
两者的分界线就是模拟/数字转换器即ADC和DAC,它的作用是采样模拟信号,将其转换为数字信号(通常是同向正交信号,即IQ信号),或将数字信号转换为模拟信号。
根据转换器位置的不同,SDR架构可以分为三种采样类型:基带采样、中频采样和直接采样。
在基带采样中几乎全部射频信号处理都由电路进行处理,无需软件来进行调制或解调。将传统电台连接到电脑或手机的声卡就是基带采样的一个例子。
相对于其他两种采样模式,基带采样几乎没有SDR架构带来的优势,不过这种方式可以更好的重复利用老设备,而且对数字/模拟转换器的要求不高,因此大部分普通声卡都可以胜。
另外,由于几乎不需要对射频部分进行处理,因此对处理器的性能几乎没什么要求。
中频采样由传统的射频电路将信号变频至中频频率,然后进行采样并由软件进行处理。
由于调制和解调部分都由软件实现,因此比基带采样获得了更多的灵活性。但受限于中频,因此频率变换仍然受到传统电路的限制。
有两种比较特殊的中频采样,即低中频和零中频,他们的特点是中频频率非常低,零中频甚至直接将中频降低到了基带频率上,其目的是省去中频镜像抑制和滤波器。
零中频在这一点上效果更好,但由于频率过低,因此直流电(即0Hz)信号也会被一同采样而形成直流尖峰,需要额外的软件处理来减少其带来的影响。
直接采样中信号只通过滤波器和放大器,其余部分完全由软件进行处理。由于无线电信号的频率比较高,因此这种方式对数字/模拟转换器的性能要求很高。
相对的,直接采样可以带来最大的灵活性。例如使用直接采样架构的设备可以轻易的在许多频率中快速转换,以此来实现跳频扩频操作。
在同样的效果下,数字部分占据的处理环节越多,通常意味着SDR系统越强。但这并不意味着应该一味的使用数字处理来代替模拟部分。
例如许多干扰很难通过算法来进行过滤,如果没有强大的算法或性能支持,又不使用传统的滤波器来进行滤除,那么这些干扰将很难被清除。
## SDR设备
SDR的数字处理设备不外乎几种,即使用传统的电脑或手机软件、使用小规模FPGA配合电脑、使用专用射频FPGA和使用微控制器几种方案。这几种方案的不同区别主要在于处理性能的不同,其他并无很大区别。
因此主要通过射频部分来对SDR设备进行分类。
由于SDR设备类型多种多样,因此在讨论中,它的意思需要根据上下文的关系来具体分析。
常见的SDR设备通常有如下类型:
### 电视棒接收机
大部分情况下,在没有上下文的时候提及的SDR通常就是指这一类设备,大部分都需要连接到电脑来进行使用。最为常见的是RTL-SDR,它通常使用R820T调谐芯片和RTL2832解码芯片组成,可以在电脑上安装修改版的驱动来从RTL2832中提取大约3MHz带宽的信号。
RTL-SDR通常无法工作在短波频段,不过如果改造线路绕过调谐芯片,则可以让RTL2832直接采样信号,虽然效果较差,但也是接收短波信号的一种方法。
此外,RTL-SDR博客推出了名为RTL-SDR Blog V4的改进版,它内置了上变频器,使得RTL2832可以通过R828D调谐芯片来获得短波信号。
除了RTL-SDR外,还有一些同样基于电视棒接收器的SDR,它们通常大幅度改进了RTL-SDR的缺陷。例如Airspy通过更换RTL2832芯片来获得更大的采样带宽、SDRPlay则使用了MSI001调谐芯片和MSI2500采样芯片,MSI的电视棒解决方案本就是SDR的,因此提供了更好的效果和更大的带宽。
另外还有使用MSI001和STM32H7的孔雀石收音机,它无需像其他电视棒接收机一样连接到电脑即可使用,而是直接通过微控制器来解码信号,可以作为独立的收音机来使用。
### SDR射频芯片
除了电视棒接收机之外,另外一大部分SDR设备则是指使用专门的SDR射频芯片所打造的设备,这些芯片将射频电路和ADC/DAC集成在一起,有些还具有简单的处理器。对于使用者而言,通常无需关心内部的架构究竟是中频或直接采样,直接使用即可。
常见的设备有使用亚诺德射频捷变收发芯片的Pluto SDR、Jupiter SDR、USRP、BladeRF及一众国产SDR开发板,使用变频器和亚诺德MAX2837的HackRF,Lime公司的芯片及其LimeSDR开发版等。
这些设备大多是为了作为射频开发设备所设计的,通常有着十分强大的性能,完善的文档和活跃的项目,但由于主要面向开发用途,因此也缺乏许多组件,例如缺少功率放大器,因此只能近距离使用。
此外,由于现在的射频技术很少关注短波之类的频段,因此这些面向先进技术的开发版通常都倾向于放弃短波而倾向于支持GHz级别的高频段。
### PWM射频
随着现代处理器速度的不断提升,其所能处理的接口速度也越来越快,因此出现了很多将原本只能传输数字信号的接口作为1bitADC/DAC的歪门邪道。比如树莓派就可以使用GPIO来直接发射FM广播频段的信号,使用Lattice MachXO2 FPGA也可以直接通过输入引脚来接收中波和短波信号。
而一些性能强大的FPGA甚至可以直接利用自己几十Gbps的I/O速度来直接调制出位于3GHZ上的LTE信号。
### ADC/DAC直接采样
只要ADC/DAC的速率足够快,也可以不需要射频部分,直接收发信号,比如AMD和英特尔的射频SoC就是这类设备,它们通常有着十分强大的性能,可以应对非常广泛的频率范围。
不过对于业余无线电而言,通常并不需要那么强大的ADC和DAC,因此许多业余设备已经采用了直接采样技术,例如KiwiSDR等接收机。Icom等传统厂商也推出了诸如IC-705这种使用直接采样技术的设备。
### 传统射频前端+ADC/DAC
业余无线电中基带采样已经非常常见了,比如通过连接声卡使用FT8模式和APRS等都是基带采样的体现。
此外,还有并内置了ADC和DAC,使用中频采样的设备,通常会被称为混合SDR设备。
高端的如八重洲的FTDX10。或者另辟蹊径,使用FT2353高速开关作为混频器产生中频,使用Si5351控制PPL相位和PWM驱动E类功放的的廉价设备uSDX,它的成本只有不到300元。
## 软件部分
对于SDR来说,由于大部分信号处理都在软件中进行,因此软件的质量很大程度上决定了SDR的效果。
对于商业售卖的设备,例如SDRPlay、AirSpy,以及各种开发板来说,大都会搭配提供配套的软件,只要通过商家获取即可,这些软件也有很多除了与自家设备使用之外,也可以与其他设备一起使用。比如Airspy开发的[SDR#](https://airspy.com/download/)就可以搭配各种其他的电视棒接收机一起使用。
而一些开源,或者Hack的设备就很难说,比如RTL-SDR只提供了[修改版驱动](https://github.com/osmocom/rtl-sdr),但并没有应用软件。这种情况下,除了与其他厂家的软件配合使用之外,还有许多开源的软件可以选择。
对于电视棒接收机类设备而言,[SDR++](https://www.sdrpp.org)和[HDSDR](http://www.hdsdr.de)是很好的选择,如果你不满足于它的功能,或你的设备有发射功能,可以选择更为复杂的[SDRangel](https://www.sdrangel.org)。
SDR++和SDRangel都提供了Android设备的支持,但没有触屏优化,如果你想要便携使用的话,推荐购买轨迹球而不是鼠标来连接平板使用。
如果你并不打算携带设备,而是希望将设备放置在某个地方,远程连接使用的话,可以选择[OpenWebRX+](https://luarvique.github.io/ppa/),这是一个基于Web的SDR接收站软件。此外,也有[SoapySDR](https://github.com/pothosware/SoapySDR)和RTL_TCP这种基于客户端的远程SDR驱动。
***在使用远程SDR之前,请确保不要在互联网上公开!接收并传播或泄漏了不该接收的信号是违法行为***
如果你不满足于接收信号和发射简单信号,而是希望更加深入研究现代的无线电系统,比如已经买了一台Pluto SDR,那更适合你的是[GNU Radio](https://www.gnuradio.org),这是一整套开源的无线电开发软件,即使没有设备,也可以用它来进行无线电模拟实验,通常可以使用C++和Python来在GNU Radio上开发程序。
## 识别信号类型
https://www.sigidwiki.com/