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

天津哪里有做网站的jquery wordpress

天津哪里有做网站的,jquery wordpress,公司标志logo设计免费,企业建设网站注意点【ADC测试】在ADC马密度的方式测试INL和DNL ADC 测试环境TI PSIEVM 板子的方案 ADC的主要参数ADC静态参数计算DNL 计算理想码宽和实际码宽的偏差INL 的计算 ADC的动态参数计算 马密度计算计算马密度,将每个位置的值存为CSV基于正弦波随机产生一些点,看概…

【ADC测试】在ADC马密度的方式测试INL和DNL

  • ADC 测试环境
    • TI PSIEVM 板子的方案
  • ADC的主要参数
    • ADC静态参数计算
      • DNL 计算理想码宽和实际码宽的偏差
      • INL 的计算
    • ADC的动态参数计算
  • 马密度计算
    • 计算马密度,将每个位置的值存为CSV
    • 基于正弦波随机产生一些点,看概率
  • 总结

ADC 测试环境

下图就是ADC测试的基础环境,信号源提供模拟信号和标准的时钟,
然后提供低噪声的电源,通过逻辑分析仪将ADC输出的串行码率传输到电脑后进行分析
在这里插入图片描述

TI PSIEVM 板子的方案

TI的这个板子提供了一个高精度2kHZ的正弦波信号源。
整个方案自制了高精度的信号源,也使用fpga既能提供时钟,也能当逻辑分析仪使用。算是一个比较具有性价比的方案。
在这里插入图片描述
下面主要讲一下 PSIEVM这个板子的架构

信号是通过430来实现控制的,这个如果我自己做的话打算换成st的,因为我不熟悉ti的平台。
在这里插入图片描述
这个是整个板子的电源树,整体还算清晰,直接供给一个5V的USB电源,后续板子上的芯片产生所需的各种电压。
在这里插入图片描述
因为笔者搭建的是MCU的测试环境,所以上面的FPGA这些都使用不到,相关信息直接MCU发给PC就可以了。

TI所列出的demo都是支持差分输入的,可能这个部分需要一些小修改

ADC的主要参数

ADC主要有静态参数和动态参数两个。
静态特性: offset(偏移误差),gan error(放大误差),INL,DNL
动态特性: 信噪比(SNR)、总谐波失真(THD)、有效位数(ENOB) 和 无杂散动态范围(SFDR),SINAD(信纳比)

ADC静态参数计算

offset,gan error可以通过外部校准来优化误差值

DNL 计算理想码宽和实际码宽的偏差

D N L ( k ) = 实际码宽 ( k ) 理想码宽 − 1 DNL(k) = \frac{实际码宽(k)}{理想码宽}-1 DNL(k)=理想码宽实际码宽(k)1

这里的实际码宽就是在环境中测试到特定编码出现的数量,理想码宽就是理论上出现的概率,如果信号源输出的是三角波,那么每个码出现的概率是相同的,直接填写即可。如果是正弦波,则需要计算正弦波的概率密度函数(Probability Density Function, PDF),通过马密度来计算出浴盆曲线。从而比较。

INL 的计算

I N L ( k ) = ∑ i = 1 k D N L ( i ) INL(k) = \sum_{i=1}^kDNL(i) INL(k)=i=1kDNL(i)
这是积分计算的方式,叠加计算即可

ADC的动态参数计算

动态参数需要对信号执行FFT,之后再计算

S N R = 10 log ⁡ 10 ( P s i g n a l P n o i s e ) SNR=10\log_{10}(\frac{P_{signal}}{P_{noise}}) SNR=10log10(PnoisePsignal)

T H D = 10 log ⁡ 10 ( P h a r m o n i c s P s i g n a l ) THD=10\log_{10}(\frac{P_{harmonics}}{P_{signal}}) THD=10log10(PsignalPharmonics)

S I N A D = 10 log ⁡ 10 ( P s i g n a l P n o i s e + P h a r m o n i c s ) SINAD=10\log_{10}(\frac{P_{signal}}{P_{noise}+P_{harmonics}}) SINAD=10log10(Pnoise+PharmonicsPsignal)

E N O B = S I N A D − 1.76 6.02 ENOB = \frac{SINAD−1.76}{6.02} ENOB=6.02SINAD1.76

SFDR:基波幅值与最大杂散分量的比值(dBc)。

马密度计算

计算马密度,将每个位置的值存为CSV

import numpy as np
import matplotlib.pyplot as pltdef calculate_ideal_probabilities_sine_unipolar(N, V_FS, A=None):"""计算单极性ADC在偏置正弦波输入下的理想概率分布参数:N (int): ADC位数V_FS (float): 满量程电压(0~V_FS)A (float, optional): 正弦波幅值,默认取V_FS/2返回:np.ndarray: 各码的理想概率数组,形状为(2^N,)"""if A is None:A = V_FS / 2  # 默认幅值为满量程的一半num_codes = 2 ** Nk = np.arange(num_codes)print(k)# 计算单极性电压边界V_low = k * V_FS / num_codesV_high = (k + 1) * V_FS / num_codes# 转换为等效双极性坐标(减去直流偏置A)x_low = V_low - Ax_high = V_high - A# 截断到正弦波实际范围[-A, A]x1 = np.maximum(x_low, -A)x2 = np.minimum(x_high, A)# 计算概率密度积分with np.errstate(invalid='ignore'):  # 忽略无效值警告term1 = np.arcsin(x2 / A)term2 = np.arcsin(x1 / A)probabilities = (term1 - term2) / np.pi# 处理无效情况(x1 >= x2时概率为0)mask = (x1 < x2) & (~np.isnan(probabilities))probabilities = np.where(mask, probabilities, 0.0)return probabilities# 参数设置
N = 12         # ADC位数
V_FS = 3.3     # 满量程电压
A = V_FS / 2   # 正弦波幅值(1.65V)# 计算概率分布
probs = calculate_ideal_probabilities_sine_unipolar(N, V_FS, A)# 绘制结果
plt.figure(figsize=(12, 6))
codes = np.arange(2**N)# 全范围概率分布
plt.subplot(2, 1, 1)
plt.plot(codes, probs, 'b-', linewidth=0.5)
plt.title(f'12-bit Unipolar ADC Probability Distribution (V_FS={V_FS}V)')
plt.xlabel('Digital Code')
plt.ylabel('Probability')
plt.grid(True)# 中心区域放大(显示1000~3000码范围)
plt.subplot(2, 1, 2)
zoom_range = slice(1000, 3000)
plt.plot(codes[zoom_range], probs[zoom_range], 'r-', linewidth=1)
plt.title('Zoomed Center Region (Codes 1000~3000)')
plt.xlabel('Digital Code')
plt.ylabel('Probability')
plt.grid(True)plt.tight_layout()
plt.show()# 验证概率和
print(f"Total Probability: {np.sum(probs):.6f}")

输出结果大概如图所示
在这里插入图片描述
几个点位出现的概率
在这里插入图片描述

probs是存储所有码概率的数组,这里将这个数组保存到csv中

import pandas as pd
import numpy as np# 将数组转换为 DataFrame
df = pd.DataFrame(probs, columns=['Probability'])# 保存到 CSV 文件
df.to_csv('probs.csv', index=False)print("数组已保存到 probs.csv")

基于正弦波随机产生一些点,看概率

import numpy as np
import matplotlib.pyplot as plt# 生成数据
np.random.seed(42)
n_points = 100_000_000
x = np.random.uniform(0, 2 * np.pi, n_points)
y = np.sin(x)# 绘制x和y的分布
plt.figure(figsize=(12, 6))plt.subplot(1, 2, 1)
plt.hist(x, bins=100, density=True, alpha=0.7, color='blue')
plt.title('x值的分布(均匀分布)')plt.subplot(1, 2, 2)
plt.hist(y, bins=100, density=True, alpha=0.7, color='red')
plt.title('y=sin(x)的分布(Arcsine分布)')plt.tight_layout()
plt.show()# 绘制散点图(下采样)
sample_indices = np.random.choice(n_points, 10_000, replace=False)
x_sample = x[sample_indices]
y_sample = y[sample_indices]plt.figure(figsize=(10, 6))
plt.scatter(x_sample, y_sample, s=1, alpha=0.5)
plt.title('正弦函数上的随机采样点')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

在这里插入图片描述
在这里插入图片描述

打印了一些点,看起来相差不多。
在这里插入图片描述

总结

ADC测试标准
IEEE 1241-2010:明确规定了码密度测试的流程和数据处理方法。
JEDEC JESD207:针对高速ADC的测试标准,包含码密度测试的优化方案。

http://www.dtcms.com/a/523760.html

相关文章:

  • 流媒体网站建设规划亚马逊网站建设案例
  • PHP 异步IO扩展包 AsyncIO v2.0.0 发布
  • 《信息系统项目管理师》案例分析题及解析模拟题5
  • Jenkins上实现CI集成软件信息Teams群通知案例实现。
  • ZYNQ平台中断服务函数中的变量不加volatile修饰导致的奇怪问题解决
  • 2026年UX/UI五大趋势:AI、AR与包容性设计将重新定义用户体验
  • 网站做跳转自己建网站卖鞋
  • 百度网站服务器外贸网站优化
  • 应广单片机烧录跳线J7专用PCB使用说明
  • Java 前后端加密与编码技术:从概念到实战场景全解析
  • 拒绝笨重,一款轻量、极致简洁的开源接口管理工具 - PostIn
  • 建设银行信用卡网站是哪个茶叶seo网站推广与优化方案
  • vant van-uploader上传file文件;回显时使用imageId拼接路径
  • Java常用中间件整理讲解——Redis,RabbitMQ
  • JavaEE初阶7.0
  • 从“天书”到源码:HarmonyOS NEXT 崩溃堆栈解析实战指南
  • 个人网站收款google play 应用商店
  • _撸猫websocket服务器端,手机远程服务端
  • 【论文精读】FDGaussian:基于几何感知扩散模型的单图快速高斯溅射 3D 重建
  • 功防世界-Web-bug
  • 做网站能拿多少钱平面设计 网站推荐
  • REST介绍,实质,六大约束,优缺点(数据冗余问题,身份验证困难(解决方式 -- JWT+集中式认证服务,使用代理))
  • Snapchat Data Scientist 面试经验分享|从 OA 到 Final Round 全流程复盘
  • 消息队列集群——RabbitMQ
  • 初识C语言14.动态内存管理
  • ks2e做网站高端品牌设计
  • 华为od-22届考研-C++面经
  • Win10 系统构建仿真 NVIDIA Jetson Orin Nano 环境部署 YOLOv8 模型
  • 英文网站开发付费下插件wordpress
  • 【面板数据】汽车之家及懂车帝汽车配置信息数据集(1999-2025.4)