确知波束形成matlab仿真
阵列信号处理中的导向矢量
假设一均匀线性阵列,有N个阵元组成,满足:远场、窄带假设。

假设信源发射信号,来波方向为 θ \theta θ,第一个阵元接收到的信号为 x ( t ) x(t) x(t),则第 n n n个阵元接收的信号可以表示为 X = x ( t ) e j 2 π ∗ ( n − 1 ) d s i n θ λ X=x(t)e^{j2\pi*(n-1)\frac{dsin\theta}{\lambda}} X=x(t)ej2π∗(n−1)λdsinθ,可以得到阵列对信号的响应,即导向矢量(steering vector):
a ( θ ) = [ 1 , e j 2 π ∗ d s i n θ λ , e j 2 π ∗ 2 ∗ d s i n θ λ , . . . , e j 2 π ∗ ( N − 1 ) ∗ d s i n θ λ ] T a(\theta)=[1,e^{j2\pi*\frac{dsin\theta}{\lambda}},e^{j2\pi*2*\frac{dsin\theta}{\lambda}},...,e^{j2\pi*(N-1)*\frac{dsin\theta}{\lambda}}]^T a(θ)=[1,ej2π∗λdsinθ,ej2π∗2∗λdsinθ,...,ej2π∗(N−1)∗λdsinθ]T
那么阵列输出为: y = a ( θ ) x ( t ) y=a(\theta)x(t) y=a(θ)x(t)
matlab中可以一行代码来实现:
% Input :
% * N: 阵元数
% * theta:来波方向
% * dLembda:阵元间距与波长的比值,通常为1/2
% Output :
% * aTheta:导向矢量,列向量
aTheta = exp(1i*2*pi*dLembda*[0:N-1]'*sin(theta/180*pi));
确知波束形成
确知波束形成就是通过对各阵元接收到的信号进行加权求和的方式,使的波束指向一个确定的方向,经过波束形成之后,阵列接收的信号就由一个矩阵变为了一个向量,此时只是一个信号。假设来波方向为 θ \theta θ,确知波束形成的权重,就是导向矢量的埃尔米特转置,即共轭转置:
W = a ( θ ) H = [ 1 , e − j 2 π ∗ d s i n θ λ , e − j 2 π ∗ 2 ∗ d s i n θ λ , . . . , e − j 2 π ∗ ( N − 1 ) ∗ d s i n θ λ ] W=a(\theta)^{H}=[1,e^{-j2\pi*\frac{dsin\theta}{\lambda}},e^{-j2\pi*2*\frac{dsin\theta}{\lambda}},...,e^{-j2\pi*(N-1)*\frac{dsin\theta}{\lambda}}] W=a(θ)H=[1,e−j2π∗λdsinθ,e−j2π∗2∗λdsinθ,...,e−j2π∗(N−1)∗λdsinθ]
波束形成之后,输出信号为:
y = W X = W a ( θ ) x ( t ) y=WX=Wa(\theta)x(t) y=WX=Wa(θ)x(t)
静态波束形成其实就是空间滤波,它对指定方向上的信号进行加强和选择性通过,而对其他方向的来波信号进行抑制,例如有一个信源发出信号为 x 1 ( t ) x_1(t) x1(t)的波达方向为 θ 1 = 1 0 ∘ \theta_1=10^{\circ} θ1=10∘,而波束指向 θ 2 = 2 0 ∘ \theta_2=20^{\circ} θ2=20∘,此时
导向矢量(steering vector):
a ( θ 1 ) = [ 1 , e j 2 π ∗ d s i n θ 1 λ , e j 2 π ∗ 2 ∗ d s i n θ 1 λ , . . . , e j 2 π ∗ ( N − 1 ) ∗ d s i n θ 1 λ ] T a(\theta_1)=[1,e^{j2\pi*\frac{dsin\theta_1}{\lambda}},e^{j2\pi*2*\frac{dsin\theta_1}{\lambda}},...,e^{j2\pi*(N-1)*\frac{dsin\theta_1}{\lambda}}]^T a(θ1)=[1,ej2π∗λdsinθ1,ej2π∗2∗λdsinθ1,...,ej2π∗(N−1)∗λdsinθ1]T
那么阵列输出为: y = a ( θ 1 ) x 1 ( t ) y_=a(\theta_1)x_1(t) y=a(θ1)x1(t)。
指向 2 0 ∘ 20^{\circ} 20∘确知波束对阵元的加权的权重为:
W = a ( θ 2 ) H = [ 1 , e − j 2 π ∗ d s i n θ 2 λ , e − j 2 π ∗ 2 ∗ d s i n θ 2 λ , . . . , e − j 2 π ∗ ( N − 1 ) ∗ d s i n θ 2 λ ] W=a(\theta_2)^{H}=[1,e^{-j2\pi*\frac{dsin\theta_2}{\lambda}},e^{-j2\pi*2*\frac{dsin\theta_2}{\lambda}},...,e^{-j2\pi*(N-1)*\frac{dsin\theta_2}{\lambda}}] W=a(θ2)H=[1,e−j2π∗λdsinθ2,e−j2π∗2∗λdsinθ2,...,e−j2π∗(N−1)∗λdsinθ2]
波束形成之后,输出信号为:
y = W X = W a ( θ 1 ) x 1 ( t ) = ( a ( θ 2 ) ) T a ( θ 1 ) x 1 ( t ) = ( 1 ∗ 1 + e j ∗ 2 π d λ ( s i n θ 1 − s i n θ 2 ) + e j ∗ 2 π ∗ 2 ∗ d λ ( s i n θ 1 − s i n θ 2 ) + . . . + e j ∗ 2 π ∗ ( N − 1 ) ∗ d λ ( s i n θ 1 − s i n θ 2 ) ) x 1 ( t ) y=WX=Wa(\theta_1)x_1(t)=(a(\theta_2))^Ta(\theta_1)x_1(t)=(1*1+e^{j*2\pi \frac{d}{\lambda}(sin\theta_1-sin\theta_2)}+e^{j*2\pi *2* \frac{d}{\lambda}(sin\theta_1-sin\theta_2)}+...+e^{j*2\pi *(N-1)* \frac{d}{\lambda}(sin\theta_1-sin\theta_2)})x_1(t) y=WX=Wa(θ1)x1(t)=(a(θ2))Ta(θ1)x1(t)=(1∗1+ej∗2πλd(sinθ1−sinθ2)+ej∗2π∗2∗λd(sinθ1−sinθ2)+...+ej∗2π∗(N−1)∗λd(sinθ1−sinθ2))x1(t)
我们对其中的权重取绝对值进行分析,因为 θ 1 ≠ θ 2 \theta_1 \neq \theta_2 θ1=θ2 ,所以每一项进行加权后的绝对值都小于1,而只有第一项等于1:
∣ e j ∗ 2 π d λ ∗ n ∗ ( s i n θ 1 − s i n θ 2 ) ∣ < 1 , n = 2 , 3 , . . . , N − 1 |e^{j*2\pi \frac{d}{\lambda}*n*(sin\theta_1-sin\theta_2)}|<1,n=2,3,...,N-1 ∣ej∗2πλd∗n∗(sinθ1−sinθ2)∣<1,n=2,3,...,N−1
但是当波束指向方向与来波方向重合的时候,即 θ 1 = θ 2 = 2 0 ∘ \theta_1=\theta_2=20^{\circ} θ1=θ2=20∘的时候
y = W X = W a ( θ 1 ) x 1 ( t ) = ( a ( θ 2 ) ) T a ( θ 1 ) x 1 ( t ) = ( 1 + 1 + . . . + 1 ) x 1 ( t ) = N x 1 ( t ) y=WX=Wa(\theta_1)x_1(t)=(a(\theta_2))^Ta(\theta_1)x_1(t)=(1+1+...+1)x_1(t)=Nx_1(t) y=WX=Wa(θ1)x1(t)=(a(θ2))Ta(θ1)x1(t)=(1+1+...+1)x1(t)=Nx1(t)
其中 N N N为阵元个数,即信号 x 1 ( t ) x_1(t) x1(t)被增强 N N N倍。
阵列方向图
我们可以通过仿真,绘制方向图,来直观展示阵列的空间滤波响应,方向图定义为阵列输入为平面波的时候,阵列输出(通常只是考虑输出幅度或者功率与平面波入射角的关系)。一维线阵在阵列基线上的幅度方向图为:
G ( θ ) = ∣ W H a ( θ ) ∣ G(\theta)=|W^Ha(\theta)| G(θ)=∣WHa(θ)∣
功率方向图为:
G ( θ ) = ∣ W H a ( θ ) ∣ 2 G(\theta)=|W^Ha(\theta)|^2 G(θ)=∣WHa(θ)∣2
不管是幅度方向图还是功率方向图,都和阵列的权矢量有关,在工程中,分贝形式的方向图更为普遍,幅度方向图和功率方向图的分贝形式分别为:
G ( θ ) = 10 l g ∣ W H a ( θ ) ∣ G(\theta)=10lg|W^Ha(\theta)| G(θ)=10lg∣WHa(θ)∣
功率方向图为:
G ( θ ) = 20 l g ∣ ∣ W H a ( θ ) ∣ 2 G(\theta)=20lg||W^Ha(\theta)|^2 G(θ)=20lg∣∣WHa(θ)∣2
阵列方向图仿真
下面采用matlab仿真,绘制方向图,编写的方向图自定义函数
function Gtheta = DBF(elementNum,observaTheta,pointTheta,dLmbda,plotEnableHigh)
% 该函数用于产生方向图
% Author:huasir 2023.9.24 @Beijing
% Input :
% * elementNum: 阵元数
% * observaTheta:观测角度范围,例如[-90:0.1:90]
% * theta:来波方向
% * dLembda:阵元间距与波长的比值,通常为1/2
% Output :
% * GTheta:方向图
N = elementNum; %阵元数
theta = observaTheta; %观测角度范围
theta0 = pointTheta; %波形形成的方向
theta0 = theta0*pi/180;
theta = theta*pi/180;
d_lembda = dLmbda; %阵元间距比波长
a = exp(j*2*pi*d_lembda*(0:N-1)'*sin(theta)); %导向矢量
w = exp(j*2*pi*d_lembda*(0:N-1)'*sin(theta0)); %加权权向量
y = abs(w'*a);
%win = taylorwin(N); % 泰勒窗
%win = chebwin(N,30); %切比雪夫窗,抑制旁瓣
% ww = w.*win; %加窗操作
% y1 = abs(ww'*a); %加窗后的方向图
if plotEnableHigh == 1figure;%plot(theta*180/pi,20*log10(y/max(y)),'--',theta*180/pi,20*log10(y1/max(y1)),'-');plot(theta*180/pi,20*log10(y/max(y)),'linewidth',1);xlabel('方位角/°');ylabel('归一化功率方向图/dB');axis tight;% axistight 使得图形框图靠近数据grid on; %添加栅格线ylim([-40, 0]); % 为了限制y值范围,使得图像显示的更加合理title(sprintf('阵元数:%d,波束方向:%.0f°',N,pointTheta))
end
Gtheta = y; %返回方向图
end
在主函数中进行调用,主要参数如下:
| 参数 | Value |
|---|---|
| 阵元 | 8 |
| 波束方向 | 10° |
| 阵元间距 | 1 / 2 λ 1/2\lambda 1/2λ |
主函数中进行调用:
close all; clear all; clc;
Gtheta = DBF(8,(-90:0.1:90),10,1/2,1);
绘制的方向图如下:

相关文章:
确知波束形成matlab仿真
阵列信号处理中的导向矢量 假设一均匀线性阵列,有N个阵元组成,满足:远场、窄带假设。 图1. 均匀线性阵模型 假设信源发射信号,来波方向为 θ \theta θ,第一个阵元接收到的信号为 x ( t ) x(t) x(t),则第…...
并发编程相关面试题
线程基础 线程和进程的区别: ----------------------------------------------------------------------- 创建线程的方式: 1 继承Thread类 2 实现runnable接口 3 实现callable 接口(有返回值的) 4 线程池创建线程 ------…...
Cpp/Qt-day050921Qt
目录 实现使用数据库的登录注册功能 头文件: registrwidget.h: widget.h: 源文件: registrwidget.c: widget.h: 效果图: 思维导图 实现使用数据库的登录注册功能 头文件: registrwidget.h: #ifndef REGISTRWIDGET_H #de…...
视频汇聚/视频云存储/视频监控管理平台EasyCVR分发rtsp流起播慢优化步骤详解
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...
ElementUI之登陆+注册->饿了吗完成用户登录界面搭建,axios之get请求,axios之post请求,跨域,注册界面
饿了吗完成用户注册登录界面搭建axios之get请求axios之post请求跨域 1.饿了吗完成用户注册登录界面搭建 将端口号8080改为8081 导入依赖,在项目根目录使用命令npm install element-ui -S,添加Element-UI模块 -g:将依赖下载node_glodal全局依…...
2023华为杯研究生数学建模研赛E题出血脑卒中完整论文(含28个详细预处理数据及结果表格)
大家好呀,从发布赛题一直到现在,总算完成了全国研究生数学建模竞赛(数模研赛)E题完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。…...
Java中的继承是什么?
在Java中,继承是一种面向对象编程的概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。通过继承,子类可以获得父类的属性和方法,并且可以添加自己的特…...
Python - flask后端开发笔记
Flask入门 有一篇很全面的博客可以参考:Python Flask Web 框架入门 跨域问题处理 from flask_cors import CORS CORS(app,supports_credentialsTrue,origins[url], # 前端url列表 ) 文件发送 from flask import send_from_directory app.route(/download) …...
Flutter实现PS钢笔工具,实现高精度抠图的效果。
演示: 代码: import dart:ui;import package:flutter/material.dart hide Image; import package:flutter/services.dart; import package:flutter_screenutil/flutter_screenutil.dart; import package:kq_flutter_widgets/widgets/animate/stack.dart…...
苏宁滑块验证
网址:https://passport.suning.com/ids/login总结一下,别被他的表面现象给骗了,这玩意儿,个人认为,腾讯的都没法跟他比!!! 难点:动态混淆,vmp,图片…...
c语言。。。
gcc thread.c -lpthread -o app -fexec-charsetgbkthread.c为当前目录下编写的c代码 代码中引入了<pthread.h>线程库,所以要加上-lpthread -o app 输出.exe的c可执行文件,文件名为app -fexec-charsetgbk 设置编码方式,防止控制台输出中…...
vue-cli创建项目、vue项目目录结(运行vue项目)、ES6导入导出语法、vue项目编写规范
vue-cli创建项目、vue项目目录结构、 ES6导入导出语法、vue项目编写规范 1 vue-cli创建项目 1.1 vue-cli 命令行创建项目 1.2 使用vue-cli-ui创建 2 vue项目目录结构 2.1 运行vue项目 2.2 vue项目的目录结构 3 es6导入导出语法 4 vue项目编写规范 4.1 修改项目 4.2 以后…...
QT读取DLL加载算法
有这样一个场景,我有一个GUI软件,把他想象成PS软件,集成了很多工具。现在我要添加新算法(PS工具),该怎么办? 有三种办法: 第一种我把新算法代码加到项目中,编译整个项目。 第二种,新…...
HTTPX-用于Python的下一代HTTP客户端
1、前言 在使用 Python 进行接口自动化时,大多数都会使用 requests 模块,requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。 本篇将介绍 Python 的下一代 HTTP 客户端 - HTTPX 2、简介 HTT…...
[LLM+AIGC] 01.应用篇之中文ChatGPT初探及利用ChatGPT润色论文对比浅析(文心一言 | 讯飞星火)
近年来,人工智能技术火热发展,尤其是OpenAI在2022年11月30日发布ChatGPT聊天机器人程序,其使用了Transformer神经网络架构(GPT-3.5),能够基于在预训练阶段所见的模式、统计规律和知识来生成回答,…...
OCR -- 文本检测
目标检测: 不仅要解决定位问题,还要解决目标分类问题,给定图像或者视频,找出目标的位置(box),并给出目标的类别; 文本检测: 给定输入图像或者视频,找出文本的…...
【系统架构】软件可靠性基础知识
导读:本文整理关于软件可靠性基础知识构建系统架构知识体系。完整和扎实的系统架构知识体系是作为架构设计的理论支撑,基于大量项目实践经验基础上,不断加深理论体系的理解,从而能够创造新解决系统相关问题。 目录 1、软件可靠性…...
相机Camera
Camera需与SurfaceView配合使用 Camera类常用方法: Camera.open() 创建Camera实例,打开相机 getParameters() 获取相机参数 release() 释放相机资源 setParameters(Camera.Parameters parameters) 设置相机参数 setPreviewDisplay(SurfaceHolder holde…...
洛谷P8815:逻辑表达式 ← CSP-J 2022 复赛第3题
【题目来源】https://www.luogu.com.cn/problem/P8815https://www.acwing.com/problem/content/4733/【题目描述】 逻辑表达式是计算机科学中的重要概念和工具,包含逻辑值、逻辑运算、逻辑运算优先级等内容。 在一个逻辑表达式中,元素的值只有两种可能&a…...
ElementUI实现登录注册+axios全局配置+CORS跨域
一、搭建项目 1.1 安装 Element-UI 先确保是否安装了vue-cli脚手架工具 !!! 安装vue脚手架可以看看我的上一篇博客 构建好项目后通过npm安装element-ui cd 项目根路径 #进入新建项目的根目录 npm install element-ui -S #安装…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...
