基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图

基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图

参考论文: 高效连续型射频功率放大器研究

假期就要倒计时啦,估计是寒假假期的最后一个博客,希望各位龙年工作顺利,学业有成。

全部工程下载:基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图-ADS工程
不着急的穷学生和穷工程师可以私信我,打6-8折哦!

如果硕士毕业设计用到双输入,也算是比较深入的了,一般都是作为压轴的那一章。

作者我复现了七天,数字双输入的超宽带Doherty实际实现是有一定门槛的,需要对每个输入支路的功率、相位进行扫描,在此进行复现并给出模板、画图代码(虽然我现在不清楚实际测量的时候怎么搞,估计要写个脚本查表吧)。


使用几个频点的数据来近似说明整体的数据:
在0.7-3.1GHz的范围内,饱和输出功率为43.31-44.78dBm,饱和输出增益为10.37-12.24dB,饱和输出效率为60.5-74.07%,回退6dB效率为45.43%-61.5%。


前置文章:单输入Doherty 功率放大器的极限带宽分析(含Matlab分析代码),数字双输入的就是为解决此问题的,。

类似的双输入架构:双输入宽带混合 Doherty-Outphasing功率放大器设计(2021.02 MTT)-从理论到ADS版图

目录

    • 基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图
    • 0、实现效果展示
      • 0.1、版图展示
      • 0.2、扫描的结果
      • 0.3、实现的效果
    • 1、双输入的核心理论
      • 1.1、提要
      • 1.2、理论推导
      • 1.3、所需的约束
    • 2、基于ADS与CGH40010F的验证
    • 3、系统仿真和扫描
      • 3.1、系统仿真和扫描原理图
      • 3.2、使用Matlab提取数据
      • 3.3、画图分析的Matlab代码
    • 4、运行环境

0、实现效果展示

基于CGH40010F

这个博客几乎就是对“高效连续型射频功率放大器研究”论文中数字双输入部分的复现,是在原来的基础上进行了一的OPTIM,主要是原来论文里面的微带线参数都是保留一位小数,精度可能不太够

0.1、版图展示

整体的版图如下,由于是双输入的,有两个输入的端口
在这里插入图片描述

0.2、扫描的结果

数字双输入的超宽带Doherty实际实现是有一定门槛的,需要对每个输入支路的功率、相位进行扫描,此处Pin1 的扫描范围为6-30dBm,Pin2 的扫描范围为6-30dBm,相位差的扫描范围为0-180,最后扫描模板得到的结果如下(例如2700MHz),一般都会对其取包络(使用Matlab脚本提取,后面介绍):
在这里插入图片描述

0.3、实现的效果

因为需要对每个频率下的参数进行扫描,所以取几个频率点的数据进行参考,使用几个频点的数据来近似说明整体的数据:
在0.7-3.1GHz的范围内,饱和输出功率为43.31-44.78dBm,饱和输出增益为10.37-12.24dB,饱和输出效率为60.5-74.07%,回退6dB效率为45.43%-61.5%。

使用Matlab脚本提取包络,700MHz效率与增益结果如下所示,在700MHz,实现了44.78dBm的饱和输出功率,12.24dB的饱和增益,饱和效率为72.2%,回退6dB效率为50.13%
在这里插入图片描述

使用Matlab脚本提取包络,1500MHz效率与增益结果如下所示,在1500MHz,实现了43.38dBm的饱和输出功率,10.37dB的饱和增益,饱和效率为60.5%,回退6dB效率为61.5%
在这里插入图片描述
使用Matlab脚本提取包络,2300MHz效率与增益结果如下所示,在2300MHz,实现了44.31dBm的饱和输出功率,11.3dB的饱和增益,饱和效率为70.48%,回退6dB效率为45.43%
在这里插入图片描述
使用Matlab脚本提取包络,3100MHz效率与增益结果如下所示,在3100MHz,实现了43.3dBm的饱和输出功率,11.68dB的饱和增益,饱和效率为74.07%,回退6dB效率为49.91%
在这里插入图片描述

1、双输入的核心理论

1.1、提要

单输入Doherty 功率放大器的极限带宽分析(含Matlab分析代码)中分析了单输入DPA的极限带宽。在传统单输入DPA中,存在固定的载波功放和固定的峰值功放,因此在回退点的等效电路是固定的(峰值功放视为开路),如:
在这里插入图片描述
但是,如果我们能够自定义输入功率,从而自定义哪个功放充当峰值功放和载波功放,就可以在回退时获得两种工作模式(相当于有两种电路了,自然带宽可以拓展):
在这里插入图片描述

1.2、理论推导

上图中, θ 1 \theta_1 θ1 θ 2 \theta_2 θ2都和频率相关,所提及的角度是在f0出的电长度。(先简单回顾一下一个基础知识,在 f 0 f_{0} f0处电长度为180,那么在x f 0 f_{0} f0处其等效电长度为x180。例如,在在 f 0 f_{0} f0处电长度为180,那么在2 f 0 f_{0} f0处其等效电长度为2180=360。

为了简便起见,首先假设在某一工作频点处 θ 1 = 90 \theta_1=90 θ1=90,观察 θ 2 \theta_2 θ2的取值和带宽的关系(下面都使用Matlab脚本分析画图得到,分别对两种模式进行分析):
在这里插入图片描述
直观一些,可以看到无论 θ 2 \theta_2 θ2取何值,双输入 Doherty 功放在归一化频率f = 2处效率恶化严重。此时,工作在模式 I 下的双输入 Doherty 功放只有在f为 1 或者 3 附近具有良好的回退效率(红色鲜艳)。

可以看出,在工作模式 II 下,当 θ 2 \theta_2 θ2约为45°时,双输入 Doherty 功放在归一化频率1.3-2.6 之间可以获得良好的回退效率;而当 θ 2 \theta_2 θ2为其他值时,双输入 Doherty 功放只能在某一小频率区间获得良好的回退效率。

在这里插入图片描述
分析代码:

clc
clear
close allRopt=1;
% 相对带宽表达式
f0=1;
f_arrary=f0*linspace(0.6, 3.3, 99);
theta_1=90;
theta_2=0:5:180;figure(1)
subplot(2,1,1)
[X,Y] = meshgrid(f_arrary,theta_2);
for i=1:1:length(theta_2)for j=1:1:length(X)Z(i,j)=DPA_Effi_Cal_v2(X(i,j),90,Y(i,j));end
end
surf(Y,X,Z);
title('双输入 Doherty 功放工作在模式 I')
colormap jet%jet是一种配色方案,还有其他方案如winter,summer····见help colormap
colorbar
xlabel('\theta_2');
ylabel('归一化频率');
zlabel('Efficiency(%)');subplot(2,1,2)
[X,Y] = meshgrid(f_arrary,theta_2);
for i=1:1:length(theta_2)for j=1:1:length(X)Z(i,j)=DPA_Effi_Cal_v2(X(i,j),Y(i,j),90);end
end
surf(Y,X,Z);
title('双输入 Doherty 功放工作在模式 II')
colormap jet%jet是一种配色方案,还有其他方案如winter,summer····见help colormap
colorbar
xlabel('\theta_2');
ylabel('归一化频率');
zlabel('Efficiency(%)');

1.3、所需的约束

θ 1 \theta_1 θ1在f1处电长度为90°, θ 2 \theta_2 θ2在f1处电长度为45°,延时的变化符合微带线基本特性 θ 1 \theta_1 θ1在f2处电长度为2 * 90°, θ 2 \theta_2 θ2在f2处电长度为2 * 45°,以此类推)。

此外,TL1和TL2的阻抗要是Ropt,B类最佳阻抗。

负载RL的阻抗为Ropt/2,需要使用后匹配网络匹配到50欧姆。

2、基于ADS与CGH40010F的验证

作者论文中参数都是有效的,我是在原来的基础上进行了一的OPTIM,主要是原来论文里面的微带线参数都是保留一位小数,精度可能不太够

作者Ropt选的是30欧姆,漏极电压28V,栅极电压-3.3V。

2.1 θ 1 \theta_1 θ1电长度和阻抗的约束实现

Output/OutputSub_TL2原理图
微带线TL2的在f1处电长度为90°,阻抗为Ropt,延时的变化符合微带线基本特性 θ 1 \theta_1 θ1在f2处电长度为2 * 90°,以此类推)。构建优化:
在这里插入图片描述
查看阻抗和延时的实现效果,比较好:
在这里插入图片描述

2.2 θ 2 \theta_2 θ2电长度和阻抗的约束实现

Output/OutputSub_TL1原理图
微带线TL1的在f1处电长度为45°,阻抗为Ropt,延时的变化符合微带线基本特性 θ 2 \theta_2 θ2在f2处电长度为2 * 45°,以此类推)。构建优化:
在这里插入图片描述
查看结果,差的不多:
在这里插入图片描述

2.3 后匹配网络阻抗匹配约束

Output/OutputSub_PMN
理论负载是Ropt/2,需要把Ropt/2变换到50欧姆,也就是要把15欧姆变换到50欧姆,构建优化:
在这里插入图片描述
匹配良好:
在这里插入图片描述

2.4 输入匹配设计

Input/InputMatch_Sub

输入匹配要求不高,我直接用作者提供的电路,需要自己设计的可以使用源牵引方法,参考:番外5:ADS功放设计之负载牵引与源牵引、ADS使用记录之AB类功放设计。

电路图如下:
在这里插入图片描述
匹配效果还可以:
在这里插入图片描述

3、系统仿真和扫描

3.1、系统仿真和扫描原理图

Test/HB1ToneGComp2swp_v1
双输入架构使用俩个输入端口,扫描的相位差为变量My_Delay:
在这里插入图片描述
Param1就是Pin1的输入功率,Param2就是Pin2的输入功率,My_Delay为扫描的相位差,RFfreq为当前的频率,需要自己设置:
在这里插入图片描述
运行得到结果,:
在这里插入图片描述

3.2、使用Matlab提取数据

把上面表格的数据导出为csv:
在这里插入图片描述
打开我提供的Matlab代码,修改名字为你的csv文件名,此外需要手动修改Mydelay为你ADS中所设的的延迟扫描参数,例如:
在这里插入图片描述

% 输入csv的名字
csv_name='3100.csv';
% 手动设定扫描延时
Mydelay=-180:5:0;

运行Matlab即可。
全部代码:
在这里插入图片描述
运行代码,可以得到效率、增益和所需的输入功率、延迟等信息(2700MHz):
在这里插入图片描述
作者也提供了输入功率、相位差数据,可以对比一下,其中两路的输入功率数据是高度一致的:
在这里插入图片描述

3.3、画图分析的Matlab代码

DPA_Effi_Cal_v2.m

function [effi] = DPA_Effi_Cal_v2(freq,theta_1,theta_2)
% theta是对于f0而言的,此处来计算在freq处的角度
theta_1=theta_1*freq/1;
theta_2=theta_2*freq/1;Ropt=1;
RL=Ropt/2;
ZP_OPBO=Ropt./(1j*tand(theta_2));% 峰值负载为无穷
ZC_OPBO=1./(1/RL+1./ZP_OPBO);% 并联关系
ZCB=Ropt*(ZC_OPBO+1j*Ropt*tand(theta_1))./(Ropt+1j*ZC_OPBO.*tand(theta_1));% Zin计算
effi=78.54*real(ZCB)/(2*Ropt);% 计算效率,阻抗大于2Ropt被认为是饱和,效率为78.54
effi(effi>78.54)=78.54;
effi(isnan(effi))=78.54;
end

draw_data.m

clc
clear
close
% 输入csv的名字
csv_name='3100.csv';
data=readmatrix(csv_name);%csvread只能读取纯数据
% 手动设定扫描延时
Mydelay=-180:5:0;%添加延时数据到data数组
repeat_times=length(data)/length(Mydelay);
Mydelay_data=[];
for ind=1:1:repeat_timesMydelay_data=[Mydelay_data Mydelay];
end
data(:,5)=Mydelay_data;Pout_dbm=data(:,3);%提取输出功率数据
Pout_dbm_Draw_step=0.4;
Pout_dbm_Draw=min(Pout_dbm):Pout_dbm_Draw_step:max(Pout_dbm);for ind=1:1:length(Pout_dbm_Draw)eval(['Pout_dbm_DataAll.data', num2str(ind), '= [];']);
end% 获取每个输出功率为Pout_dbm_Draw附近的点数据
for ind=1:1:length(data)for j=1:1:length(Pout_dbm_Draw)if abs(data(ind,3)-Pout_dbm_Draw(j))<=Pout_dbm_Draw_step/2eval(['Pout_dbm_DataAll.data', num2str(j), '=[Pout_dbm_DataAll.data', num2str(j),';data(ind,:)];']);endend
end
% 对每个数据提取最佳的效率点,并记录输入功率、延时等等
for ind=1:1:length(Pout_dbm_Draw)% 判断是否是空数组if eval(['isempty(Pout_dbm_DataAll.data',num2str(ind), ')'])eval('DrawData.Pin_1(ind)=NaN;');eval('DrawData.Pin_2(ind)=NaN;');eval('DrawData.Pout_dbm_Real(ind)=NaN;');eval('DrawData.Efficiency(ind)=NaN;');eval('DrawData.Delay(ind)=NaN;');elseeval(['[max_val,max_ind]=max(Pout_dbm_DataAll.data', num2str(ind), '(:,4));']);eval(['DrawData.Pin_1(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,1);']);eval(['DrawData.Pin_2(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,2);']);eval(['DrawData.Pout_dbm_Real(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,3);']);eval(['DrawData.Efficiency(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,4);']);eval(['DrawData.Delay(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,5);']);end
end% 空数组插值
DrawData.Pin_1 = fillmissing(DrawData.Pin_1,'movmean',5);
DrawData.Pin_2 = fillmissing(DrawData.Pin_2,'movmean',5);
DrawData.Pout_dbm_Real = fillmissing(DrawData.Pout_dbm_Real,'movmean',5);
DrawData.Efficiency = fillmissing(DrawData.Efficiency,'movmean',5);
DrawData.Delay = fillmissing(DrawData.Delay,'movmean',5);
% 计算总的输入功率
DrawData.PinAll=10*log10((10.^(0.1*(DrawData.Pin_1-30)))+(10.^(0.1*(DrawData.Pin_2-30))))+30;
% 计算增益
DrawData.Gain=DrawData.Pout_dbm_Real-DrawData.PinAll;% 画图
figure(1)plot(DrawData.Pout_dbm_Real,DrawData.Efficiency,'-o','Color','r','LineWidth',1);hold on
ylabel('Drain Efficiency(%),Gain(dB)');xlabel('Pout(dBm)');plot(DrawData.Pout_dbm_Real,DrawData.Gain,'-square','Color','magenta','LineWidth',1);hold on
legend('Efficiency', 'Gain')
title(csv_name)figure(2)
plot(DrawData.Pout_dbm_Real,DrawData.Pin_1,'-v','Color','b','LineWidth',1);hold on
plot(DrawData.Pout_dbm_Real,DrawData.Pin_2,'-v','Color','b','LineWidth',1);hold on
ylabel('Pin(dBm)');xlabel('Pout(dBm)');
yyaxis right
plot(DrawData.Pout_dbm_Real,abs(DrawData.Delay),'-o','Color','black','LineWidth',1);
ylabel('Delay(°)');
legend('Pin_1', 'Pin_2','Delay')
title(csv_name)

4、运行环境

ADS版本:ADS2023

依赖的ADS库文件:Cree公司的GAN库,CGH40010F管子、(文件中包含,但可能要调整路径)

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

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

相关文章

遇到问题(二) 中文乱码

例如这样&#xff1a; 原本是这样&#xff1a; 解决方法&#xff1a;点击扳手工具设置——Editor——Encoding——选chinese GB2312&#xff08;有的是UTF-8&#xff09;

LabVIEW高速信号测量与存储

LabVIEW高速信号测量与存储 介绍了LabVIEW开发的高速信号测量与存储系统&#xff0c;解决实验研究中信号捕获的速度和准确性问题。通过高效的数据处理和存储解决方案&#xff0c;本系统为用户提供了一种快速、可靠的信号测量方法。 项目背景 在科学研究和工业应用中&#xf…

Ubuntu18.04有线连接后,无法设置ip地址以及显示网口设置

前提&#xff1a;首先测试过网线是完全没问题的 桌面端找不到设置网口 终端输入&#xff1a; ifconfig 没有找到网口设置和对应IP 然后查询网口驱动是否正常安装&#xff0c;输入&#xff1a; lspci | grep Ethernet 有输出说明网口驱动正常安装 然后查询电脑的ip地址&am…

物流EDI:Verizon EDI 需求分析

作为物流行业的企业&#xff0c;Verizon与其供应商之间通过EDI来传输业务单据。在与Verizon建立EDI连接时&#xff0c;需要参考EDI 指南、采购订单条款和条件以及运输路线指南这三个文档。 点击此链接&#xff0c;获取上述的三个文档 Verizon供应商可以通过上述链接找到用于处…

ubuntu22.04@laptop OpenCV Get Started: 015_deep_learning_with_opencv_dnn_module

ubuntu22.04laptop OpenCV Get Started: 015_deep_learning_with_opencv_dnn_module 1. 源由2. 应用Demo2.1 C应用Demo2.2 Python应用Demo 3. 使用 OpenCV DNN 模块进行图像分类3.1 导入模块并加载类名文本文件3.2 从磁盘加载预训练 DenseNet121 模型3.3 读取图像并准备为模型输…

解决npm淘宝镜像到期问题

1 背景 由于node安装插件是从国外服务器下载&#xff0c;如果没有“特殊手法”&#xff0c;就可能会遇到下载速度慢、或其它异常问题。 所以如果npm的服务器在中国就好了&#xff0c;于是我们乐于分享的淘宝团队干了这事。你可以用此只读的淘宝服务代替官方版本&#xff0c;且…

ARM体系在linux中的中断抢占

上一篇说到系统调用等异常通过向量el1_sync做处理&#xff0c;中断通过向量el1_irq做处理&#xff0c;然后gic的工作都是为中断处理服务&#xff0c;在rtos中&#xff0c;我们一般都会有中断嵌套和优先级反转的概念&#xff0c;但是在linux中&#xff0c;中断是否会被其他中断抢…

js_三种方法实现深拷贝

深拷贝&#xff08; 递归 &#xff09; 适用于需要完全独立于原始对象的场景&#xff0c;特别是当对象内部有引用类型时&#xff0c;为了避免修改拷贝后的对象影响到原始对象&#xff0c;就需要使用深拷贝。 // 原始对象 const obj { uname: Lily,age: 19,hobby: [乒乓球, 篮球…

力扣 188. 买卖股票的最佳时机 IV

题目来源&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iv/description/ C题解&#xff1a;动态规划 思路同力扣 123. 买卖股票的最佳时机 III-CSDN博客&#xff0c;只是把最高2次换成k次。如果思路不清晰&#xff0c;可以将k从0写到4等找找规律…

Vue | (三)使用Vue脚手架(上) | 尚硅谷Vue2.0+Vue3.0全套教程

文章目录 &#x1f4da;初始化脚手架&#x1f407;创建初体验&#x1f407;分析脚手架结构&#x1f407;关于render&#x1f407;查看默认配置 &#x1f4da;ref与props&#x1f407;ref属性&#x1f407;props配置项 &#x1f4da;混入&#x1f4da;插件&#x1f4da;scoped样…

Linux网络编程——序列反序列化

文章目录 0. 前言1. 认识协议2. 序列号与反序列化3. 自定义协议——网络计算器4. json 本章Gitee仓库&#xff1a;序列反序列化 0. 前言 tcp是面向字节流的&#xff0c;但是如何保证读取的数据是一个完整的报文呢&#xff1f; 管道也是面向字节流&#xff0c;写端写了一大堆的…

Sora:新一代实时音视频通信框架

一、Sora简介 Sora是一个开源的实时音视频通信框架&#xff0c;旨在提供高效、稳定、可扩展的音视频通信解决方案。它基于WebRTC技术&#xff0c;支持跨平台、跨浏览器的实时音视频通信&#xff0c;并且具备低延迟、高并发、易集成等特点。 --点击进入Sora(一定要科学哦&#x…

机器学习基础(一)理解机器学习的本质

导读&#xff1a;在本文中&#xff0c;将深入探索机器学习的根本原理&#xff0c;包括基本概念、分类及如何通过构建预测模型来应用这些理论。 目录 机器学习 机器学习概念 相关概念 机器学习根本&#xff1a;模型 数据的语言&#xff1a;特征与标签 训练与测试&#xf…

四分位距IQR_ interquartile range

四分位距IQR_ interquartile range 1 IQR&#xff08;Interquartile Range&#xff09;四分位距的含义2 如何计算IQR参考&#xff1a; 1 IQR&#xff08;Interquartile Range&#xff09;四分位距的含义 官方定义&#xff1a; 四分位距&#xff08;interquartile range, IQR&a…

机器学习中梯度下降法的缺点

机器学习中的梯度下降法是一种寻找函数最小值的优化算法&#xff0c;广泛应用于训练各种模型&#xff0c;尤其是在深度学习中。尽管其应用广泛&#xff0c;但梯度下降法也存在一些不可忽视的缺点&#xff1a; 1. 局部最小值和鞍点 局部最小值问题&#xff1a; 对于非凸函数&a…

数据分析 - 机器学习

1&#xff1a;线性回归 线性回归是一种统计技术用于对输出变量与一个或多个输入变量之间的关系进行建模 用外行人的话来说&#xff0c;将其视为通过某些数据点拟合一条线&#xff0c;如下所示 以便在未知数据上进行预测&#xff0c;假设变量之间存在线性关系 点和线之间存在微小…

[ansible] playbook运用

一、复习playbook剧本 --- - name: first play for install nginx #设置play的名称gather_facts: false #设置不收集facts信息hosts: webservers:dbservers #指定执行此play的远程主机组remote_user: root #指定执行此play的用…

python绘制k线图均线图

AAPL.csv 数据文件 Date,Close,Volume,Open,High,Low 06/23/2023,$186.68,53117000,$185.55,$187.56,$185.01 06/22/2023,$187.00,51245330,$183.74,$187.045,$183.67 06/21/2023,$183.96,49515700,$184.90,$185.41,$182.5901 06/20/2023,$185.01,49799090,$184.41,$1…

15-55V输入自动升降压 光伏MPPT自动跟踪充电方案 大功率300瓦

1.MPPT原理--简介 MPPT&#xff0c;全称为Maximum Power Point Tracking&#xff0c;即最大功点跟踪&#xff0c;它是一种通过调节电气模块的工作状态&#xff0c;使光伏板能够输出更多电能的电气系统能够将太阳能电池板发出的直流电有效地贮存在蓄电池中&#xff0c;可有效地…

【蓝桥杯】算法模板题(Floyd算法)

一.弗洛伊德算法 用途&#xff1a;用来求解多源点最短路径问题。 思想&#xff1a;Floyd算法又称为插点法&#xff0c;是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法。 主要步骤&#xff1a; 1&#xff09;初始化&#xff1a;使用邻接矩阵初始化dis…