微信公众号:EW Frontier
关注可了解更多的雷达、通信、人工智能相关代码。问题或建议,请公众号留言;
如果你觉得EW Frontier对你有帮助,欢迎加入我的知识星球或面包多,更多代码等你来学
知识星球:https://wx.zsxq.com/dweb2/index/group/15552518881412
面包多:https://mbd.pub/o/author-a2mYl2tsbA==/workQQ交流群:1022600869
如有侵权请联系删除~
数据集说明
数据集是使用 MatLab 生成的。
我们采取了两种不同的方法来解决这个问题,即 Nyquist 速率和 Sub-Nyquist 速率的多标准宽带接收器中的参数估计。
使用了 8 根天线来生成奈奎斯特和亚奈奎斯特速率的数据集。
使用不同数量的观测值来生成数据集,奈奎斯特率为 100、200 和 300,亚奈奎斯特率为 10、20 和 30。
该项目共使用了 100,000 个样本。
最终输入形状为 8x100x100000,其中 8 是天线数,100 是观测数,100000 个样本数。
数据集被分成 85:15 的比例进行训练和测试。
数据集中的每个数据点都是一个复数,目标值是一个整数。
目标值范围从 0 到 180,因此数据集分布在 181 个类中。
数据集是使用不同的信噪比 (SNR) 生成的。
总共选择了 5 个不同的 SNR 值 0dB、10dB、20dB、30dB 和 40 dB。
数据集也是根据 DOA 的数量(目标值)生成的,数据集中使用了 1 到 7 个 DOA。
生成了最终数量的数据集。
根据不同的 SNR 值,每个 DOA 值总共生成了 5 个不同的数据集。
根据不同的 DOA 值,每个观测值总共生成了 35 个不同的数据集。
最后,该项目总共策划了 210 个不同的数据集。
35 个数据集,用于 10 次观察。(每个 123.1 MB)
35 个数据集,用于 20 个观测值。(每个 246.1 MB)
35 个数据集,用于 30 次观察。(每个 369.3 MB)
35 个数据集,用于 100 个观测值。(每个 1.2 GB)
35 个数据集,用于 200 次观测。(每个 2.5 GB)
35 个数据集,用于 300 次观察。(每个 3.7 GB)
奈奎斯特率
亚奈奎斯特率
技术方面和细节
预处理:
在训练之前使用了一些预处理技术
由于数据集中的每个数据点都很复杂,因此深度学习模型不将复数作为输入。
因此,我们将数据点分为三个不同的通道来保留信息。
复数的实数值 ( 通道 1)
复数的复数值 ( 通道 2)
使用 cmath 库计算的复数的相位值(通道 1)
我们还尝试了对值进行标准化。
网络架构:
探索了 DOA 分类的不同架构。下表列出了其中一些。
架构 | 批量大小(训练/测试) |
简单 CNN | 64/128 |
UNet + CNN | 64/128 |
ResNet 18 | 64/128 |
ResNet 34 | 64/128 |
ResNet 50 | 64/128 |
SqueezeNet (挤压网) | 64/128 |
基准:
多信号分类 (MUSIC) 算法
MUSIC 用于基线结果。该算法用于频率估计和无线电测向。MUSIC 是 Pisarenko 方法的推广,它简化为 Pisarenko 的方法。Pisarenko 的方法中,仅使用单个特征向量来形成频率估计函数的分母;特征向量被解释为一组自回归系数,其零点可以通过解析或多项式求根算法找到。相反,MUSIC 假定多个此类函数已添加在一起,因此可能不存在零。相反,有局部最小值,可以通过计算搜索估计函数的峰值来定位。
Resnet 34:
残差网络是 2015 年推出的一种特定类型的神经网络。
当我们增加层数时,深度学习中存在一个与梯度消失/爆炸相关的常见问题。这会导致渐变变为 0 或太大。因此,当我们增加层数时,训练和测试错误率也会增加。
为了解决梯度消失/爆炸的问题,这种架构引入了称为残差网络的概念。在这个网络中,我们使用一种称为 跳过连接 .跳过连接会跳过几个层的训练,并直接连接到输出。
添加这种类型的 skip 连接的优点是,如果任何层损害了架构的性能,那么它将被正则化跳过。因此,这导致训练了一个非常深入的神经网络,而不会出现梯度消失/爆炸引起的问题。该论文的作者在 CIFAR-10 数据集上的 100-1000 层上进行了实验。
有一种类似的方法称为 “highway networks”,这些网络也使用跳过连接。与 LSTM 类似,这些 skip 连接也使用参数门。这些门确定通过 skip 连接传递的信息量。但是,此体系结构的精度并不优于 ResNet 体系结构。
Residual Network 的最终架构。
Resnet 训练中使用的损失:
由于我们正在解决的问题是多类多标签问题,因此这里的目标范围从 1 到 7,数据集分布在 181 个类上。
首先,我们使用 Cross entropy loss 进行训练。
在训练 Resnet 架构 50 个 epoch 后,可以看到一个总体趋势:在 23-25 个 epoch 之后,较低 SNR 的损失开始增加而不是减少。
这是由于模型在较低 SNR 下过拟合。
因此,我们使用了第二个损失,即 Focal loss。我们在第 20 个 epoch 之后应用 Focal loss 来遏制较低 SNR 的过拟合问题。
Focal Loss(病灶性损失):
用于评估测试集的指标:
使用两个不同的指标来评估测试集:
平均绝对误差
准确性
首先,我们将讨论训练和测试方法。
训练集和测试集以 85:15 的比例划分,其中训练集与相同目标值的不同 SNR 值混合。但在测试阶段,具有不同 SNR 值的数据集单独验证。
通过这种方式,我们的模型针对不同的 SNR 值进行了推广。
平均绝对误差:
准确性: