基于VCO的OTA稳定性分析的零交叉时差模型研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

****🏆博主优势:**🌞🌞🌞**博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️**座右铭:**行百里者,半于九十。

📋📋📋++本文目录如下:++🎁🎁🎁

目录

[💥1 概述](#💥1 概述)

[📚2 运行结果](#📚2 运行结果)

[🎉3 参考文献](#🎉3 参考文献)

[🌈4 Matlab代码、数据、文献](#🌈4 Matlab代码、数据、文献)


💥1 概述

本文介绍了基于电压控制振荡器的跨导运算放大器(VCO-OTA)的过零时差模型(ZCTDM)。小信号、线性、离散时间模型以等距时间间隔提供输出电流脉冲,其幅度与VCO-OTA中两个VCO的过零点之间的时间差成正比。与连续时相域模型(CT-PDM)和脉冲不变变换模型(IITM)相比,ZCTDM考虑了VCO振荡频率附近输出端产生的高频信号和高频输入响应。因此,ZCTDM在反馈配置中捕获VCO-OTA的完整环路响应,只要输出电压放电速率小于系统更新速率,大多数应用中都是这种情况。通过两个设计示例演示了该模型的应用。使用ZCTDM建模的系统的频率响应与使用广泛的行为模型模拟的响应的频率响应在0.5dBRMS以内,而使用CT-PDM和IITM得出的结果在定性和定量上都存在显着偏差。

操作跨导放大器(OTA)构成了许多模拟和混合信号电路的核心,例如滤波器、RF调制器、DC-DC转换器和模数转换器(ADC)1--6。随着过去几十年技术的发展,晶体管的电源电压和固有增益降低了,而晶体管速度却提高了7。对于模拟电路,尤其是OTA,需要晶体管的高固有增益才能提供高直流增益。随着电源电压的缩放,晶体管的堆叠变得越来越困难,因此必须使用多级OTA来提供高直流增益。然而,在此类 OTA 中,在保持稳定性的同时实现高带宽变得困难。

基于压控振荡器 (VCO) 的 OTA (VCO-OTA) 图 1(a) 已成为传统放大器的替代品,并且由于频率到相位转换而提供高直流增益。他们受益于技术扩展,因为他们的块1-38-10的数字性质。VCO-OTA已在滤波器、接收器、DC-DC转换器、低压差稳压器和ADC 1--68--14等多种应用中得到证明。

📚 2 运行结果

剩余其他运行结果图直接去掉Matlab外框 。

部分代码:

%% Plots:

% first row: simple sine wave sampled at vco frequency and its spectrum

% second row: emulates impulses. So the spectrum contains first order

% tones.

% third row: creating PWM and plotting that.

figure(1); clf;

subplot(3,3,1)

plot((1:length(vin_pwm))*ts,vin_pwm,'-k','LineWidth',line_width); grid on; ylim(-1.5\*PWM_amp_max,1.5\*PWM_amp_max); xlim(0,1/fin);

subplot(3,3,3);

plot(1/(tsim)*(-length(vin_pwm)/2:length(vin_pwm)/2-1),pwm_fft_norm,'-k', 'LineWidth',line_width); grid on; xlim(0,1.5/tvco); ylim(-80, 0);

subplot(3,3,4);

plot((1:length(vin_upsampled))*ts,vin_upsampled,'-b', 'LineWidth',line_width); grid on; xlim(0,1/fin); ylim(-1.4\*A,1.4\*A);

subplot(3,3,6);

plot(1/(tsim)*(-length(vin_upsampled)/2:length(vin_upsampled)/2-1),upsampled_fft_norm,'-b', 'LineWidth',line_width); grid on; xlim(0,1.5/tvco);

subplot(3,3,7);

plot((1:length(vin))*ts*OSR,vin,'-r', 'LineWidth',line_width); grid on; xlim(0,1/fin);ylim(-1.4\*A,1.4\*A);

subplot(3,3,9);

plot(1/tsim*(-length(vin)/2:length(vin)/2-1),20*log10(fftshift(abs(fft(vin)))),'-r', 'LineWidth',line_width); grid on; xlim(0,0.5/tvco); ylim(-400,0);

subplot(3,3,1); fig_set_text('PWM signal', 'time(s)','I_{CP}(mA)',font_size);

subplot(3,3,3); fig_set_text('PWM signal FFT', 'freq.(Hz)','Norm. Mag. (dB)',font_size);

subplot(3,3,4); fig_set_text('ZCTDM signal', 'time(s)','I_{CP}^*(mA)',font_size);

subplot(3,3,6); fig_set_text('ZCTDM signal FFT', 'freq.(Hz)','Norm. Mag. (dB)',font_size);

% s_ylabel = '\\overline{I_{CP}}(mA)';

s_ylabel = 'I_{CP}(mA)';

subplot(3,3,7); fig_set_text('CT-PDM signal', 'time(s)',s_ylabel,font_size);

% h = ylabel(s_ylabel,'FontName','Times','fontweight','bold','fontsize',fontsize,'Interpreter','latex');

subplot(3,3,9); fig_set_text('CT-PDM signal FFT', 'freq.(Hz)','Norm. Mag. (dB)',font_size);

subplot(3,3,2);

plot((1:length(vin_pwm))*ts,vin_pwm,'-k','LineWidth',line_width); grid on; ylim(-1.5\*PWM_amp_max,1.5\*PWM_amp_max); xlim(0.215/fin,0.245/fin);

subplot(3,3,5);

plot((1:length(vin_upsampled))*ts,vin_upsampled,'-b', 'LineWidth',line_width); grid on; xlim(0.215/fin,0.245/fin); ylim(-1.4\*A,1.4\*A);

subplot(3,3,8);

plot((1:length(vin))*ts*OSR,vin,'-r', 'LineWidth',line_width); grid on; xlim(0.215/fin,0.245/fin);ylim(-1.4\*A,1.4\*A);

subplot(3,3,2); fig_set_text('Zoomed PWM signal', 'time(s)','I_{CP}(mA)',font_size);

subplot(3,3,5); fig_set_text('Zoomed ZCTDM signal', 'time(s)','I_{CP}^*(mA)',font_size);

subplot(3,3,8); fig_set_text('Zoomed CT-PDM signal', 'time(s)',s_ylabel,font_size);

saveas(gcf, '../results/Fig05.png');

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、数据、文献

相关推荐
LDR00610 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术10 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园10 天前
C++20 Modules 模块详解
java·开发语言·spring
xiao5kou4chang6kai410 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
swordbob10 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享10 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.10 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..10 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽10 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下10 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php