概述

上一篇博文简单介绍了波束形成的原理,即通过对阵列信号的补偿实现一定方位的波束,可用于测向。之前的仿真时使用的是已知的单频信号,信号时延直接在解析式上进行,但实际情况中的信号往往没有解析形式,仅仅是一个数列。故解析理论中的时延就变成了对应点数的平移。

时域波束形成

理论

理论用的就是之前的理论,不同阵元加上不同的时延,波束会在声波入射的方向处达到最大值。
    首先对信号做一个带通滤波的处理。
    这里要注意的就是平移的点数m(n)m(n)m(n)和时延τ(n)\tau(n)τ(n)会存在一个四舍五入的误差
m(n)=round(τ(n)×fs)m(n)=round(\tau(n)\times fs)m(n)=round(τ(n)×fs)τ(n)=dsin(θ)c\tau(n)=\frac{dsin(\theta)}{c}τ(n)=cdsin(θ)​
    因为需要对序列进行平移,但序列是一串有限长的数列,故平移的本质是取其中的不同部分(起始位置不同的相同长度的子序列)。其他部分与上一篇博文中的仿真步骤是一样的,先空间积分,再时间积分,这里再说明一下,这样平移的结果是只用了序列中一部分的数据,带来的影响为能量的减小。
    框图如下:

程序
clc;clear all;
c=1500;
d=1;
fs=6000;
M=6000;
st=rand(1,M);
N=20;
fh=700;
fl=300;
b=fir1(100,[fl/fs*2,fh/fs*2]);
st1=filter(b,1,st);
theta=30;
for a=1:Ntao(a)=round((a-1)*d*sind(theta)/c*fs);
end
posi=tao(N)+10;
for a=1:Ns(a,:)=st1(posi+tao(a):end-posi+tao(a));%生成各阵元的信号
end
angle=-90:90;
posi1=round(d*(N-1)/c*fs)+10;
for a=1:length(angle)for b=1:Nfai(b)=round((b-1)*d*sind(angle(a))/c*fs);x(b,:)=s(b,posi1-fai(b):end-posi1-fai(b));endy=sum(x,1);E(a)=sum(y.^2);
end
E=E./max(E);
plot(angle,E);xlabel('角度');ylabel('幅值');title('时域波束形成结果');

频域波束形成

时域波束形成直接对信号进行平移,存在较大的误差,故引入了频域波束形成。

基本思想

对于单频信号的时延,可以写成如下形式:
ejω(t+τ)=ejωtejωτe^{j\omega(t+\tau)}=e^{j\omega t}e^{j\omega\tau}ejω(t+τ)=ejωtejωτ
    那么自然容易想到利用傅里叶变换展开成单频信号的叠加,再对不同的单频信号添加不同相移即可。在添加的时候注意,同一频率下,不同阵元的相移也不同,反应在τ(n)=dsin(θ)c\tau(n)=\frac{dsin(\theta)}{c}τ(n)=cdsin(θ)​上。
    然后首先对单频信号进行空间积分,然后根据帕斯瓦尔定理,能量也能表示为频域上的积分,最终得到指向性,框图如下:

程序
clc;clear all;
c=1500;
d=1;
fs=6000;
M=6000;
st=rand(1,M);
N=20;
fh=700;
fl=300;
b=fir1(100,[fl/fs*2,fh/fs*2]);
st1=filter(b,1,st);
theta=30;
for a=1:Ntao(a)=round((a-1)*d*sind(theta)/c*fs);
end
posi=tao(N)+10;
for a=1:Ns(a,:)=st1(posi+tao(a):end-posi+tao(a));%生成各阵元的信号
end
for a=1:Nsf(a,:)=fft(s(a,:),8192);%各阵元信号的频谱
end
angle=-90:90;
for a=1:length(angle)b_f=round(fl/fs*8192)+1;e_f=round(fh/fs*8192)+1;for f=b_f:e_ffor b=1:Ntt(b)=(b-1)*sind(angle(a))*d/c;%各阵元的时延x(b)=sf(b,f)*exp(-1j*2*pi*f*fs/8192*tt(b));endy(f)=sum(x);%各频率空间阵元求和endE(a)=sum(abs(y).^2);%频域求和 能量
end
E=E./max(E);
plot(angle,E);xlabel('角度');ylabel('幅值');title('频域波束形成结果');

【实验6】——时域波束形成与频域波束形成相关推荐

  1. 频域波束形成matlab,SONAR_code 波束形成技术,包括相移 ,频域 matlab代码,以及相关实验的ppt 263万源代码下载- www.pudn.com...

    文件名称: SONAR_code下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 25848 KB 上传时间: 2015-05-03 下载次数: 21 提 供 ...

  2. matlab频域取样间隔,实验二 时域采样与频域采样及MATLAB程序

    实验二 时域采样与频域采样 一 实验目的 1 掌握时域连续信号经理想采样前后的频谱变化,加深对时域采样定理的理解 2 理解频率域采样定理,掌握频率域采样点数的选取原则 二 实验原理 1 时域采样定理 ...

  3. 每日一问 --什么是时域的波形?频域的频谱?

    目录 1.概述 2.时域波形图 3.频域频谱图 4.时域和频域相互转换 1.概述 信号的传输过程就是信号变换和处理的过程.通过观察时域中信号的波形变化,或者频域中信号的频谱变化,就可以较为清楚地了解信 ...

  4. m基于matlab的雷达信号分选技术研究,包括时域瞬时自相关法,频域复倒频分析法,调制域过零检测法,时频小波变换法

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 随着现代信息对抗领域的发展,对雷达侦察系统的性能要求也越来越高,雷达信号分选技术在侦察系统中的应用也 ...

  5. 【自动控制原理】——第二章——数学模型【时域】【复频域】【梅森增益公式】

    文章目录 0.数学模型的概念 1.控制系统的时域数学模型(微分方程) 线性微分方程的一般特征 非线性微分方程的线性化 拉普拉斯例题传送门 2.控制系统的复数域数学模型 2.1传递函数的定义 2.2传递 ...

  6. 自适应波束形成(一)——窄带波束形成和宽带波束形成

    在许多波束形成应用中,我们经常需要根据接收到的阵列数据来更新波束形成器系数,以获得不同情境下的最优解决方案.若环境是变化的,系数也要自适应变化,这就是自适应波束形成器. 运用波束形成技术,利用麦克风阵 ...

  7. matlab声音信号时域频域转换,关于处理用采集卡采集到的声音时域信号转化成频域信号........

    求助各位大神,我用麦克风通过采集卡采集到了一段声音数据,数据在附件里,矩阵中第一列为时间,第二列为采集到的声音的电压信号,采样频率为1万Hz,做出时域图和频域图的程序如下所示: clear; clc; ...

  8. 模拟波束成形和数字波束成形的区别

    https://ma-mimo.ellintech.se/2017/10/03/what-is-the-difference-between-beamforming-and-precoding/

  9. 通信算法之133: 无线通信Qpsk/16Qam调制/基带成型/正交上变频/匹配滤波/时域图星座图频域图

    读者1/2代码:

最新文章

  1. 基于Express+mongoose搭建的学生管理系统(2017-08-07)
  2. SQL SERVER 2000 安装问题
  3. 深度学习时代的数据科学和自然语言处理
  4. with as 用法_介词with用法
  5. JavaWeb学习之路——SSM框架之SpringMVC(九)
  6. Ubuntu 14 查看 docker中对应容器的 IP
  7. 中国中小微企业云服务市场专题分析2020
  8. 图:图的邻接表创建、深度优先遍历和广度优先遍历代码实现
  9. Docker安装运行mysql
  10. UML基础与应用系列文章汇总
  11. springboot框架笔记——springboot提供的自动配置
  12. Unity3D 中的定制特性以及简单的编辑器扩展案例(1)
  13. html压缩工具中文,HTML Compress(html压缩工具)
  14. Java - Log
  15. 极客时间专栏内容的个人分析
  16. 如何看待培训机构出来的非科班程序员
  17. 野人岛4四季神器java,十一天,四季的感受,顶风冒雪美国中西部自驾旅游之五-黄石:梦想之地(1)...
  18. [Flask] [Python3] 第一个flask APP
  19. 目标检测与YOLO算法(用Python实现目标检测)
  20. 《木偶奇遇记》读后感

热门文章

  1. oracle 查出所有空表,Oracle查看某个用户上的所有空表
  2. matlab 倾斜矫正,matlab图像倾斜校正
  3. pandas使用字典格式修改columns列名
  4. Linux安装mysql(解决E: Package ‘mysql-server‘ has no installation candidate与ERROR 1698 (28000))
  5. 浪潮服务器开启远程管理,浪潮服务器远程管理
  6. P2657 [SCOI2009]windy数
  7. 多层动态库的编译及使用
  8. Codeforces Round #380~#400 div2 总结 - updating
  9. 54-locate 简明笔记
  10. java APIs for database -------- JDBC (1)connection