线性约束最小方差准则(LCMV)波束形成算法及MATLAB深入仿真分析

阵列信号处理——线性约束最小方差准则(LCMV)波束形成算法及MATLAB深入仿真分析

目录

前言

一、LCMV算法

二、仿真参数设置

三、抗干扰权值计算仿真

四、不同干扰方位下抗干扰性能仿真

五、不同信噪比和干噪比下抗干扰性能仿真

总结


前言

        在信号处理模块中,通过抗干扰算法计算对应的权值进行加权求和输出,最终达到消除干扰,保留期望信号,提高输出信干噪比的目的。表现在阵列方向图上就是主瓣指向期望信号方向,零陷对准干扰方向。


提示:以下是本篇文章正文内容,欢迎各位阅读,转载请附上链接。

一、LCMV算法

        线性约束最小方差准则(LCMV):对有用信号形式和来向完全已知,在某种约束条下使阵列输出的方差最小。

LCMV准则表达式如下:

其中,C为添加的特定约束矩阵,不同的约束矩阵C对应不同的应用需求。g为与约束矩阵对应的约束响应向量。然而约束的增多会限制最小总功率目标下最优权值的求解,增加一个约束会多消耗一个抗干扰自由度。因而LCMV抗干扰算法以消耗抗干扰自由度为代价满足开发者的特殊需求。

对上式使用拉格朗日乘子法,其目标函数表达式为

对上式求导,令导数为零再代入准则表达式解得最优权矢量为

若将式(2.7)中C替换为期望信号的空时方向矢量\mathbf{a}(\theta ),并设置约束响应g=1,即有

此时该算法也称最小方差无失真响应(MVDR)算法,再根据上式解得最终权矢量为

二、仿真参数设置

        仿真采用8阵元均匀线阵, 载波频率为10GHz, 阵元间距为半波长, 采样率为450MHz, 采样快拍数为1024, 通信信号为线性调频信号, 带宽为200MHz, 干扰信号形式为线性调频信号, 带宽为100MHz, 干扰信号范围为-90°到90°。通信信号和干扰信号示例如下图所示。

通信信号

 

干扰信号

三、抗干扰权值计算仿真

      设置干扰方向为-40°,信噪比为-30dB,干噪声比为30dB,期望波束指向分别为0°、30°和60°,仿真验证抗干扰权值计算的正确性。下面分别为期望波束指向为0°、30°和60°时计算的抗干扰权值对应的方向图。

        从以上图片可以看到,方向图在干扰方向和非期望波束指向处形成了较深的零陷,在期望波束指向处增益最大,表明权值计算正确。 

四、不同干扰方位下抗干扰性能仿真

     设置信噪比为-30dB,干噪比为30dB,期望波束指向分别为0°、30°和60°,以1°为步进遍历不同干扰方位下的抗干扰性能以及波束合成后信噪比。

        下图分别为期望波束指向为0°、30°和60°时不同干扰方位下的抗干扰性能图,横轴为干扰信号角度,纵轴为阵列输出信号干噪比。可以看到,当干扰方位远离期望波束指向时,抗干扰性能较好,而当干扰方位接近期望波束指向时,抗干扰性能较差,甚至失效。

期望指向0°
期望指向30°
期望指向60°

        下图分别为期望波束指向为0°、30°和60°时不同干扰方位下的波束合成信噪比增益。可以看到,当干扰方位远离期望波束指向时,阵列输出信号信噪比约为-20dB,相对于-30dB,增益为10dB,波束合成效果良好;而当干扰方位接近期望波束指向时,信噪比增益减小,甚至出现与接收信噪比相比反而更加恶化的情况。

期望指向0°
期望指向30°
期望指向60°

五、不同信噪比和干噪比下抗干扰性能仿真

        设置干扰方向为-40°,期望波束指向为0°,分别设置干噪比为0dB、20dB和40dB,信噪比以1dB为步进,遍历-10dB到20dB下的抗干扰性能以及波束合成后信噪比增益。

        下图为3种干噪比条件下不同信噪比时的抗干扰性能图,可以看到,3种干噪比条件下,在-40°干扰方向上的抗干扰性能总体呈现随着信噪比增大逐渐变差的趋势;并且,干噪比越大,抗干扰效果越好。

        下图为3种干噪比条件下不同信噪比时的波束合成信噪比增益图,可以看到,3种干噪比条件下,阵列输出信号信噪比增益随着信噪比的增大而逐渐减小;并且,不同干噪比条件下的阵列输出信号信噪比增益差别不大。


总结

        本文深入仿真分析了一个干扰时LCMV算法的性能。

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

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

相关文章

day13JS-MoseEvent事件

1. MouseEvent的类别 mousedown :按下键mouseup :释放键click :左键单击dblclick :左键双击contextmenu :右键菜单mousemove :鼠标移动mouseover : 鼠标经过 。 可以做事件委托,子元素可以冒泡…

机器学习——贝叶斯分类器

一、贝叶斯决策论 贝叶斯决策论是概率框架下实施决策的基本方法。   假设有 N N N种可能的类别标记,即 Y { c 1 , c 2 , . . . , c N } Y\{c_1,c_2,...,c_N \} Y{c1​,c2​,...,cN​}, λ i j \lambda_{ij} λij​是将一个真实标记为 c j c_j cj​的样…

【网络】网络层协议——IP协议

目录 1.TCP和IP的关系 2.IP协议报文 2.1. 4位首部长度,16位总长度,8位协议 2.2. 8位生存时间 ,32位源IP地址和32位目的IP地址 3.IP地址的划分 3.1.IP地址的表现形式 3.2.旧版IP地址的划分 3.2.1.旧版IP地址的划分思路 3.2.2.分类划…

一文读懂flask

一文读懂flask 在实际工作中遇到了需要在通过gunicorn启动flask应用,并在gunicorn启动的每个woker之前为每个woker初始化ros节点信息,但在改造的过程中遇到通过worker数指定节点名称时多次初始化节点时只有一个woker的节点能够初始化成功,因…

鸿蒙开发 数组改变,ui渲染没有刷新

问题描述: 数组push, 数组长度改变,ui也没有刷新 打印出了数组 console.log(this.toDoData.map(item > ${item.name}).join(, ), this.toDoData.length) 原代码: Text().fontSize(36).margin({ right: 40 }).onClick(() > {TextPicker…

MySQL 数据库深度解析:安装、语法与高级查询实战

一、引言 在现代软件开发和数据管理领域中,MySQL 数据库凭借其高效性、稳定性、开源性以及广泛的适用性,成为了众多开发者和企业的首选。无论是小型项目还是大型企业级应用,MySQL 都能提供可靠的数据存储和管理解决方案。本文将深入探讨 MyS…

uni-app - - - - - 使用uview-plus详细步骤

uni-app - - - - - 使用uview-plus详细步骤 1. 使用HbuilderX创建空白项目2. 安装插件3. uview-plus配置使用3.1 main.js配置3.2 uni.scss配置3.3 App.vue配置3.4 pages.json 4. 重启Hbuilderx 1. 使用HbuilderX创建空白项目 2. 安装插件 工具 > 插件安装 > 前往插件市场…

“精读”怎么翻译?

中文版 “Intensive reading” 是指一种深度阅读的方式,通常用于精读和分析文本的细节。与广泛阅读(extensive reading)不同,广泛阅读的目标是通过阅读大量的内容来提高整体的语言理解能力,而集中的阅读则注重理解单一…

Linux上安装Conda以管理Python环境

在Windows下装了Linux发行版Debian,以后不用来回开启VMware啦!并在Debian中安装了Conda,记录一下所需命令(其他版本如Ubuntu中安装是一样的命令)。 目录 1.WSL 2.安装Conda 3.Python环境配置 1.WSL Install WSL | Microsoft Learn 微软官网 ①以管理…

STM32(F103ZET6)第二十四课:IAP离线固件升级

目录 开发需求IAP介绍内部的内存分区1.内部FLASH划分2.内部数据读取3.数据写入与擦除4.具体升级函数 IAP更新升级步骤1.系统启动流程2.IAP启动流程详解3.整体设计流程4.Boot Loader的代码编写5.APP1代码编写(目前)6.APP2代码编写(待升级&…

WEB开发---使用HTML CSS开发网页实时显示当前日期和时间

自己刚开始学习html css知识&#xff0c;临时做个网页&#xff0c;实时显示当前日期和时间功能。 代码如下&#xff1a; test.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&q…

python解释器[源代码层面]

1 PyDictObject 在c中STL中的map是基于 RB-tree平衡二元树实现&#xff0c;搜索的时间复杂度为O(log2n) Python中PyDictObject是基于散列表(散列函数)实现&#xff0c;搜索时间最优为O(1) 1.1 散列列表 问题&#xff1a;散列冲突&#xff1a;多个元素计算得到相同的哈希值 …

ARM 寻址方式(18)

立即寻址&#xff1a; 也叫作立即数寻址。 就是 立即数&#xff0c;本身就包含在了 指令当中。 举例&#xff1a; ADD R0, R0,#1 其中&#xff0c;#1 &#xff0c; 就是立即数&#xff0c;对于16进制的立即数&#xff0c; 需要在# 后加上 #0x. 寄存器寻址。 就是数据就在…

219. 存在重复元素 II【 力扣(LeetCode) 】

一、题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 二、测试用例 示例 1&…

多模态论文学习8.28

系列文章目录 文章目录 系列文章目录LAMM: Label Alignment for Multi-Modal Prompt Learning学习1、论文理解1、研究背景2、论文贡献3、方法框架4、研究思路5、实验6、限制 LAMM: Label Alignment for Multi-Modal Prompt Learning学习 1、论文理解 VL模型和下游任务之间的类…

单调栈,LeetCode 2289. 使数组按非递减顺序排列

一、题目 1、题目描述 给你一个下标从 0 开始的整数数组 nums 。在一步操作中&#xff0c;移除所有满足 nums[i - 1] > nums[i] 的 nums[i] &#xff0c;其中 0 < i < nums.length 。 重复执行步骤&#xff0c;直到 nums 变为 非递减 数组&#xff0c;返回所需执行的…

Amos百度云下载与安装 附图文安装教程

如大家所了解的&#xff0c;Amos是一款经常被运用在社会科学研究中的数据分析软件&#xff0c;尤其广泛用于人文社会科学领域的各种研究中。运用Amos&#xff0c;可以帮助研究人员使用结构方程模型 (SEM) 对他们收集到的数据进行分析与解释。 自用Amos 24安装包&#xff0c;可按…

数据结构与算法(循环链表,双向链表)

循环链表 最后一个元素指向首元素 带尾指针的循环链表合并 双向链表 双向链表:在单链表的每个结点里再增加一个指向其直接前驱的指针 域 prior &#xff0c;这样链表中就形成了有两个方向不同的链&#xff0c;故称为双向链表 双向链表插入操作 思路 代码 删除操作 思路 代…

一个很大的文件,文件的每一行是一个很大的数字,如果给你一个单机,内存比较小,存不了这么大的文件,但是硬盘是无限大的,如何对文件做一个排序输出

对于需要排序的大文件,尤其是当文件大小超过了可用内存时,可以采用外部排序算法。这里我描述一种基于归并排序思想的外部排序方法,它将大文件分割成多个小文件,在每个小文件上进行排序,然后再将这些排序好的小文件合并成一个有序的大文件。 以下是具体的步骤: 步骤 1: …

CTFHub SSRF靶场通关攻略(6-11)

FastCGI协议 首先写一个php的一句话木马&#xff0c;并进行base64编码 <?php eval($_POST[cmd]);?> 编码完成后把他写入shell.php文件中 echo "PD9waHAgQGV2YWwoJF9QT1NUW2NtZF0pOz8" | base64 -d > shell.php 使用Gopherus工具生成payload: 执命令 …