主要内容

用被动声纳系统定位声标

这个例子展示了如何模拟被动声纳系统。利用拖曳式无源天线阵在浅水航道中对静止的水声信标进行探测和定位。声波信标以每秒37.5千赫兹的速度传输10毫秒脉冲,并被建模为各向同性投影仪。定位系统在地表下拖曳一个无源阵列,该阵列被建模为均匀线性阵列。一旦探测到声标信号,就使用到达方向估计器来定位声标。

定义水下通道

在这个例子中,声学信标位于200米深的浅水通道的底部。一个无源阵列被拖到水面以下来定位信标。

首先,创建一个多路径信道来传输信标和无源阵列之间的信号。考虑10条传播路径,包括直接路径和来自顶部和底部表面的反射。生成的路径isopaths将被多径信道使用,通道,以模拟信号传播。

propSpeed = 1520;channelDepth = 200;OperatingFrequency = 37.5 e3;isopaths =分阶段。IsoSpeedUnderwaterPaths (“ChannelDepth”channelDepth,...“NumPathsSource”“属性”“NumPaths”10“PropagationSpeed”, propSpeed);频道=分阶段。MultipathChannel (“OperatingFrequency”, OperatingFrequency);

定义声信标和无源阵列

声信号波形

定义声信标发出的波形。波形是一个矩形脉冲,具有1秒的重复间隔和10毫秒的宽度。

脉冲重复频率= 1;脉冲宽度= 10 e - 3;pulseBandwidth = 1 /脉冲宽度;fs = 2 * pulseBandwidth;wav =分阶段。RectangularWaveform (脉冲重复频率的脉冲重复频率,“脉冲宽度”脉冲宽度,...“SampleRate”fs);通道。SampleRate = f;

声信标

接下来,定义声学信标,它位于信道底部上方1米的地方。声学信标被模拟成一个各向同性投影仪。声波信标波形将辐射到远场。

投影仪=分阶段。IsotropicProjector (“VoltageResponse”, 120);projRadiator =分阶段。散热器(“传感器”投影仪,...“PropagationSpeed”propSpeed,“OperatingFrequency”, OperatingFrequency);beaconPlat =分阶段。平台(“InitialPosition”, 5000;2000;-199年),...“速度”, (0;0;0]);

被动声纳

无源拖曳阵列将探测和定位脉冲源,并将其建模为具有半波长间距的五元线性阵列。无源阵列在y方向上的速度为1m /s。阵列轴的方向与移动方向平行。

水听器=分阶段。IsotropicHydrophone (“VoltageSensitivity”, -150);数组=分阶段。齿龈(“元素”水听器,...“NumElements”,5,“ElementSpacing”propSpeed / OperatingFrequency / 2,...“ArrayAxis”“y”);arrayCollector =分阶段。收集器(“传感器”数组,...“PropagationSpeed”propSpeed,“OperatingFrequency”, OperatingFrequency);arrayPlat =分阶段。平台(“InitialPosition”, (0;0;-10年),...“速度”, (0;1;0]);

定义每个水听器元件的接收放大器。选择增益为20db,噪声值为10db。

rx =分阶段。ReceiverPreamp (...“获得”, 20岁,...“NoiseFigure”10...“SampleRate”fs,...“SeedSource”“属性”...“种子”, 2007);

模拟被动声纳系统

启动声标,发送十次信号。在传播延迟之后,在阵列的接收信号中ping出现一个峰值。

x = wav ();numTransmits = 10;rxsig = 0(大小(x, 1), 5、numTransmits);我= 1:numTransmits%更新阵列和声学信标位置[pos_tx, vel_tx] = beaconPlat(1 /脉冲重复频率);[pos_rx, vel_rx] = arrayPlat(1 /脉冲重复频率);%计算声信标和阵列之间的路径(路径,夹住,树脂黄、rcvang srcang] =...isopaths (pos_tx pos_rx、vel_tx vel_rx, 1 /脉冲重复频率);%传播声信标波形tsig = projRadiator (x, srcang);rsig =通道(tsig、路径、计划下,树脂黄);%收集传播的信号rsig = arrayCollector (rsig rcvang);%存储接收到的脉冲rxsig(:,:我)= abs (rx (rsig));结束

画出最后接收到的脉冲。由于有多条传播路径,每个ping都是多个脉冲的叠加。

t =(0:长度(x) / fs;情节(t, rxsig(:,结束))包含(“时间(s)”);ylabel (“信号振幅(V)”

图中包含一个轴对象。axis对象包含一个类型为line的对象。

估计到达方向

根据阵列估计声信标的到达方向。创建MUSIC估计器对象,指定单个源信号和到达方向作为输出。使用0.1度间距的扫描角度网格。

musicspatialspect =分阶段。MUSICEstimator (“SensorArray”数组,...“PropagationSpeed”propSpeed,“OperatingFrequency”...OperatingFrequency,“ScanAngles”90:0.1:90,“DOAOutputPort”,真的,...“NumSignalsSource”“属性”“NumSignals”1);

接下来,收集ping信号,再重复500次。估计每个重复间隔的到达方向,并将估计值与真实的到达方向进行比较。

numTransmits = 500;angPassive = 0 (numTransmits, 1);angAct = 0 (numTransmits, 1);我= 1:numTransmits%更新阵列和声学信标位置[pos_tx, vel_tx] = beaconPlat(1 /脉冲重复频率);[pos_rx, vel_rx] = arrayPlat(1 /脉冲重复频率);%计算声标和阵列之间的路径(路径,夹住,树脂黄、rcvang srcang] =...isopaths (pos_tx pos_rx、vel_tx vel_rx, 1 /脉冲重复频率);angAct (i) = rcvang (1,1);%传播声信标波形tsig = projRadiator (x, srcang);rsig =通道(tsig、路径、计划下,树脂黄);%收集传播的信号rsig = arrayCollector (rsig rcvang);rxsig = rx (rsig);估计到达的方向(~ angPassive (i)] = musicspatialspect (rxsig);结束

为每个脉冲重复间隔绘制估计的到达角和真实的到达方向。

情节([angPassive angAct])包含(的脉冲数) ylabel (的到达角(度))传说(“估计DOA”“实际DOA”

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些目标分别表示估计的DOA和实际的DOA。

估计的和实际的到达方向一致在1度以内。

总结

本例中,在浅水信道中模拟了信标与无源阵列之间的声脉冲传输。每一个脉冲信号都沿着10条声学路径接收。对于每个接收到的ping,信标的到达方向相对于无源阵列估计,并与真实的到达方向进行比较。到达的方向可以用来定位和恢复信标。

参考

Urick,罗伯特。水声原理.加利福尼亚,洛斯阿尔托斯:半岛出版社,1983。