主要内容

用被动声呐系统定位声信标

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

定义水下航道

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

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

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

定义声信标和无源阵列

声信标波形

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

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

声信标

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

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

无源拖曳阵列

被动牵引阵列将检测和定位ping信号的源,并被建模为具有半波长间距的五元线性阵列。无源阵列在y方向上的速度为1m /s。阵列轴的方向与运动方向平行。

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

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

Rx =相控。ReceiverPreamp (...“获得”, 20岁,...“NoiseFigure”10...“SampleRate”fs,...“SeedSource”“属性”...“种子”, 2007);

模拟被动声纳系统

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

X = wav();numtransfers = 10;rxsig = 0 (size(x,1),5, numtransfers);i = 1: numtransmit更新阵列和声信标位置[pos_tx,vel_tx] = beaconPlat(1/prf);[pos_rx,vel_rx] = arrayPlat(1/prf);计算声信标和阵列之间的路径(路径,夹住,树脂黄、rcvang srcang] =...isopaths (pos_tx pos_rx、vel_tx vel_rx, 1 /脉冲重复频率);传播声信标波形tsig = projRadiator(x, sr沧);Rsig =通道(tsig,路径,dop,损耗);收集传播信号rsig = arrayCollector(rsig,rcvang);存储接收到的脉冲Rxsig (:,:,i) = abs(rx(rsig));结束

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

T =(0:长度(x)-1)'/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);

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

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

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

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

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示估计DOA,实际DOA。

预计到达的方向和实际到达的方向相差不到一度。

总结

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

参考

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