当前位置: 首页 > news >正文

matlab测试ADC动态性能的原理

目录

摘要:

简介:

动态规范和定义

动态规格:

双面到单边的功率谱转换


摘要:

模数转换器(adc)代表了接收器、测试设备和其他电子设备中的模拟世界和数字世界之间的联系。正如本文系列的第1部分中所概述的,许多关键的动态参数提供了从给定的ADC中预期的动态性能的准确相关性。本文系列的第2部分介绍了用于测试高速adc的动态规范的一些设置配置、设备建议和测量程序。

简介:

下面讨论测试高速数据转换器的设置和程序。它包括软件工具,硬件配置,数据捕获和分析仪器,需要测试一个新的10位,+3V,高速数据转换器。如果不小心地执行设备选择、设置配置、布局和基于FFT的分析,它还会警告您可能会遇到的陷阱。本文将介绍以下主题。

动态规范和定义

电路板布局及硬件配置

功率谱、箱子、频谱泄漏和窗口功能

用于测试信噪比、SINAD、THD、SFDR和TTIMD的软件工具。

有许多方法可用于从A/D转换器中获取输出数据(而不仅仅是高速转换器),并分析它们的动态性能。这里介绍的方法代表了一种经过验证的方法,并鼓励读者根据手头的应用程序对它们进行修改。

动态规格:

信噪比(SNR)SNRdB = 6.02 × N + 1.76

Signal-to-Noise and Distortion Ratio (SINAD) =20 × log10 (ASIGNAL[rms] / ANOISE[rms]).

ENOB= (SINAD - 1.76) / 6.02

显著的孔径抖动限制了ADC的信噪比性能如下:

其中,fIN为模拟输入频率,tAJ为孔径抖动的时间。时钟抖动对于欠采样的应用程序尤其重要。

功率谱,箱,频谱泄漏和开窗

快速傅里叶变换(FFT)和功率谱是测量和分析来自捕获数据记录的信号的有力工具。它们可以捕获时域信号,测量它们的频率内容,将结果转换为方便的单元,并显示它们。然而,要执行基于FFT的测量,就必须了解这些问题和所涉及的计算。基于FFT的信号分析的基本功能是FFT本身和功率谱。两者都对测量平稳或瞬态信号的频率含量非常有用。fft通常在获取信号的时间间隔内产生一个信号的频率内容的平均值。因此,fft总是被推荐用于平稳信号分析。

双面到单边的功率谱转换

在信号分析中,最基本和最重要的计算方法是使用FFT从双面转换到单侧功率谱,调整频率分辨率,并显示频谱。功率谱通常返回一个包含频域内时域信号功率的双边表示的矩阵。这个矩阵中的值与构成时域信号的每个频率分量的振幅的平方成正比。双侧功率谱的曲线图通常同时包含负频率分量和正频率分量。然而,实际的频率分析工具只关注频谱的正一半,注意到真实信号的频谱是围绕直流电对称的。因此,负频率信息是不相关的。在双边频谱中,一半的能量在正频率,一半在负频率。因此,要将双面频谱转换为单侧频谱,请丢弃矩阵的后半部分,并将每个点(DC除外)乘以2。

箱和频率分辨率

频谱图的x轴和频率范围上的分辨率(见下面的程序代码提取)取决于采样率和数据记录的大小(采集点的数量)。功率谱中的频点或线数为N/2,其中N为时域中捕获的信号点数。功率谱中的第一条频率线总是代表直流电。最后一条频率线可以在fSAMPLE/2 - fSAMPLE/N处找到。频率线以fSAMPLE/N的偶数间隔间隔开,通常被称为频率箱或FFT箱(图3)。

对于fSAMPLE =的采样频率为82.345MHz,记录长度为8192个数据点,FFT图中每条频率线之间的距离正好是10.052kHz。

对频率轴(x轴)的计算证明了采样频率决定了频谱的范围或带宽。对于一个给定的采样频率,在时域中获得的点数决定了分辨率频率。为了提高给定频率范围的分辨率,可以在相同的采样频率下增加数据记录的深度(参见下面的程序代码提取)。

%Find the signal bin number, DC = bin 1

fin=find(Dout_dB(1:numpt/2)==maxdB);

%Span of the input frequency on each side

span=max(round(numpt/200),5);

%Approximate search span for harmonics on each side

spanh=2;

%Determine power spectrum

spectP=(abs(Dout_spect)).×(abs(Dout_spect));

%Find DC offset power

Pdc=sum(spectP(1:span));

%Extract overall signal power

Ps=sum(spectP(fin-span:fin+span));

%Vector/matrix to store both frequency and power of signal and harmonics

Fh=[];

%The 1st element in the vector/matrix represents the signal, the next element represents % the 2nd harmonic, etc.

Ph=[];

光谱泄漏和窗口功能

窗口函数在FFT分析中很常见,而它们的正确使用在基于FFT的分析中是至关重要的量度下面关于频谱泄漏的讨论强调了需要选择一个合适的窗口函数,并为给定的应用程序适当地缩放它。然而,为了准确地确定频谱泄漏,仅仅使用足够的信号采集技术,将双边功率谱转换为单面功率谱,并重新调整结果可能是不够的。为了更好地理解这一项,我们应该在一个频谱纯正弦输入上执行一个n点FFT。

谱泄漏是FFT算法中假设的结果,即时间记录在所有时间中都精确地重复,并且该时间记录中包含的所有信号都是以与时间记录长度对应的间隔为周期的。然而,时间记录(fIN/fSAMPLEn/nwandods)中的非积分循环数违反了这一条件,并导致频谱泄漏(图4)。(请参见第1部分的附录2。)只有两种情况可以保证获得整数个周期:

然而,在大多数情况下,该应用程序处理一个未知的平稳3输入。这意味着不能保证采样是一个整数个的周期。光谱泄漏通过将给定频率分量的能量分散到相邻的频率线或箱上而使测量失真。选择一个合适的窗口函数可以尽量减少这种频谱泄漏的影响。

为了充分理解一个给定的窗口函数如何影响频谱,我们必须更仔细地观察窗口的频率特征。输入数据的窗口化相当于将原始信号的频谱与窗口的频谱进行卷积。即使对于相干采样4,信号也与均匀高度的矩形窗口进行卷积。

窗口的实频特征是由一个主叶和几个侧叶组成的连续频谱。主叶以时域内信号的每个频率分量为中心。侧瓣在主瓣的每一侧的间隔接近于零。另一方面,FFT产生一个离散的频谱。窗口的连续周期谱由FFT采样,就像ADC在时域采样输入信号一样。在FFT的每条频率线上出现的是每个FFT频率线上的连续卷积谱的值。

如果原始信号的频率分量与频率线完全匹配,就像当您获得一个整数周期时一样,您只看到频谱的主瓣。侧叶不出现,因为窗口光谱在主叶两侧的箱式频率间隔上趋近于零。如果时间记录不包含整数周期,则窗口的连续谱从主瓣中心移到频率箱的一部分,该频率箱对应于频率分量和FFT频率线之间的差值。这种变化导致侧裂片出现在光谱中。因此,窗口的侧叶特征直接影响相邻频率分量“泄漏”到相邻频率箱的程度。

窗口特征

在选择适当的窗口之前,有必要定义允许用户比较窗口的参数和特征。这些特征包括-3dB主叶宽度、-6dB主叶宽度、最大侧叶水平和侧叶翻转率(表1)。窗口的侧叶的特征是侧叶峰值的最大侧叶水平(定义为最大侧叶水平)和侧叶水平(定义为以dB/十年或频率八度为单位的渐近衰减率)。

窗口的侧叶的特征是侧叶峰值的最大侧叶水平(定义为最大侧叶水平)和侧叶波动(定义为以dB/十年或频率八度为单位的渐近衰减率)。

选择正确得窗口

不同的窗口适合不同的应用程序。要选择正确的光谱窗口,就必须猜测信号的频率内容。如果信号包含远离感兴趣的频率的强干扰频率分量,那么您应该选择一个侧叶具有高滚动率的窗口。如果强干扰信号接近感兴趣的频率,则侧叶最大水平较低的窗口更合适。

如果感兴趣的频带包含两个或两个以上彼此接近的信号,则具有光谱分辨率变得很重要。在这种情况下,带有狭窄主叶的窗口更好。对于单个频率分量,其中的焦点是振幅精度,而不是其精确的位置在频率箱,推荐一个具有宽主叶的窗口。最后,建议对平面或宽带频谱进行相干采样(而不是窗口)(请参见下面的程序代码提取)。

汉宁窗口函数具有良好的频率分辨率和降低频谱泄漏,在大多数应用中都得到令人满意的结果。平顶窗口具有良好的振幅精度,但其宽的主叶提供了较差的频率分辨率和更多的光谱泄漏。平顶窗口的最大侧瓣水平比汉宁窗口更低,但汉宁窗口有更快的滚动率。

一个只由瞬态信号组成的应用程序应该完全没有光谱窗口,因为它们倾向于在样本块的开始时衰减重要的信息。在瞬态信号的情况下,您应该选择一个非光谱窗口,如力或指数窗口。选择一个合适的窗口并不容易,但如果信号内容未知,就可以从汉宁特性开始。比较多个窗口函数的性能以找到最适合给定应用程序的函数也是一个很好的主意

动态范围规格信噪比、SINAD、THD和SFDR

SNR = 10×log10(Ps/Pn)

SINAD = 10×log10(Ps/(Pn+Pd))

THD = 10×log10(Pd/Ph(1))

SFDR = 10×log10(Ph(1)/max(Ph(2:10))),

其中Ps为信号功率,Pn为噪声功率,Pd为2阶至5阶谐波引起的失真功率,Ph (1)为基本谐波功率,Ph(2:10)为2阶至9次谐波的谐波功率(功率谱水平见下面的程序代码提取)。

基于MATLAB源代码(见下文),MAX1448不仅对其数据表规格进行了测试,而且还对许多其他过采样和过采样的输入频率进行了测试。它在所有条件下都取得了良好的动态性能。

相关文章:

matlab测试ADC动态性能的原理

目录 摘要: 简介: 动态规范和定义 动态规格: 双面到单边的功率谱转换 摘要: 模数转换器(adc)代表了接收器、测试设备和其他电子设备中的模拟世界和数字世界之间的联系。正如本文系列的第1部分中所概述…...

PostgreSQL JSON/JSONB 查询与操作指南

PostgreSQL 提供了强大的 JSON 和 JSONB 数据类型及相关操作,适用于存储和查询半结构化数据。本文将详细介绍其常用操作。 1. 基础操作 1.1 JSON 属性访问 ->: 返回 JSON 对象中的值,结果为 JSON 格式。 SELECT {"a": {"b": 1…...

【Isaac Lab】Ubuntu22.04安装英伟达驱动

目录 1.1 禁用nouveau驱动 1.2 安装必要的依赖项 1.3 下载安装 1.4 查看是否安装成功 1.5 安装CUDA 1.5.1 下载 1.5.2 按照提示进行下载安装 1.5.3 添加环境变量 1.5.4 测试CUDA是否安装成功 1.1 禁用nouveau驱动 输入以下命令打开blacklist.conf文件 sudo vim /etc…...

JS,递归,处理树形数据组件,模糊查询树形结构数据字段

JS递归如何模糊查询树形结构数据,根据数据中的某一个字段值,模糊匹配 直接拿去使用就行 function filterTreeLabel(arr, label) {let result []arr.forEach((item) > {// if (String(item.POBJECT_NAME).toLowerCase().indexOf(label)!-1) {if (String(item.P…...

神州数码DCME-320 online_list.php 任意文件读取漏洞复现

0x01 产品描述: ‌神州数码DCME-320是一款高性能多业务路由器,专为多用户、多流量和多业务种类需求设计‌。它采用了...

nginx的内置变量以及nginx的代理

nginx的内置变量 客户端 命令含义$uri可以获取客户端请求的地址,包含主机和查询的参数$request_uri:获取客户端的请求地址,包含主机和查询参数。$host:请求的主机名,客户端—发送请求的url地址$http_user_agent获取客户端请求的浏览器和操作…...

ubuntu监测硬盘状态

安装smartmontools smartctl -l error /dev/sdk smartctl -i /dev/sda lshw -class disk smartctl -H /dev/sd 结果1: 结果2:PASSED,这表示硬盘健康状态良好 smartctl -a /dev/sdb sdk lsblk blkid 测试写入速度 time dd if/dev/zero of…...

3.2.1.2 汇编版 原子操作 CAS

基本原理说明 在 x86 和 ARM 架构上,原子操作通常利用硬件提供的原子指令来实现,比如 LOCK 前缀(x86)或 LDREX/STREX(ARM)。以下是一些关键的原子操作(例如原子递增和比较交换)的汇…...

InnoDB事务系统(二):事务的实现

事务隔离性由锁来实现。原子性、一致性、持久性通过数据库的 redo log 和 undo log 来完成。 redo log 称为重做日志,用来保证事务的原子性和持久性。undo log 用来保证事务的一致性。 有的 DBA 或许会认为 undo 是 redo 的逆过程,其实不然。redo 和 u…...

xdoj :模式匹配

模式匹配 题目描述: 接收信号中包含特定的信号模式,对接收信号进行检测,以统计特定模式出现的次数。 例如接收信号为 9 3 5 7 5 8 6 3 5 7 1 9 3 5 7,如果特定信号为 3 5 7,则接收信号中包含了 3 个特定模式。通过键…...

Redis的基本使用命令(GET,SET,KEYS,EXISTS,DEL,EXPIRE,TTL,TYPE)

目录 SET GET KEYS EXISTS DEL EXPIRE TTL redis中的过期策略是怎么实现的(面试) 上文介绍reids的安装以及基本概念,本章节主要介绍 Redis的基本使用命令的使用 Redis 是一个基于键值对(KEY - VALUE)存储的…...

LruCache(本地cache)生产环境中遇到的问题及改进

问题:单机qps增加时请求摘要后端,耗时也会增加,因为超过了后端处理能力(最大qps,存在任务堆积)。 版本一 引入LruCache。为了避免数据失效,cache数据的时效性要小于摘要后端物料的更新时间&…...

智慧公交指挥中枢,数据可视化 BI 驾驶舱

随着智慧城市的蓬勃发展,公共交通作为城市运营的核心枢纽,正朝着智能化和数据驱动的方向演进。通过整合 CAN 总线技术(Controller Area Network,控制器局域网总线)、车载智能终端、大数据分析及处理等尖端技术,构建的公交“大脑”…...

【计算机网络】期末考试预习复习|上

作业讲解 物理层作业 共有4个用户进行CDMA通信。这4个用户的码片序列为: A: (–1 –1 –1 1 1 –1 1 1);B: (–1 –1 1 –1 1 1 1 –1) C: (–1 1 –1 1 1 1 –1 –1);D: (–1 1 –1 –1 –1 –1 1 –1) 现收到码片序列:(–1 1 –…...

YOLOv8目标检测(四)_图片推理

YOLOv8目标检测(一)_检测流程梳理:YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集:YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型:YOLOv8目标检测(三)_训…...

AI工具如何深刻改变我们的工作与生活

在当今这个科技日新月异的时代,人工智能(AI)已经从科幻小说中的概念变成了我们日常生活中不可或缺的一部分。从智能家居到自动驾驶汽车,从医疗诊断到金融服务,AI正以惊人的速度重塑着我们的世界。 一、工作方式的革新…...

springboot中——Logback介绍

程序中的日志&#xff0c;是用来记录应用程序的运行信息、状态信息、错误信息等。 Logback基本使用 springboot的依赖自动传递了logback的依赖&#xff0c;所以不用再引入依赖 之后在resources文件下创建logback.xml文件&#xff0c;写入 <?xml version"1.0" …...

【Tomcat】第一站:理解tomcat与Socket

目录 1. Tomcat 1.1 Tomcat帮助启动http服务器。 1.2 tomcat理解&#xff1a; 2. 计算机网络最基本的流程 2.1 信息是怎么来的&#xff1f; 2.2 端口是干什么的&#xff1f; 3. 简单的Socket案例 服务端 客户端 启动&#xff1a; 3.2 在Tomcat发送信息&#xff0c;看…...

TQ15EG开发板教程:使用SSH登录petalinux

本例程在上一章“创建运行petalinux2019.1”基础上进行&#xff0c;本例程将实现使用SSH登录petalinux。 将上一章生成的BOOT.BIN与imag.ub文件放入到SD卡中启动。给开发板插入电源与串口&#xff0c;注意串口插入后会识别出两个串口号&#xff0c;都需要打开&#xff0c;查看串…...

Java从入门到工作4 - MySQL

一&#xff1a;检测数据库网络 telnet 127.0.0.1 3306 注意ip和端口后之间是空格&#xff0c;不需要引号 二&#xff1a;SQL语法 1、创建结果集 SELECT 电视机 AS typeUNION SELECT 电冰箱UNION SELECT 洗衣机UNION SELECT 空调UNION SELECT 电脑UNION SELECT 热水器UNION…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...