阵列信号处理---频率-波数响应和波束方向图

波束延迟求和器

阵列是由一组全向阵元组成,阵元的位置为 p n p_n pn,如下图所示:

阵元分别在对应的位置对信号进行空域采样,这样就产生了一组信号信号为 f ( t , p ) f(t,p) f(t,p),具体表示如下:

f ( t , p ) = [ f ( t , p 0 ) , f ( t , p 1 ) , … , f ( t , p N − 1 ) ] T f(t,p) = \big[f(t,p_0),f(t,p_1),…,f(t,p_{N-1})\big]^T f(t,p)=[f(t,p0)f(t,p1)f(t,pN1)]T

对每个阵元的输出用一个线性时不变滤波器进行处理,该滤波器的冲激响应为 h n ( τ ) h_n(\tau) hn(τ),并对所有滤波器求和,得到阵列的输出 y ( t ) y(t) y(t),如下图所示:

其中, h n ( τ ) = 1 N δ ( τ + τ n ) h_n(\tau)=\frac{1}{N}\delta(\tau+\tau _n) hn(τ)=N1δ(τ+τn)

假设观察间隔无限长,则 y ( t ) y(t) y(t)可以写为卷积积分的形式:

y ( t ) = ∑ n = 0 N − 1 ∫ − ∞ ∞ h n ( t − τ ) f n ( τ , p n ) d τ y(t)=\sum_{n=0}^{N-1}\int_{-\infty}^{\infty}h_{n}(t-\tau)f_n(\tau,p_n)d\tau y(t)=n=0N1hn(tτ)fn(τ,pn)dτ

用矢量表示为

y ( t ) = ∫ − ∞ ∞ h ( t − τ ) f ( τ , p ) d τ y(t)=\int_{-\infty}^{\infty}\pmb{h}(t-\tau)\pmb{f}(\tau,\pmb{p})d\tau y(t)=h(tτ)f(τ,p)dτ

其中

h ( τ ) = [ h 0 ( τ ) , h 1 ( τ ) , … , h N − 1 ( τ ) ] T \pmb{h}(\tau)=\big[h_{0}(\tau),h_{1}(\tau),…,h_{N-1}(\tau)\big]^T h(τ)=[h0(τ)h1(τ)hN1(τ)]T

在频域表示为

Y ( ω ) = ∫ − ∞ ∞ y ( t ) e − j ω t d t = H ( ω ) F ( ω ) Y(\omega)=\int_{-\infty}^{\infty}y(t)e^{-j\omega t}dt=\pmb{H}(\omega)\pmb{F}(\omega) Y(ω)=y(t)etdt=H(ω)F(ω)

例子:

假如输入是一个平面波,传播方向为 α \alpha α,时域频率为 ω \omega ω f ( t ) f(t) f(t)是在坐标系原点接收到的信号,则

f ( t , p ) = [ f ( t − τ 0 ) , f ( t − τ 1 ) , … , f ( t − τ N − 1 ) ] T f(t,\pmb{p}) = \big[f(t-\tau_0),f(t-\tau_1),…,f(t-\tau_{N-1})\big]^T f(t,p)=[f(tτ0)f(tτ1)f(tτN1)]T

其中,

τ n = α T p n c \tau_n = \frac{\alpha^Tp_n}{c} τn=cαTpn

c c c表示介质中的传播速度, α \alpha α是球坐标系下的一个单位矢量,表示为

α = [ − s i n θ c o s ϕ , − s i n θ s i n ϕ , − c o s θ ] T \alpha=[-sin\theta cos\phi,-sin\theta sin\phi,-cos\theta]^T α=[sinθcosϕsinθsinϕcosθ]T

假设阵元的位置如下所示:

波的入射方位角为45°,俯仰角为45°,波的频率为300Hz,传播速度为340m/s,时域采样率为20KHz,对每个不同阵元接收到的时域信号f显示,结果如下:

代码如下:

clc;
close all;
clear all;P = [0,0,-1; %p00,0,-0.5; %p10,0,0; %p20,0,0.5; %p30,0,1]; %p4%阵元位置
figure(1);
scatter3(P(:,1),P(:,2),P(:,3),...'MarkerEdgeColor','k',...'MarkerFaceColor',[0 .75 .75])
view(135,10);
xlim([0,2]);ylim([0,2]);zlim([-2,2]);
title('阵元阵列示意图')theta = 0; %平面波的入射方位角
phi = 45; %平面波的入射俯仰角a = [-sind(phi)*cosd(theta);-sind(phi)*sind(theta);-cosd(phi)]; %a为单位矢量
c = 340; %传播速度
tau = P * a / c; %波到每个阵元上的时延f0 = 300; %波的频率
fs = 20000; %采样频率
t = 0 : 1/fs : 2/f0; %绘制2个周期
figure(2);
for i = 1:1:5subplot(5,1,i);T = t-tau(i);S(i,:) = cos(2*pi*f0*T);plot(T,S(i,:));title(['P',num2str(i),'阵元接收到信号'])
end

在这种情况下,将每个阵元的输入信号平移,使其在时间上对齐,然后将其相加。操作流程如下图,其中包含了归一化的因子 1 / N 1/N 1/N,使其输出为 f ( t ) f(t) f(t)。其中

h n ( τ ) = 1 N δ ( τ + τ n ) h_n(\tau)=\frac{1}{N}\delta(\tau+\tau_n) hn(τ)=N1δ(τ+τn)

延迟-求和波数形成器

阵列流形矢量

定义为包含阵列的所有空间特征,表示如下

v k ( k ) = [ e − j k p 0 , e − j k p 1 , … , e − j k p N − 1 ] T \pmb{v}_k(k)=\big[e^{-jkp_0},e^{-jkp_1},…,e^{-jkp_{N-1}}\big]^T vk(k)=[ejkp0ejkp1ejkpN1]T

下标 k k k表示参数属于 k k k空间

其中 k k k为波数,定义如下

k = 2 π λ α k=\frac{2\pi}{\lambda}\alpha k=λ2πα

波束的幅度为:

∣ k ∣ = 2 π λ |k|=\frac{2\pi}{\lambda} k=λ2π

频率-波数响应函数

将平面波信号扩展到空时信号,则基函数为 ω \omega ω和波束 k k k的函数,具体形式如下:

f ( t , p ) = e j ω t v k ( k ) \pmb{f}(t,\pmb{p})=e^{j\omega t}\pmb{v}_k(k) f(t,p)=etvk(k)

阵列处理器对一个平面波的响应为,在时域表达上为:

y ( t , k ) = H T ( ω ) v k ( k ) e j ω t y(t,\pmb{k})=\pmb{H}^T(\omega)\pmb{v}_k(k)e^{j\omega t} y(t,k)=HT(ω)vk(k)et

对应到频域上为:

y ( ω , k ) = H T ( ω ) v k ( k ) y(\omega,\pmb{k})=\pmb{H}^T(\omega)\pmb{v}_k(k) y(ω,k)=HT(ω)vk(k)

阵列的空时处理完全由上式可以描述,定义为:

Υ ( ω , k ) = H T ( ω ) v k ( k ) \Upsilon (\omega,k)=H^T(\omega)v_k(k) Υ(ω,k)=HT(ω)vk(k)

波束方向图

一个阵列的波束方向图定义的背景是平面波在一个局部均匀的介质中传播,约束为波动方程,波束方向图是用入射方向表示的频率-波数响应函数,表达如下:

B ( ω : θ , ϕ ) = Υ ( ω , k ) ∣ k = 2 π λ α ( θ , ϕ ) B(\omega:\theta,\phi)=\Upsilon (\omega,k)|_{k=\frac{2\pi}{\lambda}\alpha(\theta,\phi)} B(ω:θ,ϕ)=Υ(ω,k)k=λ2πα(θ,ϕ)

从上式可以看到,波数方向图是频率-波数响应在一个半径为 2 π / λ 2\pi/\lambda 2π/λ的球上的值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/208327.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一些ab命令

1.ab简介 ab是apache自带的压力测试工具,是apachebench命令的缩写。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器如nginx、tomcat、IIS等进行压力测试。 ab的原理:ab命令会创建多个并发…

锐捷EWEB网管系统 RCE漏洞复现

0x01 产品简介 锐捷网管系统是由北京锐捷数据时代科技有限公司开发的新一代基于云的网络管理软件,以“数据时代创新网管与信息安全”为口号,定位于终端安全、IT运营及企业服务化管理统一解决方案。 0x02 漏洞概述 Ruijie-EWEB 网管系统 flwo.control.ph…

Python开发——工具篇 Pycharm的相关配置,Python相关操作 持续更新

前言 本篇博客是python开发的工具篇相关,介绍pycharm的使用和相关配置,收录python的相关操作,比如如何启动jupyter。 目录 前言引出Pycharmpycharm如何不同等级日志显示不同颜色设置不同pycharm的python环境 Python操作如何启动Jupyter 总结…

计算机网络扫盲(2)——网络边缘

一、概述 在计算机网络得到术语中,我们把与因特网相连的计算机或其他设备称为端系统(或者主机),如下图所示,因为它们位于因特网的边缘,所以被称为端系统。因特网的端系统包括了桌面计算机&#xff…

springboot集成邮箱验证功能

准备工作 开启SMTP服务 前往你的邮箱网站,以网易邮箱为例,打开网易邮箱地址,登录你的邮箱,进入邮箱管理后台界面。点击“设置”》》“POP3/SMTP/IMAP”后,点击开启SMTP服务即可。 技术实现 Spring Boot 发送邮件验证…

Edge 旧版本回退

微软官网 下载策略文件 下载后,解压打开 cad 包,把里面的 Windows\ADMX\ 下 3 个 *.admx 文件解压到 C:\Windows\PolicyDefinitions Windows\ADMX\zh-CN 下 3 个 *.adlm 文件解压到 C:\Windows\PolicyDefinitions\zh-CN Windows 搜索 gpedit&#xff…

使用MD5当做文件的唯一标识,这样安全么?

使用MD5作为文件唯一标识符可靠么? 文章目录 使用MD5作为文件唯一标识符可靠么?什么是MD5?MD5的用途MD5作为文件唯一标识的优劣优势劣势 使用MD5作为文件唯一标识的建议其他文件标识算法结束语 什么是MD5? MD5(Messag…

C#:程序发布的大小控制

.net不讨喜有个大原因就是.net平台本身太大了,不同版本没有兼容性,程序依赖哪个版本用户就要安装哪个版本,除非你恰好用的是操作系统默认安装的版本——问题是不同版本操作系统默认安装的不一样。 所以打包程序就很头疼,不打包平台…

docker 安装jekins

echo Asia/Shanghai >/etc/timezone,容器中操作报错:docker容器中 Permission denied 使用该-u选项时,可以使用root用户(ID 0),而不是用默认用户登录docker容器 docker exec -u 0 -it f8a2b3d91455 /bin/bash 或者&#xff…

Ext4文件系统解析(一)

1、前言 熟悉Linux操作系统的都应该或多或少的了解或者使用过Ext4文件系统。 接下来,会简单介绍Ext4文件系统的一些特性和工作原理。 2、常用概念 在介绍Ext文件系统之前,先简单描述一些相关概念。 块(Block):Ext文件系统存储分配的基本单…

进程的创建:fork()

引入 创建进程的方式我们已经学习了一个!在我们运行指令(或者运行我们自己写的可执行程序)的时候不就是创建了一个进程嘛?那个创建进程的方式称为指令级别的创建子进程! 那如果我们想要在代码中创建进程该怎么办呢? fork() for…

Python离线下载torch与各种安装包

目的&#xff1a;在一个没有网络的win7电脑上部署python代码环境。 一、确定部署环境电脑上的python版本 我们需要明白win7上python版本最高为3.8.8&#xff0c;而很多安装包需要的python版本>3.8。所以&#xff1a; 3.8< python安装版本 <电脑支持的python的最高版…

canvas基础:绘制虚线

canvas实例应用100 专栏提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。 canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重要的帮助。 文章目录 示例…

Redis数据存储:高效、灵活、实时

目录 引言 1. Redis概述 1.1 什么是Redis&#xff1f; 1.2 Redis的数据结构 1.3 Redis的持久化机制 2. Redis的使用场景 2.1 缓存 2.2 会话存储 2.3 发布/订阅系统 2.4 计数器和排行榜 3. Redis最佳实践 3.1 数据模型设计 3.2 键的命名规范 3.3 事务和原子操作 3…

Unittest自动化测试之unittestunittest_生成测试报告

unittest_生成测试报告 测试报告为测试结果的统计即展示&#xff0c;是自动化测试不可或缺的一部分&#xff0c;利用unittest 可以生成测试报告 方式一、使用第三方 HTMLTestRunner 执行测试用例集&#xff0c;生成网页版测试报告&#xff08;推荐&#xff09; HTMLTestRunn…

【C语言:数据在内存中的存储】

文章目录 1.整数在内存中的存储1.1整数在内存中的存储1.2整型提升 2.大小端字节序2.1什么是大小端2.2为什么有大小端之分 3.整数在内存中的存储相关题目题目一题目二题目三题目四题目五题目六题目七 4.浮点数在内存中的存储4.1浮点数存的过程4.2浮点数取得过程 在这之前呢&…

Android问题笔记四十九:ViewPager 嵌套 Fragment 扩大滑动响应区域,避免左右滑动过于灵敏问题

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

【Python】获取ip

要使用Python获取IP地址&#xff0c;可以使用socket库中的gethostname()函数和gethostbyname()函数。 import socketdef get_ip_address():hostname socket.gethostname()ip_address socket.gethostbyname(hostname)return ip_addressip get_ip_address() print("IP地…

Docker中部署并启动RabbitMQ

目的 由于最近频繁更换云服务器&#xff0c;导致环境啥的都需要重新配置&#xff0c;关于RabbitMQ&#xff0c;我在看其他博主的文章时&#xff0c;总是不能第一时间找到想要的配置方法&#xff08;也不是没有&#xff0c;只是花的时间太久&#xff09;&#xff0c;于是打算自己…

k8s ingress 无法找到端点

文章目录 ingress rule无法找到端点这个注解是什么意思呢&#xff1f;为何不生效呢&#xff1f;端点无法更新&#xff1f;如何确认ingressclass呢&#xff1f;修复端点无法发现的问题多个ingress controller 架构 ingress rule无法找到端点 在vnnox-cn集群创建ingress&#xf…