📄 vector_locomotion.m
字号:
%矢量水听器信号模拟 vector_locomotion
%远场条件,球面波衰减
%给定目标起始位置、运动速度,模拟信号强度,(二维情况)
function [p,vx,vy]=vector_locomotion(x_a,y_a,target_x,target_y,target_vx,target_vy,T,r_0,len,fs,f,An,SNR);
target_x=target_x+target_vx*T; %目标运动
target_y=target_y+target_vy*T; %目标运动
r_1=sqrt((target_x-x_a)^2+(target_y-y_a)^2); %目标与水听器的当前距离
phi1=atan2(target_y-y_a,target_x-x_a); %水平方位角
%噪声--各项同性噪声场
W=randn(len,4);
N=[1,0,0,0;
0,1/3,0,0;
0,0,1/3,0;
0,0,0,1/3];
N=sqrt(N);
noise=W*N;
p_n=noise(:,1); %声压的噪声
En=std(An*p_n).^2; %噪声的总能量
df=fs/2; %分析带宽
dEn=En/df; %单位带宽的能量
t=0:1:len-1;
%信号
A_0=sqrt(2*10.^(SNR/10)*dEn); %初始时刻声压幅值
A_1=A_0*r_0/r_1; %随着距离变化,幅值变化
Es=A_1.^2/2; %信号的总能量
p_1=A_1*cos(2*pi*f*t/fs);
vx_1=p_1*cos(phi1);
vy_1=p_1*sin(phi1);
%信号加噪声
p=p_1'+An*noise(:,1);
vx=vx_1'+An*noise(:,2);
vy=vy_1'+An*noise(:,3);
%SNR=10*log10(Es/dEn) %检验信噪比
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -