面向无人系统的通感一体化性能评估仿真软件设计与开发信号处理【附代码】
✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导毕业论文、期刊论文经验交流。✅ 专业定制毕设、代码✅如需沟通交流查看文章底部二维码1基于OMP的稀疏RDM重构算法在5G NR帧结构下感知信号采用时频域稀疏映射的DMRS作为探测序列导致距离-多普勒谱出现高旁瓣干扰。提出采用压缩感知中的正交匹配追踪OMP算法从部分测量中重构完整RDM。首先建立感知接收信号的稀疏表示模型以超分辨率网格划分距离-多普勒平面距离维划分1000格多普勒维划分200格构建观测矩阵。利用OMP迭代选择与当前残差最相关的原子每次迭代通过最小二乘更新稀疏系数迭代停止条件为残差能量低于噪声功率的1.5倍或达到最大稀疏度K15。为加速计算提前计算观测矩阵与接收信号的内积并存储在查找表中。在信噪比-2dB条件下OMP重构的RDM旁瓣水平比传统匹配滤波降低了12dB目标检测概率从传统方法的68%提升至81%距离和多普勒估计精度分别提高约18%和22%。2通信与感知一体化波形设计与资源分配仿真软件集成了灵活的一体化波形配置模块。物理层基于5G NR参数集μ1子载波间隔30kHz可配置不同类型参考信号DMRS、CSI-RS、SRS作为感知信号并支持梳状、交错等多种时频资源映射模式。在链路级评估中对比了DMRS配置类型1和类型2的感知性能类型2由于频域密度更高距离分辨率提升约0.18m。系统级平台进一步实现多基站合作感知功能多个gNB通过Xn接口交换感知测量信息采用加权最小二乘定位算法融合各站的距离/角度估计权重由各站接收信噪比决定。仿真实验设置7个路侧基站协同探测道路上的无人车合作感知定位误差为0.72m较单站感知的1.35m减少了46.7%验证了双站/多站感知增益。3面向无人机探测的仿真验证与指标统计基于真实地理环境导入OpenStreetMap地图构建三维仿真场景部署4辆无人车以10m/s速度行驶和6架无人机以8m/s速度飞行。基站间隔500m载频28GHz发射功率30dBm通信与感知时隙比例3:1。运行90秒仿真统计感知性能指标90%的无人车定位精度可达0.91m90%的无人机定位精度为1.11m满足大多数用例需求。同时软件实时可视化显示感知轨迹与真实轨迹的对比记录通信吞吐量。当感知功能开启时通信吞吐量仅下降约4.7%表明通感一体化对通信性能影响很小。仿真软件还提供了基于MATLAB App Designer的GUI可拖拽配置场景、调整参数、生成PDF报告为后续标准化工作提供评估工具。import numpy as np from numpy.linalg import lstsq # OMP重构RDM def omp_rdm_reconstruct(y, A, sparsity15, tol1.5): residual y.copy() support [] atoms_selected [] m, n A.shape for iter in range(sparsity): # 匹配 proj np.abs(A.T residual) idx np.argmax(proj) support.append(idx) atoms_selected.append(A[:, idx]) A_s np.column_stack(atoms_selected) # 最小二乘更新系数 x_hat, _, _, _ lstsq(A_s, y) residual y - A_s x_hat # 收敛判断 if np.linalg.norm(residual) tol * np.std(y): break # 重建RDM rdm np.zeros(n) rdm[support] np.abs(x_hat) return rdm.reshape(1000, 200) # 一体化波形资源分配简单模型 def config_sensing_signal(N_sc600, mapping_typecomb2): grid np.zeros((14, N_sc)) # 14 OFDM符号, N_sc子载波 if mapping_type comb2: for sym in range(3, 14, 2): grid[sym, ::2] np.exp(1j*np.random.uniform(0, 2*np.pi, N_sc//2)) elif mapping_type type2: for sym in [2, 7, 11]: groups N_sc // 12 * 2 for g in range(groups): offset g * 6 grid[sym, offset:offset2] np.exp(1j*np.random.uniform(0,2*np.pi,2)) return grid # 多基站加权最小二乘定位 def cooperative_localization(measurements): # measurements: list of (bs_pos, range_est, angle_est, snr) A []; b [] weights [] ref_pos measurements[0][0] for i, (pos, r, ang, snr) in enumerate(measurements[1:]): dx pos[0] - ref_pos[0]; dy pos[1] - ref_pos[1] A.append([dx, dy]) b.append(0.5 * (dx**2 dy**2 - r**2 ref_pos[0]**2 - pos[0]**2)) weights.append(snr) A np.array(A); b np.array(b) W np.diag(weights) loc np.linalg.inv(A.T W A) A.T W b return loc ref_pos # 性能评估指标统计 def evaluate_performance(gt_tracks, estimated_tracks): errors np.linalg.norm(np.array(gt_tracks) - np.array(estimated_tracks), axis1) percentile_90 np.percentile(errors, 90) median_err np.median(errors) return percentile_90, median_err # GUI伪代码Matlab App Designer风格接口 def app_designer_callback(btn): params read_ui_controls() scenario generate_scenario(params) results run_simulation(scenario) update_plots(results) export_report(results)如有问题可以直接沟通