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

2023-10-12 14:28

本文主要是介绍基于VCO的OTA稳定性分析的零交叉时差模型研究(Matlab代码实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈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]-[3],[8]-[10]的数字性质。VCO-OTA已在滤波器、接收器、DC-DC转换器、低压差稳压器和ADC [1]–[6]、[8]–[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代码、数据、文献

这篇关于基于VCO的OTA稳定性分析的零交叉时差模型研究(Matlab代码实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/196434

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、