阵列波束形成与维纳滤波

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

          通信领域笔记(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,一经查实,立即删除!

相关文章

EtherCAT主站IgH解析(二)-- 如何将Igh移植到Linux/Windows/RTOS等多操作系统

版权声明:本文为本文为博主原创文章,转载请注明出处 https://www.cnblogs.com/wsg1100 如有错误,欢迎指正。 本文简单介绍如何将 igh 移植到 zephyr、freertos、rtems、rtthread等RTOS ,甚至 windows 上。 ##前言 目前&#xff0…

八股文打卡day36——数据库(13)

面试题:讲一下数据库的三大范式? 我的回答: 1.第一范式:就是要求数据表中的字段是不可再分的,具有原子性。 2.第二范式:前提得先满足第一范式,并且要求数据库表中的每个非主属性都完全依赖于主…

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

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

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

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

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

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

zdppy_amauth如何测试给用户批量绑定角色接口

第一步:先实现新增用户的单元测试 import unittest import reqclass TestUserAddRoles(unittest.TestCase):def assertApiSuccess(self, resp):"""断言API接口的响应是成功的"""self.assertEqual(200, resp.status_code)data resp.…

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

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

嵌入式系统软件开发环境_3.主要功能和典型产品

1.嵌入式系统软件开发环境的主要功能 由于嵌入式系统的软件开发通常采用的是交叉开发方式,因此其开发环境中的工具应支持这种交叉开发的特点。嵌入式系统软件开发环境的功能应覆盖嵌入式软件开发过程,即编码过程、编译过程、构建过程、下载过程、调式过程…

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

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

扩散模型详细推导过程——编码与解码

符号表 符号含义 x ( i ) z 0 ( i ) \boldsymbol{x}^{(i)}\boldsymbol{z}_0^{(i)} x(i)z0(i)​第 i i i个训练数据,其为长度为 d d d的向量 z t ( i ) \boldsymbol{z}_t^{(i)} zt(i)​第 i i i个训练数据在第 t t t时刻的加噪版本 ϵ t ( i ) \boldsymbol{\epsilo…

蓝桥杯 经典算法题 找到给定字符串中的不同字符

题目: 在不考虑字符排列的条件下,对于相差只有一个字符的两个字符串,实现一个算法来识别相差的那个字符。要求如下: 当传入的字符串为 aad 和 ad 时,结果为 a。 当传入的字符串为 aaabccdd 和 abdcacade 时&#xff…

并发控制技术

事物的隔离性实现主要依赖于多种并发控制技术,这些技术确保在并发执行的事物中,一个事物的操作不会被其他事物干扰。并发控制技术按照其对可能冲突的操作采取的不同策略可以分为乐观并发控制和悲观并发控制两大类。 基于封锁的并发控制 对于并发可能冲突的操作,比如读-写,…

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

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

期货交易纪律20240620

文章目录 第一步、选品第二步、开仓纪律 — (2024年6月20号 新增二条开仓纪律)第三步、持仓 — (新增持仓纪律) 2024年6月20号,开始写期货交易的第二篇日记。 这三天做了一笔交易:交易的问题,在…

MySQL之复制(七)

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

chatgpt: linux 下用纯c 编写一按钮,当按钮按下在一新窗口显示本机主目录下图片子目录中的1.jpg图片

tmd,这chatgpt太强大了。 从下面的c程序与python程序对比,纯c的ui编程也不是太复杂。 再说一次,要想学好编程必须要用上这个chatgpt工具。 在 Linux 环境下使用纯 C 语言编写一个按钮,当按钮按下时,在一个新窗口中显示本机主目…

嵌入式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岁以下的大学本科毕…