clc;clear;close all;
%经验:要把造信号的过程放在循环内部,否则每次循环都用的同一个信号,最后估计结果会相同
%% 平均声强器
%% 矢量信号
An=1;%噪声幅值
f0=1.5e2;fs=4096;T=1/fs;L=40960;t=(0:L-1)*T; %L为信号长度
NFFT=4096;
% f=fs/NFFT*(0:NFFT/2); %频率分辨率为fs/NFFT
% p=A*sin(2*pi*f0*t); %矢量水听器接收到的声压信号
theta=pi/3;fai=pi/6; %seita为入射声波的水平方位角,fai为仰角
% vx=p*cos(seita)*sin(fai);
% vy=p*sin(seita)*sin(fai);
% vz=p*cos(fai); %vx,vy,vz为三个方向的振速信号
%% 时域方位估计,加入均值为0的高斯白噪声,输入信噪比从-15dB到30dB,间隔1dB。
figure
for i=1:46
W=randn(L,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=An*noise(:,1); %声压的噪声
vx_n=An*noise(:,2);%振速的噪声
vy_n=An*noise(:,3);
vz_n=An*noise(:,4);
% En=sum(p_n.^2)/L;%噪声的功率
En=std(p_n).^2; %噪声的总功率
df=fs/2; %分析带宽
dEn=En/df; %单位带宽的功率
SNRi(i)=i-16; %SNRi为输入信噪比
theta1=THETA(t,f0,theta,fai,dEn,p_n,vx_n,vy_n,i-16);
THETA0(i)=theta1;
plot(SNRi(i),theta1*180/pi,'b^');hold on;
end
plot(SNRi,THETA0*180/pi,'b');grid on;
xlabel('输入信噪比/dB');
ylabel('方位角/度');
title('平均声强器时域方位角估计');
figure
for i=1:46
W=randn(L,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=An*noise(:,1); %声压的噪声
vx_n=An*noise(:,2);%振速的噪声
vy_n=An*noise(:,3);
vz_n=An*noise(:,4);
En=sum(p_n.^2)/L;%噪声的功率
% En=std(p_n).^2; %噪声的总功率
df=fs/2; %分析带宽
dEn=En/df; %单位带宽的功率
SNRi(i)=i-16; %SNRi为输入信噪比
fai1=FAI(t,f0,theta,fai,dEn,p_n,vx_n,vy_n,vz_n,i-16);
FAI0(i)=fai1;
plot(SNRi(i),fai1*180/pi,'b^');hold on;
end
plot(SNRi,FAI0*180/pi,'b');grid on;
xlabel('输入信噪比/dB');
ylabel('俯仰角/度');
title('平均声强器时域俯仰角估计');
%% 频域方位估计,加入均值为0的高斯白噪声,输入信噪比从-15dB到30dB,间隔1dB。
figure
for i=1:46
W=randn(L,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=An*noise(:,1); %声压的噪声
vx_n=An*noise(:,2);%振速的噪声
vy_n=An*noise(:,3);
vz_n=An*noise(:,4);
En=sum(p_n.^2)/L;%噪声的功率
% En=std(p_n).^2; %噪声的总功率
df=fs/2; %分析带宽
dEn=En/df; %单位带宽的功率
SNRi(i)=i-16; %SNRi为输入信噪比
theta2=THETA1(t,fs,f0,NFFT,theta,fai,dEn,p_n,vx_n,vy_n,i-16);
THETA2(i)=theta2;
plot(SNRi(i),theta2*180/pi,'b^');hold on;
end
plot(SNRi,THETA2*180/pi,'b');grid on;
xlabel('输入信噪比/dB');
ylabel('方位角/度');
title('平均声强器频域方位角估计');
figure
for i=1:46
W=randn(L,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=An*noise(:,1); %声压的噪声
vx_n=An*noise(:,2);%振速的噪声
vy_n=An*noise(:,3);
vz_n=An*noise(:,4);
En=sum(p_n.^2)/L;%噪声的功率
% En=std(p_n).^2; %噪声的总功率
df=fs/2; %分析带宽
dEn=En/df; %单位带宽的功率
SNRi(i)=i-16; %SNRi为输入信噪比
fai2=FAI1(t,fs,f0,NFFT,theta,fai,dEn,p_n,vx_n,vy_n,vz_n,i-16);
FAI2(i)=fai2;
plot(SNRi(i),fai2*180/pi,'b^');hold on;
end
plot(SNRi,FAI2*180/pi,'b');grid on;
xlabel('输入信噪比/dB');
ylabel('方位角/度');
title('平均声强器频域方俯仰角估计');
vector hydrophone DOA estimation.rar_992_vector hydrophone_声强_声强
版权申诉
5星 · 超过95%的资源 89 浏览量
2022-07-15
13:15:38
上传
评论 1
收藏 3KB RAR 举报
刘良运
- 粉丝: 69
- 资源: 1万+
最新资源
- Anaconda3-2024.02-1-Windows-x86-64.exe
- stm32cubemx can通信 一个板子负责传感器采集 一个板子负责wifi传递到网页 网页可控制传感器板子.zip
- k8s集群搭建1.27.1版本(来源于图灵k8s笔记)
- 树莓派连接 DS18B20 温度传感器读取温度时监控客户端,服务器端连接状况,实现断线重连机制
- 小游戏-坦克大战,你认为的小游戏
- 最好用的富文本编辑器wangeditor
- jQuery 3.7.1
- 校园失物招领小程序源码可作毕业设计
- SAP客户端GUI740安装包(JAVA版本)
- winlibs-x86-64-posix-seh-gcc-13.2.0-llvm-16.0.6-mingw-w64msvcrt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论3