用被动声呐系统定位声信标
本例演示如何模拟被动声纳系统。在浅水航道中,拖曳被动阵列对静止水声信标进行了探测和定位。声波信标以每秒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))
估计到达方向
估计声信标相对于阵列的到达方向。创建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”)
预计到达的方向和实际到达的方向相差不到一度。
总结
在本例中,模拟了在浅水信道中信标和无源阵列之间的声ping传输。每个ping信号沿着10条声波路径接收。信标的到达方向相对于接收到的每个ping的无源阵列进行估计,并与真实到达方向进行比较。到达方向可以用来定位和恢复信标。
参考
Urick,罗伯特。水声原理.加州洛斯阿尔托斯:半岛出版社,1983年。