# SWELLEX96-MFP **Repository Path**: open-ocean/swellex96-mfp ## Basic Information - **Project Name**: SWELLEX96-MFP - **Description**: 处理SWELLEX96,使用匹配场方法,进行水声目标距离和深度定位的开源仓库。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2025-04-15 - **Last Updated**: 2026-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 水下声源定位的匹配场程序说明 本README文件介绍的是用于水下声源定位的匹配场程序,该程序使用的数据集为SWellEx - 96。你可从官网[https://swellex96.ucsd.edu/](https://swellex96.ucsd.edu/)下载该数据集。 ## 一、数据集结构 SWELLEX96-MFP ``` ├── ctds │ └── CTD数据(i9606.prn) ├── dataread │ └── VLA_V2(以事件S5的环境来做拷贝场) ├── Range │ └── 信号发射时间和位置信息 ├── dataset │ └── J1312315.vla.21els.sio(S5事件数据) └── src ├── MFP_BB_TD_V1(单声源匹配场) ├── MFP_BB_TD_V2_snap(多快拍混叠处理) ├── MSE_MFP_V1(多声源定位误差分析) └── MSE_MFP_V2(多声源多快拍定位误差分析) └── datasim_PS(实测数据集生成) └── datasim_PS_snap(多快拍实测数据集生成) └── datasim_PR(拷贝场数据集生成) ``` ## 二、使用步骤 ### Step 1:数据集仿真 1. **datasim_PS.m**:此程序用于读取`J1312315.vla.21els.sio`文件,从宽带信号中提取对应频率的信号,生成实测数据集,并将其存储为二进制文件,以此避免内存不足的问题。该程序会调用`writeps.m`函数。 2. **datasim_PS_snap.m**:功能与`datasim_PS.m`类似,不过此程序会进行多快拍混叠处理。该程序会调用`fun_writePS_snap.m`函数。 3. **datasim_PR.m**:拷贝场生成程序,通过改变频率来生成不同频率的拷贝场数据集,并将其存储为二进制文件,避免存储磁盘占用过大。该程序会调用`fun_setEnvFreq.m`函数以及`kraken(VLA_V2.env、VLA_V2.flp)`。 ### Step 2:仿真数据存储 生成的实测数据集(`VLA_V2_T1_ps.sim`或`VLA_V2_T1_ps_snap.sim`)以及拷贝场数据集(`VLA_V2_T1_pr.sim`)将存储在当前路径下。 ### Step 3:MFP_BB_TD_V1(单声源匹配场) 1. **主程序MFP_BB_TD_V1.m**:对应`VLA_V2_T1_ps.sim`数据集,该程序会调用`fun_dataloadPR.m`和`fun_dataloadPS.m`函数读取拷贝场和测量场。 2. **主程序MFP_BB_TD_V2_snap.m**:对应`VLA_V2_T1_ps_snap.sim`数据集,该程序会调用`fun_dataloadPR.m`和`fun_dataloadPS_snap.m`函数,对多快拍混叠处理的数据进行定位。 ### Step 4:MSE_MFP_V1(误差分析) 主程序为`MSE_MFP_V1.m`,它会调用`fun_MFP_BB_V1.m`函数。误差分析结果的可视化文件将存储在当前路径下的`MSE_MFP_V1`文件中。 主程序为`MSE_MFP_V2.m`,它会调用`fun_MFP_BB_V2_snap.m`函数,对多快拍混叠处理的数据进行定位。误差分析结果的可视化文件将存储在当前路径下的`MSE_MFP_V1`文件中。 ## 三、注意事项 本程序是匹配场的两种传统算法(Bartlett处理器和最小方差处理器)在SWellEx - 96数据集S5事件中的简单应用。拷贝场搜索的水平范围为0 ~ 10km,深度范围为0 ~ 216m。 ### 时间窗选择 在水声信号处理中,匹配场处理存在时域和频域两种处理方式,其中频域处理时频域快拍的时间选取至关重要,该时间长度常被称为时间窗。选择1s时间窗的原因主要基于波束形成频域快拍模型和匹配场处理频域快拍模型的要求。 1. **波束形成频域快拍模型要求**:在波束形成频域快拍模型里,为将阵列数据从时域转换为频域产生频域向量,需把全部观察时间$T$划分成$N$个时间段,每个时间段长度为$\Delta T$ 。从任何方向到达的信号通过基阵任意两阵元的最大传播时间被定义为$\Delta T_{max } \triangleq max _{m, \overline{m}=1, ..., M ; \Omega}\left\{\Delta T_{m, \overline{m}}(\Omega)\right\}$,且对于任意阵元与信号到达方向,传播时延$\tau_{m}(\Omega)$满足$\left|\tau_{m}(\Omega)\right| \leq \Delta T_{max }$ 。为保证信号处理的准确性,每段数据的时间长度需满足$\Delta T \gg \Delta T_{max }$ 。以均匀线阵为例,信号通过任意两号阵元的最大时延由阵元间距$d$和声源入射角$\theta$决定,公式为$\Delta T_{max }=\frac{(M - 1)d sin \theta}{c}$。 2. **匹配场处理频域快拍模型要求**:匹配场处理频域快拍模型遵循同样原理。匹配场处理器公式为$D(r, z)=p_{r}^{H}(r, z) p_{s}\left(r_{s}, z_{s}\right)$ ,其中$p_{r}(r, z)$为假设声源位置$(r, z)$得到的拷贝场向量,$p_{s}(r_{s}, z_{s})$为声源位置为$(r_{s}, z_{s})$的测量场向量。根据简正波模型$p\left(r, z, z_{r}\right)=\sum_{n=1}^{N} \varphi_{n}(z) \varphi_{n}\left(z_{r}\right) H_{0}^{(2)}\left(k_{r n} r\right)$ ,将其代入匹配场处理器公式,并利用简正波特征函数的正交性$\int_{z} \varphi_{n}(z) \varphi_{l}(z)=\delta_{n l}$ ,可得$D(r, z)=\sum_{n=1}^{N} \varphi_{n}(z) \varphi_{n}\left(z_{s}\right) H_{0}^{(2)}\left(k_{r n} r\right) H_{0}^{(2)}\left(k_{r n} r_{s}\right)$ 。令$D_{n}(r, z)=\varphi_{n}(z) \varphi_{n}(z_{s}) H_{0}^{(2)}(k_{r n} r) H_{0}^{(2)}(k_{r n} r_{s})$ ,定位准确的前提是准确估计$D_{n}(r, z)$ 。由于每号简正波都有各自的到达结构和脉冲宽度$\Delta T_{m}$ ,若$\Delta T<\Delta T_{n}$ ,该简正波就无法完全获取,会导致对$D_{n}$的估计产生误差,所以要满足$\Delta T \gg \Delta T_{n}$ 。此外,最终的匹配模糊度图是每号简正波匹配结果的求和,假设$\Delta T_{max }$是信号$s(t)$的宽度,包含每号简正波的到达时间,那么就需要$\Delta T>\Delta T_{max }$ 。 ![系统函数](./results/system_t.png) **图1:海洋声信道时域系统函数** 该图为海洋声信道时域系统函数,可以看出,系统函数有效时长0.3s,每个快拍信号时长至少要大于这个值,在匹配场处理中,我们选择1s的时间窗。 3. **实际仿真验证**:在仿真环境下,当声源距离8km,深度54m,声源频段40 - 400Hz时,得到1 - 6号阵元声场到达结构,接收信号时长约为0.3s。根据上述模型要求,匹配场处理时每段数据时间长度需满足$\Delta T>0.3 s$ 。选择1s作为时间窗,既满足了$\Delta T \gg \Delta T_{max }$(这里$\Delta T_{max }$对应实际仿真中接收信号时长0.3s )的要求,又能充分涵盖各种简正波的到达时间,有效减少简正波获取不全导致的估计误差,确保匹配场处理结果的准确性和可靠性。 以下是将你提供的“定位结果”部分内容转换为 Markdown 表格的形式,使数据呈现更加清晰直观: ## 四、定位结果 ### 1. 单声源定位 声源距离 8.617km,深度 54.00m 定位结果如下: ![单声源定位](./results/MFP_BB_TD_V1_10km.png) **图2:单声源定位** |定位方式|估计位置|估计误差| |----|----|----| |常规匹配场估计|(8.80 km, 55.00 m)|(0.18 km, 1.00 m)| |自适应匹配场估计|(5.90 km, 155.00 m)|(2.72 km, 101.00 m)| ![单声源多快拍定位](./results/MFP_BB_TD_V2_snap_10km.png) **图3:单声源多快拍定位** |定位方式|估计位置|估计误差| |----|----|----| |常规匹配场估计|(9.70 km, 30.00 m)|(1.25 km, 24.00 m)| |自适应匹配场估计|(7.50 km, 44.00 m)|(0.95 km, 10.00 m)| ### 2. 多声源定位 ![多声源定位](./results/MSE_MFP_V1_10km.png) **图4:多声源定位** |误差类型|CMFP(常规匹配场估计)|AMFP(自适应匹配场估计)| |----|----|----| |距离绝对误差平均值|0.84 km|1.45 km| |深度绝对误差平均值|23.21 m|33.94 m| |距离相对误差平均值|47.11%|80.77%| |深度相对误差平均值|42.99%|62.85%| ![多声源多快拍定位](./results/MSE_MFP_V2_10km.png) **图5:多声源多快拍定位** |误差类型|CMFP(常规匹配场估计)|AMFP(自适应匹配场估计)| |----|----|----| |距离绝对误差平均值|0.84 km|3.48 km| |深度绝对误差平均值|26.52 m|62.95 m| |距离相对误差平均值|39.30%|182.74%| |深度相对误差平均值|49.10%|116.58%|