信号的速率和设备的局限 一、802.11b 标准中的数据率、符号率与 chip 率
802.11b 的四种典型数据率如下。
- 1、2 Mb/s 使用 11-chip Barker 序列;
- 5.5、11 Mb/s 使用 CCK。四种模式的 chip 率均为 11 Mchip/s,
但每个符号承载的比特数及包含的 chip 数不同。IEEE 802.11b 草案,第 18.4.6.3—18.4.6.5 节
例如,1 Mb/s 模式每秒发送 100 万个符号,每个符号对应 11 个 Barker chip,因此 chip 率为 。11 Mb/s 模式并没有把 chip 率提高到 11 倍,而是让每个 CCK 符号承载 8 bit。
在软件无线电中,还要把 chip 变成连续的复数 IQ 采样流。若每个 chip 使用 个 IQ 采样点,则采样率为
这里的 1、2、4 点/chip 是采样方案,不是标准规定的采样率档位。1 点/chip 可以表示离散 chip 序列;实际收发连续波形时,为脉冲成形、滤波和定时恢复留出余量,常选择过采样。例如选择 2 点/chip,就需要处理 22 MS/s 的复数 IQ 数据。标准规定的是 11 Mchip/s 的 chip 率,并未规定 GNU Radio 流图必须采用 22 MS/s。
二、P201Pro 的参数与实时传输限制
先看设备本身。下表摘取与 802.11b 接收最相关的参数;更完整的设备介绍见[[软件无线电接收端学习——从HackRF One到P201Pro的设备升级(2)]],参数也可对照璞致P201Pro产品页。

图:本系列使用的 P201Pro 软件无线电设备。

图:P201Pro 前后接口;网口、USB 和独立供电接口位于设备后侧。
当前方案通过网口将设备 IQ 送入 Ubuntu 虚拟机,再由 GNU Radio 处理。虽然 AD9361 的有效采样位数为 12 bit,但 IIO 缓冲区常以 I、Q 各 16 bit 存放一组复数采样,即按每个 IQ 采样点 4 Byte 估算传输量;具体格式仍应以本机 iio_info 的通道描述为准。ADI 的 IIO 收发示例
这是单路、单向、未计传输开销的计算。4 点/chip 时,原始数据率已经超过千兆网口的标称上限;2 点/chip 虽未超过 1 Gb/s,但还要经过协议传输、虚拟机网络、内存搬运和 GNU Radio 的滤波与同步处理,不能仅凭“704<1000”就断言能稳定运行。设备侧的 56 MHz 带宽,也不代表这条主机实时链路能持续处理相应速率。

GNU Radio 到 P201Pro 的发射路径与潜在限速点
图:GNU Radio 向 P201Pro 持续发射 IQ 的路径,图中限速点是待验证的可能原因。
我在gnuradio中用

做测试,发现状态栏一直播放:
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
我刚开始用的是USB2.0连接,后面换网口连接,网口速率还是快很多,但是从PC传入设备的速率我一直没搞懂。后面想着先搭建降速的链路吧,这部分到后面再慢慢弄。这部分有懂的朋友可以指教下,不胜感激。
三、降速搭建链路
前面的计算和发射测试说明,当前最需要解决的不是“能否把采样率填成 22 MS/s”,而是整条链路能否持续供给、传输并处理相应的 IQ 数据。Cyclic=True 能播放预先写入设备缓冲区的波形,也不能证明主机可以持续生成并送出同样速率的数据。因此,本系列先把 chip 率按比例降低十倍,搭建一条可以反复观察、调试的链路。
以 1 Mb/s 的 Barker 模式为例,保留“每个数据符号对应 11 个 chip”这一结构,只改变时间尺度:
这样做没有改变 Barker 序列的长度、扩频与解扩的对应关系,也没有改变接收端利用相关峰寻找信号的基本方法;改变的是它们在真实时间中发生的速度。后续研究 2 Mb/s DQPSK 或 5.5、11 Mb/s CCK 时,也按同样原则区分原标准参数与降速实验参数,不把两者混写。
需要强调:这是一套借用 802.11b PHY 结构的降速教学实验,不是符合标准速率的 802.11b 发射机,也不能期待普通 Wi‑Fi 网卡识别它。降速解决的是当前主机—设备链路的实时吞吐压力,并没有自动解决帧检测、同步、解扩或解调问题。至于以后能否回到 11 Mchip/s,还要继续测试主机网口、虚拟机、IIO/设备端各环节;把部分处理搬到 FPGA 是可能的方向,但不是仅凭这次 U 测试就能确定的唯一方案。
四、本系列从哪里开始
我准备先从最容易看清原理的 1 Mb/s DBPSK+Barker 路线入手,而不是一开始就实现全部四档速率:
- 先看 Barker 如何扩频。 一个数据符号怎样变成 11 个 chip?发射端的 chip 波形和频谱会发生什么变化?
- 再看接收端如何发现它。 让本地 Barker 序列在接收流中滑动相关,观察相关峰,并区分“发现疑似信号”与“正确确定帧起点”。
- 然后恢复数据。 在检测、定时与载波处理后完成解扩和差分判决,用已知发送数据对照接收比特,并记录错误或漏检的情况。
- 最后逐步扩展。 在 1 Mb/s 路线跑通后,再研究 DQPSK、CCK,以及标准物理层帧头和数据段各自承担什么任务。
这里会沿用前面 QPSK 收发实验积累的 GNU Radio 流图、同步和可视化经验,但不会把原先的 QPSK 帧直接称作 802.11b 帧。每增加一个功能,都尽量同时给出 MATLAB 示意和 P201Pro/GNU Radio 实测,让图上的相关峰、判决结果与最终恢复的 bit 能相互对照。
五、小结
802.11b 的四种典型速率共用 11 Mchip/s 的 chip 率;若在主机侧按 2 点/chip 处理,单路就需要 22 MS/s 的连续 IQ 流。P201Pro 射频芯片的带宽足够宽,却不能据此推断当前虚拟机、网口和软件链路可以无欠载地持续发射。我的测试已经遇到 U,所以先把 chip 率降至 1.1 Mchip/s,把注意力放在Barker 扩频、信号检测和比特恢复究竟怎样工作上。














