SAR ADC系列3:ADC动态指标 | 您所在的位置:网站首页 › adc如何走位 › SAR ADC系列3:ADC动态指标 |
目录 量化误差 量化噪声功率计算 信噪比SNDR ADC SNDR Matlab计算 动态范围DR (Dynamic Range) SFDR(Spurious Free Dynamic Range) SDR & THD 量化误差量化步进:1LSB = VFS / 2^N 。满量程VFS:(-0.5LSB ~ 2^N-1)LSB量化误差 = ADC输出 - ADC模拟输入 以N=3为例:VFS = -0.5LSB ~ 7.5LSB 量化误差范围:[-0.5 , 0.5] LSB 假设输入信号为一个斜率足够小的斜坡信号,最大幅度为VFS 如何计算量化噪声的RMS值? ■ 假设输入信号摆幅远大于LSB ■ 假设输入信号不是直流信号 ■ 假设信号不限幅 量化噪声: ■ SNR = 6.02*N + 1.76 N = 8,SNR = 50 dB; N = 10,SNR = 61.68 dB; N = 12,SNR =74 dB; N = 14,SNR = 85.84 dB; N = 16,SNR = 98 dB; N = 20,SNR = 122 dB; 在Demo Codel中,信号周期数M=37为质数,建议读者可以尝试M取偶数,比如M=32,看看DFT效果,并尝试去解释该种现象。 clear;clc; N = 1024; M = 37; fin = 1e6; fs = N*fin/M; Ts = 1/fs; t = 0:Ts:(N-1)*Ts; LSB = 2/2^10; vin = sin(2*pi*fin*t); vin = round(vin/LSB)*LSB; % vin/LSB四舍五入 figure(1); plot(t,vin); s = fft(vin); s = abs(s) + 1e-6; s_dB = 20*log10(s); s_dB = s_dB - max(s_dB); s_dB = s_dB(1:N/2); figure(2); f = (0:N/2-1)*fs/N; plot(1:N/2,s_dB); % 计算SNR sig_bin = M+1; s = s(1:N/2); s = s.^2; power_sig = s(sig_bin); power_noise = sum(s) - power_sig; snr = 10*log10(power_sig/power_noise)ADC能够线性处理的最大信号和最小信号之间的比值。 信号 和 最大的谐波 的功率之比 取dB THD = 所有的谐波加起来和信号的功率之比,不考虑噪声仅考虑非线性。 |
CopyRight 2018-2019 实验室设备网 版权所有 |