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介绍
程序中的日志,是用来记录应用程序的运行信息、状态信息、错误信息等。 Logback基本使用 springboot的依赖自动传递了logback的依赖,所以不用再引入依赖 之后在resources文件下创建logback.xml文件,写入 <?xml version"1.0" …...
【Tomcat】第一站:理解tomcat与Socket
目录 1. Tomcat 1.1 Tomcat帮助启动http服务器。 1.2 tomcat理解: 2. 计算机网络最基本的流程 2.1 信息是怎么来的? 2.2 端口是干什么的? 3. 简单的Socket案例 服务端 客户端 启动: 3.2 在Tomcat发送信息,看…...
TQ15EG开发板教程:使用SSH登录petalinux
本例程在上一章“创建运行petalinux2019.1”基础上进行,本例程将实现使用SSH登录petalinux。 将上一章生成的BOOT.BIN与imag.ub文件放入到SD卡中启动。给开发板插入电源与串口,注意串口插入后会识别出两个串口号,都需要打开,查看串…...
Java从入门到工作4 - MySQL
一:检测数据库网络 telnet 127.0.0.1 3306 注意ip和端口后之间是空格,不需要引号 二:SQL语法 1、创建结果集 SELECT 电视机 AS typeUNION SELECT 电冰箱UNION SELECT 洗衣机UNION SELECT 空调UNION SELECT 电脑UNION SELECT 热水器UNION…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
SQL进阶之旅 Day 22:批处理与游标优化
【SQL进阶之旅 Day 22】批处理与游标优化 文章简述(300字左右) 在数据库开发中,面对大量数据的处理任务时,单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”,深入探讨如何通过批量操作和游标技术提…...
uniapp获取当前位置和经纬度信息
1.1. 获取当前位置和经纬度信息(需要配置高的SDK) 调用uni-app官方API中的uni.chooseLocation(),即打开地图选择位置。 <button click"getAddress">获取定位</button> const getAddress () > {uni.chooseLocatio…...
ffmpeg(三):处理原始数据命令
FFmpeg 可以直接处理原始音频和视频数据(Raw PCM、YUV 等),常见场景包括: 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装(如封装为 MP4、TS) 处理原始 YUV 视频…...
若依项目部署--传统架构--未完待续
若依项目介绍 项目源码获取 #Git工具下载 dnf -y install git #若依项目获取 git clone https://gitee.com/y_project/RuoYi-Vue.git项目背景 随着企业信息化需求的增加,传统开发模式存在效率低,重复劳动多等问题。若依项目通过整合主流技术框架&…...
