具有准电阻负载阻抗的带宽增强型 Doherty 功率放大器(2023.05 MTT)--从理论到ADS版图

具有准电阻负载阻抗的带宽增强型 Doherty 功率放大器(2023.05 MTT)–从理论到ADS版图

原文: Bandwidth-Enhanced Doherty Power Amplifier With Optimized Quasi-Resistive Power-Combing Load Impedance
发表于APRIL 2023,在微波顶刊IEEE T MTT上面,使用的GAN CGH40010F

全部工程下载:具有准电阻负载阻抗的带宽增强型 Doherty 功率放大器(2023.05 MTT)-ADS工程
不着急的穷学生和穷工程师可以私信我,打6-8折哦!

大家也可以自己复现,逼近论文就在那边嘞

从标题也可以看出来,这篇文章的重点是电路的结构与推导,对这方面比较感兴趣的可以额外关注一下。封闭的求解表达式也是非常有吸引力,研究DPA结构和电路的值得一看。

目录

  • 具有准电阻负载阻抗的带宽增强型 Doherty 功率放大器(2023.05 MTT)--从理论到ADS版图
    • 0、实现效果展示
      • 0.1、版图展示
      • 0.2、单音信号版图仿真结果
      • 0.3、调制信号与DPD版图仿真结果
    • 1、文章的核心思路
      • 1.1、提要
      • 1.2、构建输出匹配的封闭方程
      • 1.3、寄生补偿结构推导
      • 1.4、调谐最佳合路阻抗ZL.CO
    • 2、ADS工程构建与测试
      • 2.1、输入匹配
      • 2.2、后匹配电路
      • 2.3、合路电路
      • 2.4、宽带功分器
      • 2.5、测试运行
    • 3、附录分析代码
      • 3.1 fig5
      • 3.2 fig7
    • 4、文件解释(下载资源前必看)
      • 4.1 环境

0、实现效果展示

由于文中关于电路参数的数据不太完善,无法直接按照论文复现,所以电路是我自己基于理论调谐的,实现的效果也和作者有所差异。因此我使用作者提出的理论自己设计了一份,电路参数有所不同但是效果基本类似的。下面所提及的电路、效果,如非特别提及,都是我使用作者理论自己设计并在ADS中版图仿真的结果

0.1、版图展示

整体的版图如下(使用的板材和作者文章中的一致,Rogers4350B 30mil):
在这里插入图片描述

0.2、单音信号版图仿真结果

基于上面的仿真版图,进行谐波调谐的仿真,运行Test\HB1ToneGComp1swp_Doherty原理图,可以看到,在1.7-2.6GHz的范围内饱和输出功率为42.2-44.64dBm,饱和输出效率为61-76.7%,饱和增益为9.2-11.64dB;回退6dB时,回退输出功率为36.2-38.64dBm,回退输出效率为40.8-56.5%,回退增益为14dB左右
在这里插入图片描述

0.3、调制信号与DPD版图仿真结果

之后补充

1、文章的核心思路

1.1、提要

这篇文章主要从电路设计的方面进行创新,主要包含两个部分,其一是给定结构,并用封闭式推导来分析输出匹配网络(OMN)的数值解,从而在宽带内符合DPA调制的基本要求其二是提出了一种吸收晶体管寄生效应的补偿半集总(CSL)-λ/4 传输线;

我个人认为,这个论文的推导和理论性是其最大的亮点,但是从最终的结构和实现结果来看,还是要使用优化。例如,吸收晶体管寄生效应的电路,还是要基于理论值进行调谐,那我为什么不随便用几个微带线进行调谐呢。

文章的推导主要是基于DPA的典型架构(不清楚的可以参考理想架构的Doherty功率放大器理论与仿真):
在这里插入图片描述

1.2、构建输出匹配的封闭方程

对于上面的结构,作者定义了功率分配比S,利用载波功放的输出匹配网络INT.C和峰值功放输出匹配网络的INT.P的ABCD矩阵(ABCD矩阵参考微带线的ABCD矩阵的推导、转换与级联-Matlab计算实例),我们可以得到Z3、Z4的表达式,也就是电流源平面的输出阻抗的表达式Zopt(文中公式12):
{ Re ( Z opt.C.S ) = Re ( A C ( 1 + S ) Z L.Co + j B C j C C ( 1 + S ) Z L.Co + D C ) Im ( Z opt.C.S ) = Im ( A C ( 1 + S ) Z L.Co + j B C j C C ( 1 + S ) Z L.Co + D C ) Re ( Z opt.C.B ) = Re ( A C ( Z Co ) ∣ Z 6.B + j B C j C C ( Z L.Co ∣ ∣ Z 6.B ) + D C ) Im ( Z opt.C.B ) = Im ( A C ( Z Co ) ∣ Z C.B + j B C j C C ( Z L.Co ∣ ∣ Z 6.B ) + D C ) A C D C + B C C C = 1. \begin{cases}\text{Re}(Z_{\text{opt.C.S}})=\text{Re}\bigg(\frac{A_{\text{C}}(1+S)Z_{\text{L.Co}}+jB_{\text{C}}}{jC_{\text{C}}(1+S)Z_{\text{L.Co}}+D_{\text{C}}}\bigg)\\\text{Im}(Z_{\text{opt.C.S}})=\text{Im}\bigg(\frac{A_{\text{C}}(1+S)Z_{\text{L.Co}}+jB_{\text{C}}}{jC_{\text{C}}(1+S)Z_{\text{L.Co}}+D_{\text{C}}}\bigg)\\\text{Re}(Z_{\text{opt.C.B}})=\text{Re}\bigg(\frac{A_{\text{C}}(Z_{\text{Co}})|Z_{\text{6.B}}+jB_{\text{C}}}{jC_{\text{C}}(Z_{\text{L.Co}}||Z_{\text{6.B}})+D_{\text{C}}}\bigg)\\\text{Im}(Z_{\text{opt.C.B}})=\text{Im}\bigg(\frac{A_{\text{C}}(Z_{\text{Co}})|Z_{\text{C.B}}+jB_{\text{C}}}{jC_{\text{C}}(Z_{\text{L.Co}}||Z_{\text{6.B}})+D_{\text{C}}}\bigg)\\A_{\text{C}}D_{\text{C}}+B_{\text{C}}C_{\text{C}}=1.\end{cases} Re(Zopt.C.S)=Re(jCC(1+S)ZL.Co+DCAC(1+S)ZL.Co+jBC)Im(Zopt.C.S)=Im(jCC(1+S)ZL.Co+DCAC(1+S)ZL.Co+jBC)Re(Zopt.C.B)=Re(jCC(ZL.Co∣∣Z6.B)+DCAC(ZCo)Z6.B+jBC)Im(Zopt.C.B)=Im(jCC(ZL.Co∣∣Z6.B)+DCAC(ZCo)ZC.B+jBC)ACDC+BCCC=1.

其中Zopt后面跟的英文,C(carrier)代表载波功放,P(peak)代表峰值功放,S(saturation)代表饱和时候,B(backoff)代表回退时候。式子右边实际上是ABCD矩阵,下标有C、P分别代表载波功放和峰值功放的输出匹配的ABCD矩阵;最后一行是ABCD二端口网络互易无损的约束;此外寄生参数应该也被包含在匹配网络ABCD矩阵里面了;

对于峰值功放,也有类似的表达式(eqn13),峰值功放在电流源平面上回退的阻抗是无穷大,所以文中没有额外列出:
{ Re ⁡ ( Z o p t . P . S ) = Re ⁡ ( A P ( 1 + 1 / S ) Z L . C O + j B P j C P ( 1 + 1 / S ) Z L . C O + D P ) Im ⁡ ( Z o p t . P . S ) = Im ⁡ ( A P ( 1 + 1 / S ) Z L . C O + j B P j C P ( 1 + 1 / S ) Z L . C O + D P ) A P D P + B P C P = 1. \begin{cases}\operatorname{Re}(Z_{\mathrm{opt.P.S}})=\operatorname{Re}\bigg(\frac{A_{\mathrm{P}}(1+1/S)Z_{\mathrm{L.CO}}+jB_{\mathrm{P}}}{jC_{\mathrm{P}}(1+1/S)Z_{\mathrm{L.CO}}+D_{\mathrm{P}}}\bigg)\\\operatorname{Im}(Z_{\mathrm{opt.P.S}})=\operatorname{Im}\bigg(\frac{A_{\mathrm{P}}(1+1/S)Z_{\mathrm{L.CO}}+jB_{\mathrm{P}}}{jC_{\mathrm{P}}(1+1/S)Z_{\mathrm{L.CO}}+D_{\mathrm{P}}}\bigg)\\A_{\mathrm{P}}D_{\mathrm{P}}+B_{\mathrm{P}}C_{\mathrm{P}}=1.\end{cases} Re(Zopt.P.S)=Re(jCP(1+1/S)ZL.CO+DPAP(1+1/S)ZL.CO+jBP)Im(Zopt.P.S)=Im(jCP(1+1/S)ZL.CO+DPAP(1+1/S)ZL.CO+jBP)APDP+BPCP=1.

作者表示:结合上面两个方程,该联合方程组由8个不相关方程和10个未知数组成,分别是AC、BC、CC、DC、AP、BP、CP、DP 、Re(ZL.CO) 和 Im(ZL.CO),也就是这个方程有通解和特解,能够张成线性空间。作者提出这个的依据要先假定 Z opt.C.S 、 Z opt.C.B 、 Z opt.P.S Z_{\text{opt.C.S}}、Z_{\text{opt.C.B}}、Z_{\text{opt.P.S}} Zopt.C.SZopt.C.BZopt.P.S已知,这几个的数值选择是比较关键的,对于常用的连续B/J类, Z opt.C.S 、 Z opt.P.S = R o p t Z_{\text{opt.C.S}}、Z_{\text{opt.P.S}}=Ropt Zopt.C.SZopt.P.S=Ropt,而 Z opt.C.B = R o p t + γ j R o p t Z_{\text{opt.C.B}}=Ropt+\gamma jRopt Zopt.C.B=Ropt+γjRopt处于连续空间。但是我没有看到作者提及这几个参数如何选取的,但是在“调谐最佳合路阻抗ZL.CO”中反而看到这些关键参数随ZL.CO化,我理解应该要先同时设定ZL.CO和 Z opt.C.S 、 Z opt.C.B 、 Z opt.P.S Z_{\text{opt.C.S}}、Z_{\text{opt.C.B}}、Z_{\text{opt.P.S}} Zopt.C.SZopt.C.BZopt.P.S才行啊

作者在III. METHODOLOGY OF TUNING ZL.CO FOR WIDEBAND DPA OPERATION中,先给出了结构和电路参数,再调谐ZL.CO,得到 Z opt.C.S 、 Z opt.C.B 、 Z opt.P.S Z_{\text{opt.C.S}}、Z_{\text{opt.C.B}}、Z_{\text{opt.P.S}} Zopt.C.SZopt.C.BZopt.P.S随频率变化的曲线,导致我难以follow。

作者对这个部分也没有实际的演示,比如说求得的ABCD矩阵究竟是什么,如何综合等等。但是,作者在寄生补偿结构推导的推导中给出了具体的电路结构,

1.3、寄生补偿结构推导

文中使用的寄生参数并非我们所熟悉的CGH40010F的寄生参数,我经常使用的寄生参数网络如:在这里插入图片描述

此文中使用的寄生参数如下,只包含一个电容和一个电感,这样的结构我也在一些硕士论文中看到过:
在这里插入图片描述
文中提出的寄生补偿电路如下,其中(a)是经典的,(b)是作者提出的:在这里插入图片描述
作者表示,对于经典的电路, θ e q \theta_{eq} θeq是固定的90度,因此ZL.CO是固定的(实际上就是四分之一波长变换关系,作者画图分析了,画图代码和公式Matlab见附录fig5):
Z L . C O = Z e q 2 ( 1 + S ) ⋅ R o p t Z_{\mathrm{L.CO}}=\frac{Z_{\mathrm{eq}}^2}{(1+S)\cdot R_{\mathrm{opt}}} ZL.CO=(1+S)RoptZeq2

所以作者在后面加了一段微带线,这样依据 θ \theta θ的值不同,最终合路的阻抗ZL.CO也可以变换。

1.4、调谐最佳合路阻抗ZL.CO

使用之前分析的作者提出的寄生补偿电路,我们得到下面的电路图,其中串联微带线等效成了电感,开路微带线等效成了电容(所以和之前有所不同):
在这里插入图片描述
作者给出了其中参数的计算公式:
{ C 1 = C 2 = C par , L 1 = L 2 = L e q Z eql = Z eq 2 , θ eq 1 = θ eq 2 Z eq 1 = ω ⋅ ( L par + L 1 ) sin ⁡ θ eq 1 , C par = 1 − cos ⁡ θ eq 1 ω 2 ⋅ ( L par + L 1 ) θ 1 = θ 2 = π / 2 − θ eq 1 . \begin{cases}C_1=C_2=C_{\text{par}},\quad L_1=L_2=L_{eq}\\Z_{\text{eql}}=Z_{\text{eq}2},\quad\theta_{\text{eq}1}=\theta_{\text{eq}2}\\Z_{\text{eq}1}=\dfrac{\omega\cdot\left(L_{\text{par}}+L_1\right)}{\sin\theta_{\text{eq}1}},\quad C_{\text{par}}=\dfrac{1-\cos\theta_{\text{eq}1}}{\omega^2\cdot\left(L_{\text{par}}+L_1\right)}\\\theta_1=\theta_2=\pi/2-\theta_{\text{eq}1}.\end{cases} C1=C2=Cpar,L1=L2=LeqZeql=Zeq2,θeq1=θeq2Zeq1=sinθeq1ω(Lpar+L1),Cpar=ω2(Lpar+L1)1cosθeq1θ1=θ2=π/2θeq1.

参数都给出来了,结合式子14、15、17、21,再假定ZL.CO,可以画出图7分析Matlab代码见附录),可以看到选择不同的合路阻抗,会导致电流源平面阻抗的变化,此处以ZC,S为例,作者分析ZC,S=15欧姆时最佳,因此选择合路阻抗为15欧姆(DPA经典的合路阻抗就是Ropt/2=15欧姆):
在这里插入图片描述
结构都有了,就是设计了呗,作者给出的理想设计参数:
在这里插入图片描述

2、ADS工程构建与测试

由于文中关于电路参数的数据不太完善,无法直接按照论文复现,所以电路是我自己基于理论调谐的,实现的效果也和作者有所差异。

2.1、输入匹配

Input_New\InputTest_v2
原来作者提供的输入匹配参数太少,只能自己设计了,设计结构如下(原始数据来自源牵引,源牵引教程参考ADS功放设计之负载牵引与源牵引):
在这里插入图片描述
在这里插入图片描述

2.2、后匹配电路

Output\OutputTest_PMN
在这里插入图片描述
15欧姆匹配到50欧姆,效果没得说:
在这里插入图片描述

2.3、合路电路

Output\OutputSub_OMN
是在作者给出的结构上进行优化的:
在这里插入图片描述
匹配效果杠杠的,但是版图有点差异:
在这里插入图片描述

2.4、宽带功分器

Divider\Divider
作者图里面的功分器没有具体结构,需要自己设计,使用ADS自带的微带线功分器设计工具,设计结果如下(参考ADS使用记录之功分器设计):
在这里插入图片描述

在这里插入图片描述

2.5、测试运行

Test\HB1ToneGComp1swp_Doherty
在这里插入图片描述
在这里插入图片描述

3、附录分析代码

3.1 fig5

clc
clear

Cpar=(0.2:0.1:2.0)*1e-12;
w=2*pi*2*1e9;

figure(1)
Zeq=20;
theta=2*atan(Cpar*Zeq*w);
L_all=(2*Cpar*Zeq^2)./(Cpar.^2*Zeq^2*w^2 + 1);
yyaxis left
plot(Cpar,theta,'-o','Color','r','LineWidth',1);hold on
yyaxis right
plot(Cpar,L_all*1e9,'-o','Color','b','LineWidth',1);hold on
xlabel('C_{par} F')

Zeq=30;
theta=2*atan(Cpar*Zeq*w);
L_all=(2*Cpar*Zeq^2)./(Cpar.^2*Zeq^2*w^2 + 1);
yyaxis left
plot(Cpar,theta,'-square','Color','r','LineWidth',1);hold on
yyaxis right
plot(Cpar,L_all*1e9,'-square','Color','b','LineWidth',1);hold on
xlabel('C_{par} F')

Zeq=50;
theta=2*atan(Cpar*Zeq*w);
L_all=(2*Cpar*Zeq^2)./(Cpar.^2*Zeq^2*w^2 + 1);
yyaxis left
plot(Cpar,theta,'-v','Color','r','LineWidth',1);hold on
yyaxis right
plot(Cpar,L_all*1e9,'-v','Color','b','LineWidth',1);hold on
xlabel('C_{par} F')

legend('\theta_{eq}@Z_{eq}=20 Ohm','\theta_{eq}@Z_{eq}=30 Ohm','\theta_{eq}@Z_{eq}=50 Ohm',...
    'L_{par}+L_{eq}@Z_{eq}=20 Ohm','L_{par}+L_{eq}@Z_{eq}=30 Ohm','L_{par}+L_{eq}@Z_{eq}=50 Ohm')

yyaxis left
ylabel('\theta_{eq}(rad)');
yyaxis right
ylabel('L_{par}+L_{eq}(nH)');

3.2 fig7

clc
clear
close all
%%%%%%%%%%
ZL_CO=30;
%%%%%%%%%%
w0=2*pi*2*1e9;
w=2*pi*2*1e9;
S=1;
Ropt=30;
Cpar=1.6*1e-12;
Lpar=0.55*1e-9;
C1=1.6*1e-12;



Zeq=sqrt(ZL_CO*(1+S)*Ropt);Zeq1=Zeq;Zeq2=Zeq;%eqn14
Z1=Zeq/(sqrt(Ropt/((S+1)*ZL_CO)));%eqn17
L_All=(2*Cpar*Zeq^2)/(Cpar^2*Zeq^2*w^2 + 1);
L1=L_All-Lpar;

theta_eq=2*atan(Cpar*Zeq*w);%eqn15
theta1=pi/2-theta_eq;theta2=theta1;%eqn21

w_arrary=2*pi*(1.2:0.01:3)*1e9;
theta1_arrary=theta1*w_arrary/w0;
% % 使用阻抗关系计算
% Zin1=Zeq*((1+S)*ZL_CO+1j*Zeq*tan(theta1_arrary))./(Zeq+1j*(1+S)*ZL_CO*tan(theta1_arrary));% 微带线前阻抗
% Zin2=1./(1./Zin1+1./(1./(1j*w_arrary*C1)));% 考虑电容C1的阻抗
% Zin3=Zin2+1j*w_arrary*(L1+Lpar);% 考虑两个电感
% Zin4=1./(1./Zin3+1./(1./(1j*w_arrary*Cpar)));
% ZCS=Zin4/Ropt;
% figure
% plot(w_arrary/(2*pi),real(ZCS))


syms w
% 使用ABCD矩阵计算,ZL_CO变化中心ZCS也变化
ACBD_Cpar=[1 0;1j*w*Cpar 1];
ACBD_Lpar=[1 1j*w*Lpar;0 1];
ACBD_L1=[1 1j*w*L1;0 1];
ACBD_C1=[1 0;1j*w*C1 1];
ACBD_Line=[cos(theta1*w/w0) 1j*Zeq*sin(theta1*w/w0);1j*sin(theta1*w/w0)/Zeq cos(theta1*w/w0)];
ACBD_S_ALL=ACBD_Cpar*ACBD_Lpar*ACBD_L1*ACBD_C1*ACBD_Line;
ZCS=((ACBD_S_ALL(1,1)*(1+S)*ZL_CO+ACBD_S_ALL(1,2))/(ACBD_S_ALL(2,1)*(1+S)*ZL_CO+ACBD_S_ALL(2,2)))/Ropt;
ZCB=((ACBD_S_ALL(1,1)*ZL_CO+ACBD_S_ALL(1,2))/(ACBD_S_ALL(2,1)*ZL_CO+ACBD_S_ALL(2,2)))/Ropt;
ZPS=((ACBD_S_ALL(1,1)*(1+S^-1)*ZL_CO+ACBD_S_ALL(1,2))/(ACBD_S_ALL(2,1)*(1+S^-1)*ZL_CO+ACBD_S_ALL(2,2)))/Ropt;
ZCS_num=double(subs(ZCS,w,w_arrary));
ZCB_num=double(subs(ZCB,w_arrary));
ZPS_num=double(subs(ZPS,w_arrary));


figure
plot(w_arrary/(2*pi),real(ZCS_num),w_arrary/(2*pi),imag(ZCS_num))
legend('Re(Z_{C.S})/R_{opt}','Im(Z_{C.S})/R_{opt}')
title(['Z_{L.CO}:',num2str(ZL_CO),' Ohm'])
figure
plot(w_arrary/(2*pi),real(ZCB_num),w_arrary/(2*pi),imag(ZCB_num))
legend('Re(Z_{C.B})/R_{opt}','Im(Z_{C.B})/R_{opt}')
title(['Z_{L.CO}:',num2str(ZL_CO),' Ohm'])
figure
plot(w_arrary/(2*pi),real(ZPS_num),w_arrary/(2*pi),imag(ZPS_num))
legend('Re(Z_{P.S})/R_{opt}','Im(Z_{P.S})/R_{opt}')
title(['Z_{L.CO}:',num2str(ZL_CO),' Ohm'])

4、文件解释(下载资源前必看)

4.1 环境

ADS版本:ADS2023

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第十四章[面向对象]:14.9:定制类

一,__len__()方法返回长度 1,len()函数 len()函数: 功能:len() 函数返回对象(字符、列表、元组等)长度或项目个数 语法: len( s ) 参数:s : 要查询长度的对象 返回值: 返回对象长度 2,没有定义__len__()方法时,对实例应用len()函数会引发TypeError class Student: …

【Spring】声明式事务 spring-tx

文章目录 声明式事务是什么?一、Spring事务管理器二、基于注解的声明式事务1.1 准备工作1.2 基本事务控制1.3 事务属性:只读1.4 事务属性:超时时间1.5 事务属性:事务异常1.6 事务属性:事务隔离级别1.7 事务属性&#x…

xff注入 [CISCN2019 华东南赛区]Web111

打开题目 看见smarty 想到模板注入 又看见ip 想到xff注入 一般情况下输入{$smarty.version}就可以看到返回的smarty的版本号。该题目的Smarty版本是3.1.30 在Smarty3的官方手册里有以下描述: Smarty已经废弃{php}标签,强烈建议不要使用。在Smarty 3.1&#xff…

springsecurity+vue前后端分离适配cas认证的跨域问题

0. cas服务搭建参考:CAS 5.3服务器搭建_cas-overlay-CSDN博客 1. 参照springsecurity适配cas的方式, 一直失败, 无奈关闭springssecurity认证 2. 后端服务适配cas: 参考前后端分离项目(springbootvue)接入单点登录cas_前后端分离做cas单点登录-CSDN博客 1) 引入maven依赖 …

css实现悬浮卡片

结果展示 html代码 <!doctype html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"> <meta name"viewport" content"…

MATLAB中的稀疏矩阵和密集矩阵

在MATLAB中&#xff0c;矩阵可以表示为密集或稀疏格式。通常&#xff0c;矩阵默认以密集格式存储&#xff0c;这意味着每个元素都明确地存储在内存中&#xff0c;无论它的值是多少。然而&#xff0c;当矩阵含有大量的零元素时&#xff0c;这种存储方式就会变得非常低效。为了更…

【深度学习目标检测】十八、基于深度学习的人脸检测系统-含GUI和源码(python,yolov8)

人脸检测是计算机视觉中的一个重要方向&#xff0c;也是一个和人们生活息息相关的研究方向&#xff0c;因为人脸是人最重要的外貌特征。人脸检测技术的重要性主要体现在以下几个方面&#xff1a; 人脸识别与安全&#xff1a;人脸检测是人脸识别系统的一个关键部分&#xff0c;是…

【QT QML】软件打包,生成安装包

一、版本 Desktop 5.15.2 MinGW 64-bit二、打包 1. 编译Release版本 2. 在工程目录下找到Realse文件夹 3. 拷贝文件 ***-Desktop_Qt_5_15_2_MinGW_64_bit-Release - release - xxx.exe到一个新文件夹中 4. 开启相应打包工具&#xff08;根据自己的编译器和版本选择&#xff0…

PPT大珩助手使用方法的详细介绍

软件介绍 PPT大珩助手是一款全新设计的Office PPT插件&#xff0c;它是一款功能强大且实用的PPT辅助工具&#xff0c;支持Wps Word和Office Word&#xff0c;能够轻松帮助您修改、优化和管理幻灯片。凭借丰富的功能和用户友好的界面&#xff0c;PPT大珩助手能够助力您打造出精…

【力扣hot100】刷题笔记Day11

前言 科研不顺啊......又不想搞了&#xff0c;随便弄弄吧&#xff0c;多花点时间刷题&#xff0c;今天开启二叉树&#xff01; 94. 二叉树的中序遍历 - 力扣&#xff08;LeetCode&#xff09; 递归 # 最简单递归 class Solution:def inorderTraversal(self, root: TreeNode) …

ChatGPT/GPT4科研应用与AI绘图及论文写作

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

第十一天-Excel的操作

目录 1.xlrd-Excel的读模块 安装 使用 获取工作簿 读取工作簿的内容 xlsxwriter-Excel的写模块 安装 使用 生成图表 add_series参数 图表的样式 demo&#xff1a;生成图表 Excel的操作在python中有多个模块&#xff0c;为了能够快速使用&#xff0c;选择了相对简单…

MATLAB使用绘图plot制作动态GIF

文章目录 1 前言2 DemoDemo 1 - 不使用函数Demo 2 - 使用函数 1 前言 在PPT展示或者博客创作中&#xff0c;有时需要插入动态图如GIF&#xff0c;来演示算法效果或者结果。在MATLAB中&#xff0c;可以通过一些代码&#xff0c;将绘图plot转化为动态的GIF。 其大致方法为&…

C++中的STL数据结构

内容来自&#xff1a;代码随想录&#xff1a;哈希表理论基础 1.常见的三种哈希结构 当我们想使用哈希法来解决问题的时候&#xff0c;我们一般会选择如下三种数据结构 数组 set &#xff08;集合&#xff09; map(映射) 在C中&#xff0c;set 和 map 分别提供以下三种数据结构…

vue3的diff

以vue3的patch为例 首先判断两个节点是否为相同同类节点&#xff0c;不同则删除重新创建如果双方都是文本则更新文本内容如果双方都是元素节点则递归更新子元素&#xff0c;同时更新元素属性更新子节点时又分了几种情况 新的子节点是文本&#xff0c;老的子节点是数组则清空&a…

07 STL 简介

目录 什么是STLSTL的版本STL的六大组件STL的重要性如何学习STLSTL的缺陷 1. 什么是STL c标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构和算法的软件框架 2. STL的版本 原始版本 Alexander Stepanov、Meng Lee在惠普实验室的…

详解AP3216C(三合一sensor: 光照、距离、照射强度)驱动开发

目录 概述 1 认识AP3216C 1.1 AP3216C特性 1.2 AP3216C内部结构 1.3 AP3216C 硬件电路 1.4 AP3216C工作时序 1.4.1 I2C 写数据协议 1.4.2 I2C 读数据协议 1.5 重要的寄存器 1.5.1 系统配置寄存器 1.5.2 和中断相关寄存器 1.5.3 IR数据寄存器 1.5.4 ALS 数据寄存器 …

Android 开发一个耳返程序(录音,实时播放)

本文目录 点击直达 Android 开发一个耳返程序程序编写1. 配置 AndroidManifast.xml2.编写耳返管理器3. 录音权限申请4. 使用注意 最后我还有一句话要说怕相思&#xff0c;已相思&#xff0c;轮到相思没处辞&#xff0c;眉间露一丝 Android 开发一个耳返程序 耳返程序是声音录入…

计算机网络实验八 利用 Java /C++开发网络聊天应用程序

一、实验目的和要求 1)基本掌握利用 Java 开发环境调试应用程序的方法。 2)理解基于套接字开发网络应用程序的过程,深入理解客户/服务器方式工作原理。 3)掌握基于Java和C++开发网络通信程序的方法。 二、实验环境 1)运行 Windows 2008 Server/XP/7 操作系统的 PC 2 台…

应急响应实战笔记03权限维持篇(3)

0x00 前言 攻击者在获取服务器权限后&#xff0c;会通过一些技巧来隐藏自己的踪迹和后门文件&#xff0c;本文介绍Linux下的几种隐藏技术。 0x01 隐藏文件 Linux 下创建一个隐藏文件&#xff1a;touch .test.txt touch 命令可以创建一个文件&#xff0c;文件名前面加一个 点…