相控阵天线(十):波束跃度、虚位技术、幅度相位误差分析(含代码)

news2024/12/26 12:44:12

目录

    • 简介
    • 波束跃度
      • 不同移相器位数对方向图的影响
      • 不同移相器位数对波束跃度的影响
    • 虚位技术
      • 不同虚位位数对指向精度的影响
      • 不同虚位位数对副瓣电平的影响
    • 幅度相位误差分析
      • 随机误差
      • 周期误差
    • Python代码示例

简介

阵列天线的成本、批量和可制造性等实际问题的解决方案的选择直接影响阵列天线的性能。对这些方面的考虑所导致的结果是:制造具有固定量化电平的功率分配网络和生产3位或4位(或更多位)数字移相器而不是连续可变移相器。上述选择均会在阵列上产生周期性的幅度或相位误差,它们将产生大而明显的副瓣误差或栅瓣型波瓣误差,这些峰值叫做量化瓣。同时不连续的移相器会形成不连续的波束跃度,并且可以通过使用虚位技术来获得更小的波束跃度

波束跃度

绝大多数的相控阵系统中都采用数字式移相器,移相器的移相量将 以二进制方式改变,呈现不连续性。若数字式移相器位数为 K,则移相器的最小移相量为:
在这里插入图片描述
则波束跃度,即由于移相器的最小移相量变化造成的波束指向的改变量
在这里插入图片描述
K是移相器的位数,θp是波束指向,d是单元间距,λ是波长,△φ 是移相量差值,Δθp 是由移相量差值引起的波束指向差值。

最小波束跃度
在这里插入图片描述

不同移相器位数对方向图的影响

一个12单元的直线阵列,扫描角度15度,移相器位数对方向图的影响如下所示:
在这里插入图片描述

不同移相器位数对波束跃度的影响

一个12单元的直线阵列,理想的波束跃度为1度,移相器位数对波束跃度的影响如下所示:
在这里插入图片描述

虚位技术

实际工程中,由于移相器的精度有限,同时出于成本的考虑采用虚位技术。就是,理论计算得到所需的的波束跃度所需的的移相器位数为k,而实际采用m位移相器(m<k),则k-m表示虚位。这时实际的移相量为理论移相量的量化,常见的量化方式有四舍五入法。

不同虚位位数对指向精度的影响

一个12单元的直线阵列, 不同虚位位数对指向精度的影响如下所示:
在这里插入图片描述

不同虚位位数对副瓣电平的影响

一个12单元的直线阵列, 不同虚位位数对副瓣电平的影响如下所示:
在这里插入图片描述

幅度相位误差分析

在工程实际中阵列天线的各单元的馈电相位是不可能达到理想的馈电相位情况的,总存在相位误差。当移相器、衰减器本身的移相、衰减特性不理想或存在单元随机相位、幅度误差时,此时的相位、幅度误差可看作是一个随机变量。

随机误差

当衰减器本身的衰减特性不理想、存在单元随机幅度误差或是阵元失效等因素的影响时,幅度误差可以看作是一个随机变量,满足一定的概率分布,因而每次随机实验得到的副瓣电平值也是不同的。远离波束峰值,并以波束峰值归一化的的平均副瓣电平如下所示:
在这里插入图片描述
δ2是相位误差方差,φ2是幅度误差方差,εA为效率,N为阵列规模。
阵元间距0.5λ,阵元数量16,原始阵列为等幅同相馈电,每组阵列随机产生-40到40度的相位误差的,产生100W组样本,并计算每组的相位均方根误差对和阵列天线副瓣电平,并绘制误差线,点线是该相位均方根误差下的副瓣电平的平均值,竖线是副瓣电平的最大值和最小值,如下所示:
在这里插入图片描述

周期误差

阵列天线的成本、批量和可制造性等实际问题的解决方案的选择直接影响阵列天线的性能。对这些方面的考虑所导致的结果是:制造具有固定量化电平的功率分配网络和生产3位或4位(或更多位)数字移相器而不是连续可变移相器,以及采用时间延迟单元对宽带相扫子阵馈电来代替每个天线单元使用一个时间延迟单元。上述选择均会在阵列上产生周期性的幅度或相位误差,就像阵列是由具有个别特定量化状态的子阵所构成的一样,由于这些误差是高度相关的,它们将产生大而明显的副瓣误差或栅瓣型波瓣误差,这些峰值叫做量化瓣。
阵元间距0.5λ,阵元数量24,不同衰减器位数对应的切比雪夫阵列激励分布如下所示:
在这里插入图片描述
阵元间距0.5λ,阵元数量24,不同衰减器位数对应的切比雪夫阵列分布的方向图如下所示:
在这里插入图片描述
阵元间距0.5λ,阵元数量24,不同衰减器位数和不同移相器位数对应的切比雪夫阵列分布的方向图如下所示:
在这里插入图片描述

Python代码示例

绘制随机误差对副瓣电平影响的误差线python代码如下所示:

import numpy as np
from Array_Pattern import Pattern
import sys
import matplotlib.pyplot as plt


# 计算均方根误差
def get_rmse(records_real, records_predict):
    if len(records_real) == len(records_predict):
        return np.sqrt(sum([(x - y) ** 2 for x, y in zip(records_real, records_predict)]) / len(records_real))
    else:
        return None

f = 1.5  # 频率
k = 0.5  # 间距系数
n_cell = 12  # 阵元数量
n_group = 100000  # 样本数
low_limit = -20  # 随机相位的下限
high_limit = 20  # 随机相位的上限

# 单元天线的方向图,全向方向图
data_angle = np.arange(-180, 181) / 2
data_gain = np.ones(361)
# 阵列的位置和幅度,0.5λ间距,等幅度
myposition = np.arange(n_cell) * 300 / f * k
mypower = np.ones(n_cell)
# 产生随机相位样本
myphase_list = np.random.uniform(low_limit, high_limit, (n_group, n_cell))
# 产生零相位列表
phase_real  = np.zeros(n_cell)
# 记录RMSE,角度误差,SSLL
pattern_dict = {'RMSE': [], 'Angle_Error': [], 'SSLL': []}
# 记录最大角度误差和最大副瓣电平的相位
sll_phase_list = []
angle_phase_list = []
angle_error = -sys.maxsize
ssll = -sys.maxsize
# 进行方向图综合并记录数据
pattern = Pattern()
for i in range (0,n_group):
    # 计算阵列方向图
    array_pattern = pattern.pattern_main(f, n_cell, myposition, myphase_list[i], mypower, data_angle, data_gain, 1)
    myphase_temp = np.mean(myphase_list[i])
    phase_predict = myphase_list[i]-myphase_temp
    # 计算阵列方向图的最大值和角度并记录相位
    array_angle = pattern.Pattern_Max(array_pattern,data_angle)
    if abs(array_angle[1]) >= angle_error:
        angle_phase_list.append(myphase_list[i].tolist())
        angle_error = abs(array_angle[1])
    # 计算阵列方向图的副瓣电平并记录相位
    array_ssll = pattern.Pattern_SSLL(array_pattern,data_angle)
    if (array_ssll[0] >= ssll):
        sll_phase_list.append(myphase_list[i].tolist())
        ssll = array_ssll[0]
    # 计算相位的均方根误差
    phase_rmse = int(get_rmse(phase_real, phase_predict))
    # 记录数据
    pattern_dict['RMSE'].append(phase_rmse)
    pattern_dict['Angle_Error'].append(array_angle[1])
    pattern_dict['SSLL'].append(round(array_ssll[0],1))
# 归类数据
rmse_min = min(pattern_dict['RMSE'])
rmse_max = max(pattern_dict['RMSE'])
rmse_list = np.arange(rmse_min, rmse_max+1)
ssll_list =[[] for i in range(rmse_max-rmse_min+1)]
for i in range(0,len(pattern_dict['RMSE'])):
    ssll_list[pattern_dict['RMSE'][i]-rmse_min].append(pattern_dict['SSLL'][i])
ssll_mean = []
ssll_min_list=[]
ssll_max_list =[]
for i in range(0,len(rmse_list)):
    ssll_mean .append(np.mean(ssll_list[i]))
    ssll_min_list.append(np.min(ssll_list[i]))
    ssll_max_list.append(np.max(ssll_list[i]))
# 绘制误差线
x = rmse_list
y = np.array(ssll_mean)
lower_error = np.array(ssll_mean)-np.array(ssll_min_list)
upper_error = np.array(ssll_max_list)-np.array(ssll_mean)
asymmetric_error = [lower_error, upper_error]
fig = plt.figure()
plt.errorbar(x, y, yerr=asymmetric_error, fmt='-o')
plt.show()

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

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

相关文章

[msyql]实战:关于回表的一次查询优化实战

起因与前置环境思考与解决方案 第一个理解与方法——分块分页第二个理解与方法——拆分子查询第三个理解与方法——拆分子查询分块分页 原理浅析与总结 回表和索引覆盖的浅解 原理简单说明MYSQL中回表的实现 总结与收获 起因与前置环境 目前在职的公司是已经运转挺久的电商类…

leetcode 343. 整数拆分(动态规划)

题目链接&#xff1a;343. 整数拆分 动态规划 (1) 确定 dpdpdp 数组下标含义&#xff1a; dp[i]dp[i]dp[i]: 将 iii 拆分为至少两个正整数之后的最大乘积&#xff1b; (2) 确定递推公式&#xff1a; 当 i≥2i \ge 2i≥2 时, 设 jjj 是 iii 拆分出来的第一个正整数&#xff0c…

1990-2021年全国30省城镇登记失业率

1、时间&#xff1a;1990-2021年 2、来源&#xff1a;整理自统计NJ 3、数据说明&#xff1a; 包括全国30个省份&#xff0c;不包括西藏&#xff0c;其中北京、天津、辽宁、吉林、江苏、浙江、湖南、四川、新疆2021年数据存在缺失&#xff0c; 内含原始数据&#xff0c;线性…

猿如意开发工具|python3.7

文章目录 一、猿如意是什么&#xff1f;一、猿如意的下载安装使用二、使用猿如意下载安装python3.7总结前言 对于程序猿来说&#xff0c;辅助开发工具箱是非常重要的&#xff0c;可以方便广大的开发者们。今天我就介绍一款非常好用的开发工具箱-猿如意。 一、猿如意是什么&…

大数据必学Java基础(一百零八):过滤器的生命周期

文章目录 过滤器的生命周期 一、构造方法 二、初始化方法 三、拦截请求方法

用R语言实现神经网络预测股票实例

神经网络是一种基于现有数据创建预测的计算系统。最近我们被客户要求撰写关于神经网络的研究报告&#xff0c;包括一些图形和统计输出。 如何构建神经网络&#xff1f; 神经网络包括&#xff1a; 输入层&#xff1a;根据现有数据获取输入的层隐藏层&#xff1a;使用反向传播…

基于PHP+MySQL动漫周边商城销售网站的开发与设计

随着时代的发展,人们对动漫周边产品的关注度越来越高,尤其是对当代的年轻人来说,对一些动漫的手办和玩具等商品都非常的热爱。但是当下时长上的动漫周边产品销售网站还很少,这对钟爱动漫周边产品的来说是一件很痛苦的事情,明明知道一件出现了这些相关产品,但是没有渠道能够购买…

【简单、实用】kubernetes的etcd备份与恢复实现恢复集群配置

学习目标 内容 提示:由于牵涉概念过多,本章主要讲解具体的备份恢复,其他概述 官网:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster 一. etcd的工作原理 可将其分成两层次:Http层请求、接收消息;剩下的…

家电专用降压DC-DC方案PL8310

PL8310是一个单片36V, 1A降压开关监管机构。PL8310集成了一个36V 250mΩ高侧和一个36V, 140mΩ低侧mosfet提供1A持续负载电流超过4.5V至36V宽工作输入电压带33V输入过电压保护。峰值电流模式控制速度快瞬态响应和逐周电流限制。PL8310具有可配置的线路下降补偿&#xff0c;可配…

CenterNet算法代码剖析

目录 一、图片预处理 1、cv读取原始图片 2、读取图片的中心点 3、计算仿射变化2*3的矩阵 4、基于双线性插值的仿射变化&#xff0c;将原始图片映射到dst图片 5、将原始图片的值归一化到0~1之间 6、使用样本集的mean和std再进行z-score归一化 7、计算特征图的大小&#…

linux mailxdingding机器人报警

前言&#xff1a;采用devops的思想来确认做本文内容目的 作为 <用户角色> 我想要 <结果> 以便于 <目的> 作为运维人员&#xff0c;我想要服务器故障时候能够进行报警&#xff0c;以便于即使处理服务器故障、保障服务器稳定运行 两种方式 邮箱 客户端授权码 …

Kafka - 10 Kafka副本 | 分区副本分配 | 手动调整分区副本 | Leader Partition 负载平衡 | 增加副本因子

文章目录1. 分区副本分配2. 手动调整分区副本3. Leader Partition 负载平衡4. 增加副本因子1. 分区副本分配 如果 kafka 服务器只有 4 个节点&#xff0c;那么设置 kafka 的分区数大于服务器台数&#xff0c;在 kafka底层如何分配存储副本呢&#xff1f; ① 创建 16 分区&…

[附源码]计算机毕业设计springboot高校学生宿舍管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

HashMap(2)-----哈希表

自己实现一个哈希表 class Node { int data;String val;Node next;public Node(int data,String val){ this.valval;this.datadata;} } class myhashtable { Node arr1[];Node headnull;Node tailnull;int count0;private double load0.75;public myhashtable() {this…

ESIM:Enhanced LSTM for Natural Language Inference

原文链接&#xff1a;https://aclanthology.org/P17-1152.pdf 概述 对于自然语言推理任务&#xff0c;Bowman等人在2015年提出了一个大数据集&#xff0c;大多数工作就开始使用神经网络来对该任务进行训练。但作者认为序列模型的潜力还没有完全被挖掘&#xff0c;因此提出了一个…

自建网上商城平台该如何做好运营?

现在很多企业都在自建网上商城系统&#xff0c;但很多都以为建好商城上线就万事大吉了。其实&#xff0c;自建网上商城系统只是一个开始&#xff0c;后期的运营才最重要。如果经营不好&#xff0c;这个商城就白做了&#xff0c;今天小编给大家整理了几个网上商城平台运营方向&a…

[附源码]计算机毕业设计springboot港口集团仓库管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【python】list 删除列表中某个元素的3种方法;附加删除numpy数组中的指定索引元素的方法

方法 python中关于删除list中的某个元素&#xff0c;一般有三种方法: remove、pop、del实例 1.remove: 删除单个元素&#xff0c;删除首个符合条件的元素&#xff0c;按值删除 2.pop: 删除单个或多个元素&#xff0c;按位删除(根据索引删除) 3.del&#xff1a;它是根据索…

校内评奖评优|基于Springboot+Vue实现高校评优管理系统

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

[附源码]计算机毕业设计SpringBoot海南与东北的美食文化差异及做法的研究展示平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…