无人机网络数据路由与分布式算术架构在 FIR 滤波器中的应用
无人机网络数据路由
在无人机(UAV)网络中,高效的数据路由对于多源数据的传输至关重要。下面将详细介绍一种基于 Steiner 树的路由协议,该协议旨在实现节能且高效的数据传输。
1. 阶段二:Steiner 顶点计算
当网关节点开始从源节点接收数据时,便启动了第二阶段。若网关节点从多个源节点接收数据,它会在本地计算 Steiner 顶点集 (V_{st})。计算 Steiner 集时,源节点和网关节点的位置作为输入。
-
源节点集定义
:源节点集 (S) 定义为 (S = {S_0, S_1, …, S_{n - 1}})。
-
顶点集 (V) 定义
:由于最终数据需传输到唯一的网关节点(BS),用于 Steiner 点计算的所有顶点的累积集定义为 (V),其中 (|V| = n),即 (V = S \cup {BS})。
-
Steiner 点计算
:网关节点根据迭代 I 方法的改进版本计算 (n - 2) 个 Steiner 点,目标是找到 Steiner 顶点集 (V_{st}) 的近似最优值。具体步骤如下:
1. 创建一个包含 (V) 中所有点的虚拟区域 (A),并考虑一个由垂直和水平线组成的网格,每条线间距为 (\gamma)。
2. 定义辅助函数 (\Delta MST(V, v) = c(MST(V)) - c(MST(V \cup {v}))),其中 (MST(V)) 表示顶点集 (V) 的最小生成树,(c(T)) 表示树 (T) 所有边的总和,每条边是其连接两点间的距离。
3. 候选集 (C) 包含网格上的所有交点。目标是找到 (C) 中的元素 (v),使 (\Delta MST(V \cup V_{st}, v)) 最大。
4. 初始时,为候选集 (C) 选择较大的 (\gamma) 值。确定元素 (v = (p, q)) 后,对较小的 (\gamma’) 和较小的区域 (A’) 重复该过程,(A’) 是坐标 ((p - \gamma, q - \gamma)) 和 ((p + \gamma, q + \gamma)) 之间的区域。
5. 从候选集 (C’) 中选择 (v’),使 (\Delta MST(V \cup V_{st}, v’)) 最大。更新 Steiner 顶点集 (V_{st} = V_{st} \cup {v’}),并重复整个过程 (n - 2) 次。
以下是 Steiner 顶点集计算的算法:
Algorithm 1. Steiner Vertex Set calculation
1: procedure STEINER VERTEX SET(V)
2: Steiner vertex set Vst ← ∅
3: for n - 2 times do
4: Calculate Candidate set C with γ
5: v ← max
x∈C {ΔMST(V ∪ Vst, x)}
6: Calculate Candidate set C′ with γ′ << γ
7: v′ ← max
x∈C′{ΔMST(V ∪ Vst, x)}
8: Update Vst ← Vst ∪ {v′}
9: end for
10: return Vst
11: end procedure
计算完 Steiner 顶点集后,网关节点创建一个包含所有 Steiner 顶点的数据包,并将其转发给所有源节点。源节点收到 Steiner 点列表后,会选择离自身最近的 Steiner 点作为后续数据包的转发位置,从而进入第三阶段。
2. 阶段三:数据通信
在这一阶段,所有源节点将其数据包发送到离它们最近的 Steiner 点,该点是位于指定位置的 UAV 节点。UAV 节点将数据包转发到 Steiner 点所在的地理区域。
-
Steiner 节点选择
:在每个 Steiner 点,想象一个半径为 (r_s) 的虚拟区域。根据节点在该区域的停留时间,选择该区域内的 UAV 节点作为 Steiner 节点。所有发往该 Steiner 点地理位置的数据包都将由该 Steiner 节点接收。当 Steiner 节点即将离开该区域时,它会指定该区域内的另一个节点作为新的 Steiner 节点。若网络支持部分处于受控移动类别的 UAV 节点,可指定一个或一组 UAV 作为 Steiner 点来中继数据。
-
数据包转发
:当数据包到达 Steiner 节点 (v) 时,计算离 (v) 最近的下一个 Steiner 点 (v’)。若网关节点离 (v’) 比离 (v) 更近,则将数据包转发到 (v’);否则,将数据包转发到网关节点。
通过这种方式,所有通信都按照计算出的网络 Steiner 树进行。通过 Steiner 节点进行路由可确保连接所有源节点的数据通信中参与的节点数量最少。
性能评估
使用 Castalia(OMNET++ 中的网络仿真框架)对该方法进行仿真,并与 GPSR 和 ROF 进行性能比较。仿真参数如下表所示:
| 参数 | 值 |
| ---- | ---- |
| 网络大小 | (100 × 100 m^2) |
| 节点数量 | 50 个 |
| 传输功率 | -5 db |
| 速度 | 0.5 m/s 到 10 m/s |
| 静态节点数量 | 1 个(网关节点) |
| 数据包大小 | 128 字节 |
| 仿真时间 | 500 s(多次迭代) |
| 移动模型 | 随机路点模型 |
仿真通过改变源节点数量和数据包速率进行。结果表明:
-
速度对数据包交付率(PDR)的影响
:随着速度增加,所有路由方法的 PDR 值都会下降。这是由于动态拓扑导致节点断开连接,影响了整体网络性能。基于 Steiner 树的路由方法表现优于 GPRS 和 ROF,因为该方法连接节点的总跳数较少,从而提高了数据包交付率。
-
源节点数量对 PDR 的影响
:随着源节点数量增加,PDR 值会降低。这是因为网络中源节点数量增多会导致整体流量增加,从而引发数据包冲突,网络干扰也是 PDR 降低的原因之一。不过,除了初始两个源节点的情况略低于 GPRS 外,该方法总体表现更好。
-
能量消耗
:通过增加发送速率来验证网络中的能量消耗。结果表明,与 GPSR 相比,该方法和 ROF 在能量消耗方面表现相当,这主要归因于节点移动性和参与网络的节点数量较少。
分布式算术架构在 FIR 滤波器中的应用
有限脉冲响应(FIR)滤波器在信号接收和处理应用中是重要的模块。然而,在 FPGA 中实现 FIR 滤波器的复杂度较高,主要是因为存在大量的乘加(MAC)操作,从而使用了大量的片上乘法器。分布式算术(DA)是一种用移位寄存器、查找表(LUT)和加法器替代片上乘法器的方法。但 DA 方法存在存储大小随滤波器阶数增加而迅速增长以及支持的采样频率与输入样本位宽成反比的问题。
1. 引言
FIR 滤波器在许多数字信号处理系统中用于信号预处理、平滑、带宽选择、抽取和插值,以及实现低通/高通滤波(LPF/HPF)。常见的 FIR 滤波器硬件架构有 systolic 和转置架构。systolic 架构的优点是关键路径短、性能高,但延迟相对较高;转置架构延迟较低,但由于输入信号分支多(高扇出),性能较低。这些架构的主要缺点是使用片上乘法器,随着滤波器阶数增加,使用片上乘法器的 MAC 操作数量线性增加,而乘法器是 FPGA 的有限资源,因此实现高阶 FIR 滤波器变得困难。
DA 是一种不用片上乘法器实现 FIR 滤波器的方法,它将乘法操作分解为移位寄存器、查找表和加法器的顺序位操作。DA 架构用于光学滤波器、自适应滤波器和特殊计算器(如基于快速傅里叶变换的计算器)的设计。但 DA 方法的重要缺点是内存消耗高和最大支持采样频率低。
2. 分布式算术(DA)概述
-
经典 DA 架构
- 输出样本定义 :N 抽头 FIR 滤波器的输出样本 (y) 定义为 (y = \sum_{i = 0}^{N - 1} \omega_i x(N - i)),其中 (\omega_i) 是 FIR 滤波器的权重系数,(x(N - i)) 是输入样本。
- 输入样本表示 :将 (x(N - i)) 表示为二进制补码形式 (x(N - i) = -b_{i0} + \sum_{l = 1}^{B - 1} b_{il} 2^{-l}),其中 (B) 是输入样本的位宽,(b_{i0}) 是其符号位。
- 经典 DA 架构基础 :将 (x(N - i)) 代入输出样本公式可得 (y = -\sum_{i = 0}^{N - 1} b_{i0} \omega_i + \sum_{l = 1}^{B - 1} (\sum_{i = 0}^{N - 1} b_{il} \omega_i) 2^{-l})。由于每个 (b_{il}) 取值为 0 或 1,权重系数的和有 (2^N) 种可能的线性组合,可预先计算并写入 ROM。
- 架构组成 :经典 DA 基于 FIR 滤波器的架构由并行移位寄存器和累加器组成,中心块是 LUT(描述为 ROM 内存),其元素存储权重系数的线性组合。
- 时钟频率与采样频率关系 :经典 DA 架构要求时钟频率至少是采样频率的 (B) 倍。新输入样本进入并行移位寄存器,从最低位到符号位处理每个输入样本的当前 (b_{il}) 位组成的位包。位包生成地址,该地址进入 LUT,在特定地址从 LUT 中选择权重系数的线性组合,与累加器的结果一起进入最终加法器。计算结果输出到滤波器并反馈到累加器,累加器对前一结果(部分和)进行右算术移位。经过 (B) 个时钟周期后,分析完最后一位(有符号位),输出滤波结果。
- 缺点 :经典 DA 架构的主要缺点是支持的采样频率低和 LUT 中元素数量多。最大支持采样频率是时钟频率的 (B) 分之一,因为每个时钟周期处理一个 (l) 位包((B) 等于位包数量)。LUT 中元素数量由滤波器阶数和权重系数的可能线性组合数量决定。可使用 OBC 方案、块内存分区算法或两者结合来减少内存消耗。
-
OBC 电路
为减少 DA 架构中所需的 LUT 大小,可使用 OBC 电路。将 (x(N - i)) 表示为 (x(N - i) = \frac{1}{2}(x(N - i) - (-x(N - i)))),(-x(N - i)) 的二进制补码形式为 (-x(N - i) = -b_{i0} + \sum_{l = 1}^{B - 1} b_{il} 2^{-l} + 2^{-(B - 1)})。代入并化简可得 (x(N - i) = \frac{1}{2}(-(b_{i0} - b_{i0}) + \sum_{l = 1}^{B - 1} (b_{i0} - b_{i0}) 2^{-l}) + 2^{-(B - 1)})。为简化表示,假设 (s_{il} = \begin{cases} b_{i0} - b_{i0}, & l \neq 0 \ -(b_{i0} - b_{i0}), & l = 0 \end{cases}),则 (x(N - i) = \frac{1}{2}(\sum_{l = 0}^{B - 1} s_{il} 2^{-l}) + 2^{-(B - 1)})。
综上所述,无人机网络的 Steiner 树路由协议在数据传输效率和节能方面表现出色,而改进的 DA 架构有望降低 FIR 滤波器实现的复杂度和资源消耗。未来可进一步研究不同动态拓扑下的更多场景,提高多移动数据源与网关之间的数据传输效率。
3. 改进的 DA 架构
为解决经典 DA 架构的缺点,提出了一种基于双端口内存并结合 OBC 和 BMP 方法的改进 DA 架构。该架构旨在减少内存消耗并提高最大支持采样频率。
- 内存消耗优化 :通过使用 OBC 方法,可将所需的 LUT 大小减半。同时,BMP 方法将单个内存块划分为多个,进一步优化了内存使用。双端口内存的使用使得数据的读写可以并行进行,提高了数据处理的效率。
- 采样频率提升 :该架构通过并行处理多个位包,将最大支持采样频率至少提高了两倍。具体来说,它可以同时处理多个输入样本的不同位,减少了处理每个样本所需的时钟周期。
以下是改进 DA 架构的工作流程:
graph TD;
A[输入样本] --> B[并行移位寄存器];
B --> C[位包生成];
C --> D[双端口内存读取];
D --> E[加法器处理];
E --> F[累加器更新];
F --> G[输出结果];
4. FPGA 实现与资源评估
将改进的 DA 架构在 FPGA 上实现,并对硬件资源消耗进行评估。与其他 DA 实现相比,该架构在资源使用上具有明显优势。
| 架构类型 | 内存消耗 | 最大支持采样频率 |
|---|---|---|
| 经典 DA 架构 | 高 | 低 |
| 改进 DA 架构 | 低 | 高 |
通过在 FPGA 上的实际测试,改进的 DA 架构在内存使用上显著低于经典 DA 架构,同时最大支持采样频率得到了大幅提升。这表明该架构在 FPGA 实现 FIR 滤波器时具有更高的效率和性能。
总结与展望
本文介绍了两个重要的技术领域:无人机网络的数据路由和 FIR 滤波器的分布式算术架构。
无人机网络数据路由
基于 Steiner 树的路由协议为无人机网络中的多源数据传输提供了一种高效且节能的解决方案。通过计算 Steiner 顶点集,该协议确保了数据传输路径的优化,减少了参与通信的节点数量,从而提高了数据包交付率并降低了能量消耗。性能评估结果显示,该协议在不同场景下均优于传统的 GPSR 和 ROF 路由方法。
FIR 滤波器的分布式算术架构
经典 DA 架构虽然提供了一种替代片上乘法器的方法,但存在内存消耗高和采样频率低的问题。改进的 DA 架构通过结合 OBC 和 BMP 方法,以及使用双端口内存,成功地降低了内存消耗并提高了最大支持采样频率。在 FPGA 上的实现结果表明,该架构在资源使用和性能方面具有明显优势。
未来研究方向
- 无人机网络 :未来的研究可以进一步探索不同动态拓扑下的路由策略,以适应更复杂的无人机应用场景。例如,考虑无人机的编队飞行、障碍物避让等因素,优化路由协议的性能。
- FIR 滤波器 :可以继续研究如何进一步提高 DA 架构的性能,例如通过优化内存访问策略或采用更高效的算法。此外,还可以探索将该架构应用于其他类型的滤波器或信号处理系统。
通过不断的研究和改进,这些技术将在无人机通信和信号处理领域发挥更大的作用,为相关应用提供更强大的支持。
超级会员免费看

被折叠的 条评论
为什么被折叠?



