阵列波束形成与维纳滤波

      本篇文章是博主在通信等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对通信等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在通信领域笔记:

          通信领域笔记(7)---《阵列波束形成与维纳滤波》

阵列波束形成与维纳滤波

目录

一、阵列波束形成基础知识

二、维纳滤波与波束形成

三、MVDR 波束形成器

四、 MVDR 波束形成器 Matlab 仿真

五、 小结


一、阵列波束形成基础知识

        波束形成是维纳滤波器理论在空间阵列信号处理中的应用形式。现通过对比,将来源于时间信号处理的许多方法方便地移植到空间信号处理领域。

        波束形成的目的就是从天线阵列接收到的信号来重构出源信号。要准确地重构出源信号,一般来说要注意到两个方面:一是增加期望信号在接收信号中的贡献,即要将天线阵列方向图的主瓣对准期望信号的来波方向:二是抑制干扰信号在接收信号中的作用,即尽可能在干扰来波方向上形成很深的零点。阵列波束形成的示意图如图 1 所示。

        波束形成的基本思想就是将各阵元的输出信号进行加权求和,使阵列波束在期望方向上形成峰值,在干扰方向上形成零点。

1.基本假设

        信号通过无线信道的传输情况相当复杂,其严格的数学模型的建立需要对信道进行完整地描述,但是这样处理问题往往非常复杂,不利于考查问题的实质。为了得到比较简洁的数学模型,做了以下假设:

        关于天线阵列的假设 天线阵列由位于空间已知坐标处的无源阵元按一定的形式排列而成。假设阵元的接收特性仅与其位置有关而与尺寸无关,阵元本身尺寸大小为零,即可等效成一个点,并且阵元都是全向阵元,增益相等,都为 OdB.

        相互之间的互耦忽略不计。阵元接收信号时将产生噪声,假设其为加性高斯白噪声,各阵元上的噪声相互统计独立,且噪声与信号统计独立。

        关于信号源的假设 假设空间信号的传播介质是均匀且各向同性,电磁波在介质中将按直线传播。另外,我们只考察阵列处于空间信号源辐射的远场中的情况,因此信号到达阵列时可以看作为一束平行的平面波,信号到达阵列各阵元的不同延时仅由阵列的几何结构和信号的来波方向决定。


二、维纳滤波与波束形成

        一个天线阵列可以用来接收单个信号,也可以用来接收多个信号,即多波束形成。这里考察最简单的情形:线阵等距,只有一个入射信号,没有干扰信号,并且阵元背景噪声为相互独立高斯白噪声,且与信号独立。

        容易看出,在这种情况下,最优权值的表示相当简单,就是阵列方向向量,仅仅幅度有了变化。值得注意的是,这里我们做了一系列很强的假设才得到如此简明的表达形式,如信号的平稳性,相互独立的等功率高斯白噪声,以及信噪声不相关等等。在实际应用中,这此假设往往不能满足,还需要其他一些处理方法。


三、MVDR 波束形成器

        MVDR 波束形成器即最小方差无畸变响应波束形成器(minimum variance distortionless response),也称作 Capon 波束形成器,最早是由 Capon 提出的。

        由此优化问题的数学模型可知,如果阵列接收到的只有期望信号和噪声,最优权值的方向图将在期望方向上形成一定高度的主瓣,同时尽量压低旁瓣,

        抑制 噪声功率;如果同时有方向性干扰存在,则最优权值的方向图将在干扰方向上形 成一个零点,从而抑制干扰功率。 MVDR 波束形成器能够自适应地抑制干扰,并且同传统的波束形成器相比具 有更高的空间分辨率,因此得到很广泛的应用。下面我们考查一下 MVDR 波束形成器和维纳滤波之间的联系。

维纳滤波是极小化均方误差:

        同解。上式即为 MVDR 波束形成器的优化目标函数。因此 MVDR 波束形成器实际是一个加了约束条件的维纳滤波器,由此也可进一步体会到维纳滤波器具有的广泛性意义。

        依据案例背景,设计一个 MVDR 波束形成器,仿真实现从天线阵列接收信号来重构出源信号的过程。采用等距线阵,只有一个入射信号,没有干扰信号,并且阵元背景噪声为相互独立高斯白噪声,且与信号独立。信号的入射方向为信号的入射方向为 0 ,阵元个数 M,阵元间距 d,期望信号为 s(t) 等自行设置。


四、 MVDR 波束形成器 Matlab 仿真

4.1 MATLAB代码实现

(1)参数设置

% 参数 Parameters
M   = 12;               % 阵元数目
c   = 3e8;              % 光速
f   = 10e9;             % 频率
l   = c/f;              % 波长
d   = l/2;              % 阵元间隔
phi = [10,20,30,40]*pi/180;   % 信号角度
Kt  = 1;                % 目标信号数目
snr = 20;               % 信噪比
inr = 10;               % 干噪比
Ac  = 3601;             % 角度采样数

2)计算阵元位置和方向矩阵

% 计算阵元位置
R = d * (0:M-1)';% 计算方向矩阵
K = length(phi);        % 信号数目
A = zeros(M,K);         % 初始化方向矩阵
for k = 1:Kfor m = 1:MA(m,k) = exp(1j * 2 * pi * R(m,1)* sin(phi(k))/l);end
end

3)构造从天线阵列接收信号

% 构造信号
Ts = 16;              % 快拍数  
Kj = K - Kt;            % 干扰信号数目
s = zeros(K,Ts);        % 信号
sd = zeros(1,Ts);       % 期望信号
for k = 1:Ktfor i = 0:Ts-1s(k,i+1) = sqrt(10^(snr/10)) * exp(1j * 2 * pi * f * i/(2*Ts)); % s(k,i+1) = exp(1j * 2 * pi * f * i/(2*Ts)); endawgn(s(k),snr)sd = sd + s(k,:);
end
sd = sd/Kt;
if Kj ~= 0for k = Kt+1:Kfor i = 0:Ts-1s(k,i+1) = sqrt(10^(inr/10)/2) * (randn(1) + 1j*randn(1)) * exp(1j * 2 * pi * f * i/(2*Ts));% s(k,i+1) = exp(1j * 2 * pi * f * i/(2*Ts));endend
end

4)设计 MVDR 波束形成器重构出源信号

% 接收数据向量
n = (randn(M,Ts)+1j*randn(M,Ts))/sqrt(2);
x = A * s+n;% MVDR
J = A(:,Kt+1:K) * s(Kt+1:K,:);
Rnj = 1/Ts * (J*J'+n*n');
Rpriv = pinv(Rnj);%求伪逆
w = Rpriv*A(:,1)/(conj(A(:,1).')*Rpriv*A(:,1));

(5)绘图

% 方向图
theta = linspace(-pi,pi,Ac);
y = zeros(1,Ac);
for i = 1:Aca = exp(1j * 2 * pi * R(:,1)* sin(theta(i))/l);y(i) = conj(w.') * a;
endydB = 20*log10(abs(y)/max(abs(y)));p=find(ydB==max(ydB));
% 绘图
figure('name','波束方向图','color',[1,1,1]);
set(gcf,'position',[458,342,290,200])
plot(theta * 180/pi,ydB,'color','b','linestyle','-','linewidth',1);
grid on
xlim([-90,90]);
ylim([-60,0]);
set(gca,'xtick',-90:30:90);
set(gca,'FontName','Times New Roman','FontSize',10.5);
xlabel('Direction of Arrival of the Signal (Degree)','FontSize',10.5);
ylabel('Magnitude Response (dB)','FontSize',10.5);
text(theta(p) * 180/pi,ydB(p),['(',num2str(theta(p) * 180/pi),',',num2str(ydB(p)),')'],'color','r'...)

4.2 基本参数下 Matlab 仿真结果

        在阵元个数 M =12、阵元间距 d=1/2,信号角度 phi = [10,20,30,40]快拍数为1024 条件下的仿真结果,其中 10 度方向为目标信号,将其他方向的信号当做干扰信号。

        首先生成目标信号,在信噪比为 0dB 情况下第一个阵元接收到的信号如图所示,可以看到信号到达阵元时由于噪声的影响,波形发生了明显的畸变,起伏明显。

        阵列波束形成后得扫描得到的方位角如下图 4-2 所示,在目标信号方向得到的幅度最大,符合波束形成预期结果。

        转换为 dB 表示后,可以明显看到整列波束形成后,在干扰信号的来波方向上产生了很深的零点,如图所示。

4.3 改变阵元个数

4.4 改变阵元间距

4.5 改变信号角度


五、 小结

        通过 MVDR 波束形成器 Matlab 仿真,我们使用 MVDR 波束形成器能够有效地重构出源信号,验证了其在单入射、无干扰情况下的性能。通过调整阵元个数 M 和阵元间距 d,我们观察到对波束形成器性能的影响,进一步优化了系统的工作效果。同时,我们还分析了期望信号入射方向对波束形成器性能的影响,从而深入理解了算法在不同条件下的适用性。

        实验结果表明,在阵元数量越多,波束形成后得到的方向谱估计越准确,并且分辨率越高,同时计算量以及系统的复杂程度也会增大;另外阵元之间的间距与会影响波束形成的结果,因为阵元之间的间距会影响信号到达不同阵元时的相位,间距过大时,会产生错误估计,间距过小会导致各阵元接收到的信号相位差距不大,导致分辨率降低,因此一般情况下都选择阵元间距为波长的一半。快拍数也会对波束形成的结果产生,很大的影响,采样次数太少直接导致结果准确率大大下降,过多的采样次数会增加运算量,因此需要找到一个合适的快拍数,平衡准确率和运算量之间的关系。


     文章若有不当和不正确之处,还望理解与指出。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请联系博主删除。如有错误、疑问和侵权,欢迎评论留言联系作者,或者私信联系作者。

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

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

相关文章

算法设计与分析 实验4 动态规划法求扔鸡蛋问题

目录 一、实验目的 二、问题描述 三、实验要求 四、实验内容 动态规划法 算法描述 算法伪代码描述 算法复杂度分析 数据测试 二分优化的动态规划法 算法描述 二分优化: 算法伪代码 算法复杂度分析 数据测试 单调决策优化的动态规划法 算法描述 算…

多线程下JVM内存模型 和 volatile关键字

1、线程的概念 线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务…

微软修复Wi-Fi驱动高危漏洞 影响Windows所有版本 可通过局域网发起攻击

微软修复 WiFi 驱动程序中的高危安全漏洞,该漏洞影响 Windows 所有版本,可以通过公共 WiFi 等发起攻击。如果攻击者能够接入到目标设备所处的网络中,则可以悄无声息完成攻击,不需要用户进行任何交互。 在本月例行安全更新中微软修…

oracle 主从库中,从库APPLIED为YES ,但是主库任然为NO

主库 从库 从库已经APPLIED但是主库为APPLIED, 主数据库和备用数据库之间的ARCH-RFS心跳Ping负责更新主数据库上v$archived_log的APPLICED列。 在主数据库上有一个指定的心跳ARCn进程来执行此Ping。如果此进程开始挂起,它将不再与远程RFS进程通信&#…

WEB自动化测试(selenium工具)框架、面试题

一、什么是web自动化测试 让程序员代替人为去验证web项目功能的过程 二、什么web项目适合自动化测试 1)需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本&…

单木:面试官超爱问的字符串,今天给它彻底讲透

本文已收录于:https://github.com/danmuking/all-in-one(持续更新) 前言 哈喽,大家好,我是 DanMu。今天这边文章,想和大家聊聊有关字符串的问题,字符串似乎很简单,但其实字符串几乎…

MySQL之复制(七)

复制 定制的复制方案 分离功能 许多应用都混合了在线事务处理(OLTP)和在线数据分析(OLAP)的查询。OLTP查询比较短并且是事务型的。OLAP查询则通常很大,也很慢,并且不要求绝对最新的数据。这两种查询给服务器带来的负担完全不同,因此它们需…

嵌入式linux系统中UART子系统基本实现

今天主要给大家分享一下,如何使用linux系统中的UART帧结构。 第一:UART串口波形 先观察UART波形,是如何被准确识别成字符D,而不是其他的内容呢? 当两个设备需要通过UART协议进行通讯时,它们需要同时约定好以下内容: 每—位信号的时间长度T(波特率= 1/T) 帧结构中每—…

fastadmin多语言切换设置

fastadmin版本:1.4.0.20230711 以简体,繁体,英文为例 一,在application\config.php 里开启多语言 // 是否开启多语言lang_switch_on > true, // 允许的语言列表allow_lang_list > [zh-cn, en,zh-tw], 二…

动态规划——达拉崩吧

1、题目链接 174. 地下城游戏 2、题目分析 假如说我们正向推状态转移方程,很难推出来,因为这道题有“加血”的说法,只能依靠后面的值判断前面所需要的血量,也就是说,如果正向的dp表示从起点出发,到达&…

【人工智能,机器学习,统计学习,科学表征】开源商用与研发合作

个体工户linjing-lab托管在Github,现公开招募商用与合作人员,目标人群分为以下几个方向: 数学、信息科学、计算机专业的大学高年级学生,熟悉C和面向对象模型,擅长Pybind11编译算子到Python环境。26岁以下的大学本科毕…

Srouce Insight 4出现乱码

今天用SI4打开一个工程文件,一打开发现注释全是乱码。中文全部看不出来,英文和数字可以看得出来。 那是因为中文的编码格式不算特别兼容。所以需要调整编码格式。 于是我在这里调整了编码格式: 找到菜单的Options-Preferences里面的Files 调…

Kubernetes容器运行时:Containerd vs Docke

容器化技术笔记 Kubernetes容器运行时:Containerd vs Docke - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this arti…

数据可视化实验五:seaborn绘制进阶图形

目录 一、绘制动态轨迹图 1.1 代码实现 1.2 绘制结果 二、使用seaborn绘制关系图 2.1 绘制散点图分析产品开发部已离职的员工的评分与平均工作时间 2.1.1 代码实现 2.1.2 绘制结果 ​编辑 2.2 基于波士顿房价数据,绘制房间数和房屋价格的折线图 2.2.1 代码…

vscode用vue框架写一个登陆页面

目录 一、创建登录页面 二、构建好登陆页面的路由 三、编写登录页代码 1.添加基础结构 2.给登录页添加背景 3.解决填充不满问题 4.我们把背景的红颜色替换成背景图: 5.在页面中央添加一个卡片来显示登录页面 6.设置中间卡片页面的左侧 7.设置右侧的样式及…

【深度学习】GELU激活函数是什么?

torch.nn.GELU 模块在 PyTorch 中实现了高斯误差线性单元(GELU)激活函数。GELU 被用于许多深度学习模型中,包括Transformer,因为它相比传统的 ReLU(整流线性单元)函数能够更好地近似神经元的真实激活行为。…

vue小总结

知识总结 【 1 】es6 语法总结 # let 定义变量 # const定义常量 ------块级作用域---- # var 以后尽量少用,函数作用域var 在 JavaScript 中是函数作用域或全局作用域。而 let 和 const 是块级作用域。 // 使用 var 声明全局变量 var globalVar "Im a globa…

【全网最全最详细】RabbitMQ面试题

一、说下RabbitMQ的架构大致是什么样的? RabbitMQ是一个开源的消息中间件,用于在应用程序之间传递消息。它实现了AMQP(高级消息队列协议)并支持其它消息传递协议,例如STOMP(简单文本定向消息协议&#xff…

Linux环境编程基础学习2

For循环累加求和,两种方式,c方式的运算更快 打开文件操作 cat操作的实现 EOF: 1.diff A B比较两个文件是否一样,一样则什么结果都没有 Od -c 文件名可以显示出文件中的不可见字符

B站广告开户投流是什么政策?要哪些资质?

B站(哔哩哔哩)作为年轻人喜爱的视频分享社区,其广告价值也日益凸显。为了更好地服务广告主,B站近日对广告开户投流政策进行了更新,云衔科技作为专业的数字营销服务商,也积极响应,为广告主提供一…