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

波束延迟求和器

阵列是由一组全向阵元组成,阵元的位置为 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安装完以后,不会在桌面或者菜单栏建立图…

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

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

线性表 力扣67. 二进制求和

题目 67. 二进制求和 翻译 主要思路 核心思路是像竖式计算一样,不过需要将字符串a和b反转后逐位进行二进制计算得到字符串c,最后再将c反转就是答案 逐位计算的时候利用count,在将a和b当前位置数字相加后通过模2来决定字符串c对应位置的数…

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

读书笔记:《More Effective C++》

More Effective C Basics reference & pointer reference 必定有值,pointer 可以为空reference 声明时必须定义,必须初始化reference 无需测试有效性,pointer 必须测试是否为 nullreference 可以更改指向对象的值,但是无法…

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…

[足式机器人]Part4 南科大高等机器人控制课 Ch00 课程简介

本文仅供学习使用 本文参考: B站:CLEAR_LAB 南科大高等机器人控制课 Ch00 课程简介 1. What is this course about?2. Tentative Schedule暂定时间表 1. What is this course about? Develop a solid foundation in robot modeling and control to co…

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

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

亚马逊首席技术官2024年科技预测

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

二叉树遍历及应用

文章目录 前言构建二叉树前序遍历中序遍历后序遍历二叉树的结点个数二叉树的叶节点个数二叉树的高度二叉树第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语句更…

#Css篇:实现一个元素水平和垂直居中实现左右固定,中间自身适应布局 左侧固定 右侧自适应

实现一个元素水平和垂直居中 元素示例&#xff1a; <div class"container"><div class"centered-element">居中的内容</div> </div>flex布局 .container {display: flex;justify-content: center;align-items: center;height: …

Web自动化测试详解

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