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

波束延迟求和器

阵列是由一组全向阵元组成,阵元的位置为 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.mzph.cn/news/191040.shtml

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

相关文章

C++入门篇(零) C++入门篇概述

目录 一、C概述 1. 什么是C 2. C的发展史 3. C的工作领域 4. C关键字(C98) 二、C入门篇导论 一、C概述 1. 什么是C C是基于C语言而产生的计算机程序设计语言,支持多重编程模式,包括过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计和设计模式…

SQL Server 2016(创建数据库)

1、实验环境。 某公司有一台已经安装了SQL Server 2016的服务器,现在需要新建数据库。 2、需求描述。 创建一个名为"db_class"的数据库,数据文件和日志文件初始大小设置为10MB,启用自动增长,数据库文件存放路径为C:\db…

Ubuntu系统CLion安装与Ubuntu下菜单启动图标设置

Ubuntu系统CLion安装 pycharm 同理。 参考官网安装过程:官网安装过程 下载linux tar.gz包 # 解压 sudo tar -xzvf CLion-*.tar.gz -C /opt/ sh /opt/clion-*/bin/clion.sh其中第二个命令是启动CLion命令 clion安装完以后,不会在桌面或者菜单栏建立图…

大学里学编程,为什么这么难?

在大学学习计算机专业,为何很多同学觉得编程学得不顺心呢?许多同学会有这种感觉,在上大学里的计算机专业课程时,听得头都大了,但是真正要写代码,却不知道从哪里开始,或是觉得,大学里…

05:2440----代码重定义

目录 一:引入 1:基本概念 2:NAND启动 3:NOR启动 4:变量 5:实验证明 A:代码makefile B:NOR启动 C:NAND启动 D:内存空间 二:链接脚本 1:NOR 2:NAND 3:解决方法 A:尝试解决 B:方法一解决 A:简…

【SparkSQL】SparkSQL的运行流程 Spark On Hive 分布式SQL执行引擎

【大家好,我是爱干饭的猿,本文重点介绍、SparkSQL的运行流程、 SparkSQL的自动优化、Catalyst优化器、SparkSQL的执行流程、Spark On Hive原理配置、分布式SQL执行引擎概念、代码JDBC连接。 后续会继续分享其他重要知识点总结,如果喜欢这篇文…

Echarts大屏可视化_05 折线图的定制开发

继续跟着pink老师学习Echarts相关内容!!!!!!!!! 折线图1 1.引入 折线图选取示例地址 标题没有用到就给他删了 直接引入 注意这里是line下面的chart 获取dom元素一定不…

吉他初学者学习网站搭建系列(4)——如何查询和弦图

文章目录 背景实现ChordDbvexchords 背景 作为吉他初学者,如何根据和弦名快速查到和弦图是一个必不可少的功能。以往也许你会去翻和弦的书籍查询,像查新华字典那样,但是有了互联网后我们不必那样,只需要在网页上输入和弦名&#…

POSTGRESQL中如何利用SQL语句快速的进行同环比?

1. 引言 在数据驱动的时代,了解销售、收入或任何业务指标的同比和环比情况对企业决策至关重要。本文将深入介绍如何利用 PostgreSQL 和 SQL 语句快速、准确地进行这两种重要分析。 2. 数据准备 为了演示,假设我们有一张 sales 表,存储了销…

【PyTorch】线性回归

文章目录 1. 代码实现1.1 一元线性回归模型的训练 2. 代码解读2.1. tensorboardX2.1.1. tensorboardX的安装2.1.2. tensorboardX的使用 1. 代码实现 波士顿房价数据集下载 1.1 一元线性回归模型的训练 import numpy as np import torch import torch.nn as nn from torch.ut…

深度学习:什么是知识蒸馏(Knowledge Distillation)

1 概况 1.1 定义 知识蒸馏(Knowledge Distillation)是一种深度学习技术,旨在将一个复杂模型(通常称为“教师模型”)的知识转移到一个更简单、更小的模型(称为“学生模型”)中。这一技术由Hint…

二叉树遍历及应用

文章目录 前言构建二叉树前序遍历中序遍历后序遍历二叉树的结点个数二叉树的叶节点个数二叉树的高度二叉树第K层结点个数 前言 二叉树的遍历及应用主要是运用了递归、分治的思想。在这一篇文章,小编将介绍二叉树的前序遍历、中序遍历、后序遍历,求二叉树…

Fiddler抓包工具之fiddler设置手机端抓包

fiddler设置手机端抓包 安卓手机抓包 第一步:配置电脑和安卓的相关设置 1、手机和fiddler位于同一个局域网内;首先从fiddler处获取到ip地址和端口号: ,点击online,最后一行就是ip地址 2、路径:Tools》O…

【ASP.NET CORE】数据迁移 codefirst

已经写好实体类,使用add-migration生成数据迁移语句,注意如果项目中有多个dbcontext需要使用 -context 名称,指定下需要使用的dbcontext add-Migration Address -context mvcsqlcontext运行后会生成两个文件 2. 使用Update-Database语句更…

Web自动化测试详解

做测试的同学们都了解,做Web自动化,我们主要用Selenium或者是QTP。 有的人可能就会说,我没这个Java基础,没有Selenium基础,能行吗?测试虽然属于计算机行业,但其实并不需要太深入的编程知识&…

C++学习之路(十六)C++ 用Qt5实现一个工具箱(为屏幕颜色提取功能增加一个点击复制的功能)- 示例代码拆分讲解

上篇文章,我们用 Qt5 实现了在小工具箱中添加了《颜色代码转换和屏幕颜色提取功能》功能。今天我们把屏幕颜色提取的功能再扩展一下,让它可以点击复制吧。下面我们就来看看如何来规划开发这样的小功能并且添加到我们的工具箱中吧。 老规矩,先…

数字图像处理(实践篇)十三 数据增强之给图像添加噪声!

目录 一 涉及的函数 二 实践 一 涉及的函数 skimage.util.random_noise( ) skimage.util.random_noise(image, modegaussian, seedNone, clipTrue, **kwargs) 函数的功能:为浮点型图片添加各种随机噪声。 输入: ①image:输入图像&…

【C/C++笔试练习】公有派生、构造函数内不执行多态、抽象类和纯虚函数、多态中的缺省值、虚函数的描述、纯虚函数的声明、查找输入整数二进制中1的个数、手套

文章目录 C/C笔试练习选择部分(1)公有派生(2)构造函数内不执行多态(3)抽象类和纯虚函数(4)多态中的缺省值(5)程序分析(6)重载和隐藏&a…

【开箱即用】前后端同时开源!周末和AI用Go语言共同研发了一款笔记留言小程序!

大家好,我是豆小匠。 真的是当你在怀疑AI会不会取代人类的时候,别人已经用AI工具加速几倍的生产速度了… 周末体验了和AI共同开发的感受,小项目真的可以一人全干了… 本次实验使用的AI工具有两个:1. GitHub Copilot(…

前端文本省略号后面添加复制文字

前端文本省略号后面添加复制文字 1、效果图 2、代码展示 <div class"link-content-wrap" click"copyLinkText"><div class"link-content">{{ shareResult.url || }} </div><span class"show-ellipsis" click&…