浅水声信道模型的建立(1)----只考虑海面海底一次散射,多亮点研究
声波作为目前已知在水下能够远距离传播的媒介,因此其在水下的通信、导航、探测等领域得到了广泛的应用。虽然电磁波在水下也能传播,但是其在水下衰减非常的严重,一般只能传播几米远,但是声波却可以传播几百甚至是上千公里。因此可以使用声波在水下进行通信,然而在水下通信时的信道要远比电磁波在空气中通信是的信道复杂的多,为了有效的在水下进行通信需要对水下的信道进行建模。
声波在水下传播时一般会受到来自水面和水底的反射,这就导致多途效应非常的明显,此外如果是在河道或者是水库里通信其还会受到来自河道岸边和水库堤坝的反射声波影响。为了有效的对这一现象进行建模,我们只考虑水面和水底的反射,并假设声源(也即发射换能器)的位置距离水面为H1,接收处(也即水听器)的位置距离水面距离为H2,水深为H,两者的水平距离为D,如下图所示:
为了得到切确的结果我们还做了如下假设:
(1)基于射线声学理论
(2)几何衰减按球面波衰减规律衰减,不考虑吸收衰减
(3)考虑水面和水底的反射
(4)考虑在高斯白噪声背景下
(5)整个空间声速分布均匀
%==============================================================================
clc;close all;clear all;
% r=0;z=10;%发射信号的位置。
% r1=5000;z1=15;%1号亮点
% r2=5010;z2=15;%2号亮点
% rr=0;zz=20:30;%接收信号
% 参数=====================================================
c = 1500; %声速 Unit:m/s
SNR = 60; %信噪比 Unit:dB
H = 100; %水深 Unit:m
Sample_time = 0.1; %采样时长 Unit:s 假设信号发射的时刻为零时刻
f0 = 1600; %信号频率 Unit:Hz
fs = 16000; %采样率 Unit:Hz
Tao = 5/f0; %信号脉宽 Unit:s
Re_coef_surf = -1; %水面反射系数
Re_coef_bottom = 0.8; %水底反射系数
Reflex_num = 1; %考虑最大的反射次数
%============================================================
%第一过程:发射换能器到亮点1
H1 = 10; %发射换能器水深 Unit:m
H2 = 15; %接收换能器水深 Unit:m
D = 5000; %接收与发射换能器水平距离 Unit:m
%==================================================
Ts = 1/fs; %采样时间间隔 6.2500e-05
sample_num = fix(Sample_time*fs); %采样总点数 FIX:让x向0靠近取整 %1600
nTs = (0:sample_num-1)/fs; %离散的采样时刻 1*1600
sample_num1 = fix(Tao*fs); %信号的采样点数 50
nTs1 = (0:sample_num1-1)/fs; %信号的离散的采样时刻 1*50
receive_signal = zeros(size(nTs)); %用于存储水听器接收的信号 1*1600
d0 = sqrt((H1-H2)^2+D^2); %两个换能器的直线距离 5.0000e+03
S0 = 1/d0; %直达波的声压幅值 2.0000e-04
Noise_var = 10^(-SNR/20)*S0; %白噪声的方差 2.0000e-07
%==========================================================
%% 计算到达回波信号
real_time = d0/c; %3.3333 %信号的实际到达时刻
signal_start_time = fix(real_time*fs)+1; %信号第一个采样点的时刻 53334
phase = (signal_start_time*Ts-real_time)/Ts*2*pi; %得到信号的第一个采样点的相位 4.0212
receive_signal(signal_start_time:(signal_start_time+sample_num1-1)) = S0*sin(2*pi*f0*nTs1+phase); %模拟采样 1*53383
receive_signal = receive_signal + Noise_var*randn(size(receive_signal)); %加入噪声
%----------------------------------------------------------------------------------------------------------------------------------
if Reflex_num>0 %考虑反射时
i = 1 ; %考虑1次反射的情况
%---------------------------------------------------第一次从水面反射时---------------------------------------------------
% 只考虑一次反射,海底和海面各一个反射点
d1=sqrt(D/(H1+H2)^2+1)*H1;
d2=sqrt(D/(H1+H2)^2+1)*H2; %从海面反射一次后到达的总路程:d1+d2
di=d1+d2;
Si = 1/di*Re_coef_surf; %反射波的声压幅值
real_time = di/c; %信号的实际到达时刻
signal_start_time = fix(real_time*fs)+1; %信号第一个采样点的时刻
phase = (signal_start_time*Ts-real_time)/Ts*2*pi; %得到信号的第一个采样点的相位
receive_signal(signal_start_time:(signal_start_time+sample_num1-1)) =receive_signal(signal_start_time:(signal_start_time+sample_num1-1)) + Si*sin(2*pi*f0*nTs1 + phase);
%模拟采样
%---------------------------------------------------第一次从水底反射时---------------------------------------------------
d3=sqrt(D/(2*H-H1-H2)^2+1)*(H-H1);
d4=sqrt(D/(2*H-H1-H2)^2+1)*(H-H2);
dib = d3+d4; %反射波总路程
Sib = 1/dib*Re_coef_bottom; %反射波的声压幅值
real_time = dib/c; %信号的实际到达时刻
signal_start_time = fix(real_time*fs)+1; %信号第一个采样点的时刻
phase = (signal_start_time*Ts-real_time)/Ts*2*pi; %得到信号的第一个采样点的相位
receive_signal(signal_start_time:(signal_start_time+sample_num1-1)) =receive_signal(signal_start_time:(signal_start_time+sample_num1-1)) + Sib*sin(2*pi*f0*nTs1 + phase);
%模拟采样
end
signal1=receive_signal;
signal1_fft=fft(signal1);
%==============================================================================================================
figure(1);
plot(signal1);
xlabel('时间s');
ylabel('幅度');
string = ['信号发生器—亮点1,信噪比SNR=',num2str(SNR),'dB,考虑的最大反射次数',num2str(Reflex_num),'时域'];
title(string);
figure(2);
plot(1:length(signal1_fft),signal1_fft);
string = ['信号发生器—亮点1,信噪比SNR=',num2str(SNR),'dB,考虑的最大反射次数',num2str(Reflex_num),'频域'];
title(string);
%============================================================================================================================
分析:
%==========================================================================================================
首先屏蔽掉从海底反射的信号,运行一次程序,得到的图像如下:
%=======================================================================================================
再屏蔽掉海面的部分,看海底的部分,运行一遍程序:
所以声波到达的顺序是:直达,海面,海底。。。
直达和海面混一块了,所以也看不出来分开。。
转载于:https://www.cnblogs.com/kiki--xiunai/p/10784005.html
浅水声信道模型的建立(1)----只考虑海面海底一次散射,多亮点研究相关推荐
- 浅水声信道模型的建立(3)----只考虑海面海底一次散射,多亮点研究
我貌似前面写的两篇博客里面的理论都是错误的... 程序说明: 发射信号点为(r=0,z=10), 亮点1位置为(r1=5000,z1=15); 接收信号位置为:(rr=0,zz=20:30); 条件: ...
- 浅水声信道模型的建立
声波作为目前已知在水下能够远距离传播的媒介,因此其在水下的通信.导航.探测等领域得到了广泛的应用.虽然电磁波在水下也能传播,但是其在水下衰减非常的严重,一般只能传播几米远,但是声波却可以传播几百甚至是 ...
- 浅水声信道模型的建立(4)----只考虑海面海底一次散射,一个目标研究
我思考了一下上一个程序为什么会失败,可能还是太远了,所以这次弄近一点.把5000米改成1000米吧...其他的还是不变 function的持续不变,在这里就不重复写了,具体参照上一篇博客 主函数:关于 ...
- 自然语言处理(六)图的随机游走模型与噪声信道模型与条件随机场
图的随机游走模型非常适用于统计网页的权重,在文本处理方面则适用于提取关键字,生成人物关系网等. 噪声信道模型本质上就是贝叶斯,它能直接适用于翻译,对于文本简单替换的微博文本规范化来说,感觉还更简单了, ...
- matlab多径信道模型,基于matlab的无线多径信道建模与仿真分析
基于matlab的无线多径信道建模与仿真分析 基于MATLAB的无线多径信道建模与仿真分析 摘 要:对于无线通信, 衰落是影响系统性能的重要因素, 而不同形式的衰落对于信号产生的影响 也不相同.本文在 ...
- 信道模型多径传播阴影衰落——无线接入与定位(2)
无线网络中电磁波的传播方式有反射与透射,衍射,散射. 多径传播的影响: 当发射端接近于接收端时,以直接视距(LOS)路径的功率为主,其他路径(由不同机制产生)的功率可以忽略:随着接收端远离接入点,其他 ...
- 31、OPNET信道模型概述
在OPNET模型中,当包被传送到发送器请求发送后,实际中的情况是包将立即被发送到通信信道上进行传输,因此OPNET必须对通信信道进行建模,也就是在模型中要实现物理层的特征,以便将信道对包产生的传输效果 ...
- MIMO-OFDM无线通信技术及MATLAB实现(3)MIMO信道模型
目录 MIMO统计信道模型 空间相关性 PAS模型 多簇 I-METRAMIMO信道 相关MIMO衰落信道的统计模型 相关MIMO信道系数的产生 I-METRAMIMO信道 多普勒谱 莱斯衰落 方向矩 ...
- matlab多径信道模型,多径时变信道模型的仿真与性能分析课程设计(样例3)
<多径时变信道模型的仿真与性能分析课程设计.doc>由会员分享,可免费在线阅读全文,更多与<多径时变信道模型的仿真与性能分析课程设计>相关文档资源请在帮帮文库(www.woc8 ...
最新文章
- 对于计算机网络的整体框架的概括(转载) 个人感觉很好
- 震精~python运算符还能这么玩~到底这么做到的?神级程序员解密!
- 构造函数和析构函数深拷贝和浅拷贝
- java.lang.relect.Array 类
- L3-1 森森旅游 (30 分)
- DataBseDesign工作笔记003---ERStudio使用笔记_基本使用方法详解
- c语言程序报告的前言,C语言 程序代码编写规范前言
- 洛谷P2886牛继电器
- 9.Jenkins 权威指南 --- Jenkins 维护
- BI_01_一个BI工具的痛点
- 2022-2028年中国长租公寓行业市场运行格局及发展策略分析报告
- 批量下载Landsat快视图,为批量下载Landsat Level1数据做准备
- python 贪吃蛇小游戏代码
- 年薪80万技术专家,面试通过后,被发现简历造假!合并8年前多段工作,惨遭警告和淘汰!
- 嵌入式开发--智能机械臂
- abb机器人编程手册_002.ABB机器人高级编程--String飞升篇
- 数据解读 | 广东省内,谁才有资格做下一个深圳?
- 建筑央企工程项目数字化管理整体解决方案
- 【持续更新】pip install报错解决汇总
- 数据库第五次作业——查询数据
热门文章
- linux7编译mysql5.7安装,CentOS 7.4 使用源码包编译安装MySQL 5.7.20
- 300plc与组态王mpi通讯_MPI(DP)-ETH以太网转换器使用手册
- Node.js 模块化开发
- gitlab 删除仓库
- docker stop
- python与线性代数 线性方程组的解集
- c语言数组处理实验报告心得体会,C语言实验报告总结计划数组.doc
- navicat导出查询结果原理_使用Navicat生成ER关系图并导出
- CentOS7.6部署安装ToughRADIUS-v6.1.1.5
- RVC使用指南(四)-集群状况