新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 一种使用Python来分析混合模式信号链中噪声的简单方法

一种使用Python来分析混合模式信号链中噪声的简单方法

作者:ADI系统设计/架构工程师Mark Thoren和ADI SW系统设计工程师Cristina Șuteu 时间:2023-02-13 来源:电子产品世界 收藏
编者按:涉及对真实世界进行敏感测量的应用都是从准确、精密的低噪声信号链开始。现代高度集成的数据采集器件通常可以直接连接到传感器输出,在单个硅器件上执行模拟信号调理、数字化和数字滤波,这极大地简化了系统电子组成。但是,要使这些现代器件发挥出色性能,并对它们进行调试,仍然需要深入了解信号链的噪声源和噪声限制滤波器。


本文引用地址://www.cghlg.com/article/202302/443297.htm

简介

无处不在。简单地说,任何将真实世界的信号转换为电子表示(然后数字化)的系统都可以被归类为。在信号链的每个点上,信号都以各种方式降级,从特征来看,可能是出现一定程度的失真,或是出现相加。在进入数字领域之后,对数字化数据的处理也不是完美的,但至少,实际上可以不受许多影响模拟信号的因素的影响——部件公差、温度漂移、邻近信号的干扰或电源电压变化。

随着行业不断扩展物理限制,有一点是肯定的:仪器仪表的模拟和混合信号部件始终存在可改进的空间。如果市场上出现的模数转换器(ADC)或数模转换器(DAC)在速度、噪音、功率、精度或价格方面都表现出色,制造商会很乐意用其来解决现有问题,然后要求进行更多改进。但是,为了给客户应用提供最佳的采集系统,就必须了解每种部件的限制,然后做出相应选择。

本教程ADI将侧重介绍单个信号链元件的,(可视作转换器连接教程的续篇1,2),并使用/SciPy3和LTspice®来模拟这些。然后,使用,通过libm2k和Linux®工业输入输出(IIO)框架来驱动ADALM2000多功能测试仪器来验证模拟结果。关于源代码和更多讨论,请参见配套的主动学习实验室练习。

一种通用的

图1显示了在精密仪器应用中很典型的一种通用信号链,提供物理输入和数字输出。目前有许多关于ADC的背景参考资料4,大部分读者都知道,ADC会在某个时点对输入信号进行采样(或测量某个观察时间段内信号的平均值),并生成该信号的数值表示,通常是二进制数值,其值介于0和2(N – 1)之间,N表示输出字的位数。

1676275259558618.png

图1 在混合模式信号链中,会将一些物理现象(例如温度、光强度、pH值、力或扭矩)转换为电气参数(电阻、电流或直接转换为电压)。然后,该信号被放大,受到低通滤波,然后被ADC数字化,ADC中可能包含内部数字滤波

ADC噪声源

虽然图1中有多个噪声源,但有一个经常被忽略,或是被过分强调,即ADC数字输出的位数。以前,人们将ADC的位数视为评断品质的终极指标,认为16位转换器比14位转换器好出4倍。5但在现在的高分辨率转换器中,位数几乎可以忽略。注意,信号链设计要奉行一条一般原则:“某一级的输入噪声应在一定程度上低于前一级的输出噪声。”

与信号链一样,ADC内部通常也有一个噪声源占主导。所以,如果对N位ADC应用无噪声信号:

■   要么得出单个输出代码,要么得出两个相邻的输出代码,然后量化噪声占主导地位。信噪比(SNR)不会大于(6.02N + 1.76)dB。6

■   多个输出代码呈高斯分布,热噪声源占主导地位。SNR不会大于:

1676275552491815.png

其中:VIN(p-p)表示满量程输入信号。α表示以电压为单位的输出代码的标准偏差。

分辨率很高的转换器(例如AD7124-8,稍后会用作示例)很少受量化噪声限制;在所有增益/带宽设置中,热噪声占主导地位,短路输入始终会导致产生按高斯分布分布的输出代码。图2显示24位Σ-Δ ADC AD7124-8的接地输入直方图,内部可编程增益放大器(PGA)分别设置为1和128。

1676275684667474.jpeg

1676275684943708.jpeg

图2 在PGA增益为1时(左侧),AD7124输出噪声中显示13个代码,标准偏差为约2.5个代码。当量化噪声可见时,热噪声更为显著。在PGA增益为128时(右侧),显示187个代码,量化噪声是无关紧要的。截断一个或两个最低有效位(双倍或四倍量化噪声)不会导致信息丢失

模拟和测量ADC噪声

模拟热噪声受限的ADC的噪声是很简单的。如果噪声“表现正常”(如图2所示,呈高斯分布),且在ADC的输入范围内保持恒定,即可使用NumPy7的随机正常函数来模拟ADC的时域噪声,然后通过标准偏差来进行验证,如图3所示。

1676275735258038.png

图3 使用NumPy模拟高斯噪声

1676275755536852.png

图4 ADALM2000是一款多功能USB测试仪器,具有两个通用模拟输入和两个输出,采样率分别为100 MSPS和150 MSPS。它可以作为简单的信号源,用于测量ADC噪声带宽和滤波器响应。运行支持AD7124器件驱动器支持的内核的树莓派4作为AD7124和主机之间的简单桥梁

AD7124设备驱动器在行业标准IIO框架之内,该框架具有完善的软件API(包括捆绑)。应用代码可以在本地(在树莓派上)运行,也可以通过网络、串行或USB连接在远程机器上运行。此外,pyadi-iio8抽象层负责与IIO器件进行连接所需的大部分样板的设置,极大地简化了软件接口。图5显示如何打开AD7124-8的连接,进行配置,捕捉一个数据块,然后关闭连接。

1676275779189608.png

图5 AD7124-8基本数据捕捉

建立与AD7124-8的通信之后,可以执行非常简单,但非常有用的测试:直接测量输入噪声。简单地让ADC的输入短路,然后查看ADC代码的分布,这是确定信号链设计的一个非常有用的步骤。AD7124的输入模式设置为单极性,所以只有正值是有效的;图6所示的测试电路确保输入始终为正值。

image.png

图6 使用一个电阻分压器在AD7124-8的输入中生成1.25mV偏置,克服15µV最大失调电压,确保ADC的读数始终为正

图7显示两个1024点的测量值。下方的(蓝色)线条是在初次通电后立即获取的。

1676275822593173.png

图7 两次AD7124-8数据捕捉是在采用1.25mV偏置的情况下进行的。下面的线条显示在通电后,电路升温时的初始漂移。上面的线条显示在半个小时升温后,读数达到稳定

“漂移”可能是由许多因素造成的——内部基准电压源升温、外部电阻升温(因此漂移),或者是因为寄生热电偶,在热电偶中,稍微不同的金属会在存在热梯度的情况下产生电压。升温后测量到的噪声为约565nV rms,与数据手册中的噪声规格相当。

用密度表示ADC噪声

如果所有元件都包括噪声密度规格(大部分明确规定的传感器和几乎所有的放大器都如此要求),模拟信号链设计的一般原则(某一级的输入噪声应在一定程度上低于前一级的输出噪声)将是一项简单的计算。

与放大器和传感器不同,ADC数据手册通常不包括噪声密度规格。用密度表示ADC的噪声之后,可以直接与模拟信号链的最后一个元件的输出噪声进行比较,它可能是ADC驱动器级,是增益级,或是传感器本身。

ADC的内部噪声必然会出现在DC和采样率的一半之间。理想情况下,该噪声是扁平的,或者至少是可预测的形状。事实上,由于ADC的总噪声分布在已知带宽上,所以可以将其转换成噪声密度,然后直接与信号链的其他元件进行比较。精密转换器的总噪声通常会直接给出,单位为Vrms:

1676275854180725.png

其中eRMS表示总有效值噪声,根据代码的接地输入直方图的标准偏差进行计算。

用正弦信号测试和表征的更高速度的转换器通常包含SNR规格。如果提供,可使用以下公式计算总有效值噪声:

1676275884178605.png

其中ADCp-p是ADC的峰峰值输入范围。可以使用以下公式计算等效噪声密度:

1676275902563096.png

其中fS表示ADC采样速率,单位为样本/秒。

在128SPS的数据速率下,在升温后图7的总噪声为565nV。噪声密度约为:

1676275921647858.png

ADC现在可以直接纳入信号链噪声分析中,为优化信号链增益提供了指导。

■   增加增益,只要到达“ADC之前的最后一个级的噪声密度比ADC的噪声密度高一位”的点,即停止。切勿再增加信号链增益——这只会放大噪声,并减小允许的输入范围。

这与“填补”ADC的输入范围的传统智慧背道而驰。如果ADC的转换函数中存在步进或断续,超出ADC的输入范围可能会有好处,但对于“表现正常”的ADC(大多数Σ-Δ ADC和现代的高分辨率逐次逼近寄存器(SAR) ADC)来说,通过噪声进行优化是首选方法。

测量ADC滤波器响应

AD7124-8是一个Σ-Δ ADC,其中调制解调器产生高采样率,但噪声大(低分辨率),表示模拟输入。这些噪声很大的数据然后被内部数字滤波器过滤,产生更低速率、更低噪声的输出。滤波器的类型因ADC而异,具体由预期的最终应用决定。AD7124-8是针对精密应用的通用器件。因此,数字滤波器响应和输出数据速率是高度可配置的。虽然数据手册中明确定义了滤波器响应,但有时可能需要测量滤波器对给定信号的影响。AD7124-8滤波器响应代码块(参见图9)通过将正弦波应用到ADC输入并分析输出来测量滤波器响应。该方法适用性高,可用于测量其他波形——子波和模拟的物理事件。ADALM2000连接至AD7124-8电路,如图8所示。

image.png

图8 ADALM2000波形发生器用于生成一定范围的正弦波频率,以直接测量AD7124-8的滤波器响应。虽然脚本将正弦波幅度和偏移设置为安全水平,1kΩ电阻可以在功能故障时保护AD7124-8。(ADALM2000的输出电压范围为–5V至+5V,而AD7124-8的绝对最大限值为-0.3V和+3.6V。)

AD7124-8滤波器响应代码块(参见图9)将设置ADALM2000的波形发生器,生成10Hz正弦波,捕捉1024个数据点,计算rms值,然后将结果附加到列表中。send_sinewave和capture_data是实用函数,分别用于发送一个正弦波到ADALM2000和接收来自AD7124的数据块。2 接着,它将频率步进增加,直到达到120Hz,然后给出图10所示的结果。

1676275975547229.png

图9 ADALM2000的滤波器响应框图

1676276029384015.png

图10 在64 SPS、sinc4模式下测量AD7124滤波器的响应,显示滤波器的通带、第一个波瓣和前两个零位

当测量高衰减值需要一个更安静和更低失真的信号发生器时,在此设置下,前几个主要波瓣的响应是明显的。

模拟ADC滤波器

测量ADC的滤波器响应的能力是一项实用的平台验证工具。但是,要完全模拟信号链,需要滤波器的模型。关于这一点,许多转换器(包括AD7124-8)没有明确指明,但可以根据数据手册中提供的信息逆向设计得出可用的模型。

注意,以下只是AD7124-8滤波器的模型;不是位精准的表示。请参考AD7124-8数据手册查看所有保证参数。

AD7124的滤波器都具有由各种sinc函数组成的频率响应(频率响应与(sin{f}/f)N成正比)。这些滤波器易于构建,在零位已知的情况下可以逆向设计。

图11显示AD7124-8的10Hz陷波滤波器。还提供高阶sinc3和sinc4滤波器的各种组合。

滤波器的脉冲(时域)形状如图14所示。滤波器系数(tap)值被标准化,以得出零频率时的单位(0dB)增益。

1676276048488208.png

图11 AD7124-8 10 Hz陷波滤波器具有sinc1幅度响应;滤波器的脉冲响应只是100 ms时间间隔内样本的未加权(矩形)平均值

图12中显示的同步50Hz/60Hz拒波滤波器是一个重要示例。此滤波器用于强烈抑制来自交流电源线的噪声,可能是50Hz(与欧洲一样),或者是60Hz(与美国一样)。

1676276066745533.png

图12 AD7124-8 50Hz/60Hz拒波滤波器响应是50Hz sinc3滤波器和60Hz sinc1滤波器的组合

可以通过对sinc1滤波器进行卷积来生成更高阶的sinc滤波器。例如,将两个sinc1滤波器(在时间上有一个矩形脉冲响应)进行卷积将得到一个三角脉冲响应和一个相应的sinc2频率响应。AD7124滤波器代码块(参见图13)生成一个sinc3滤波器,在50Hz时为零,然后添加第四个滤波器,在60Hz时为零。

1676276086377865.png

图13 适用于50Hz/60Hz sinc滤波器的AD7124-8代码示例

滤波器的脉冲(时域)形状如图14所示。滤波器系数(tap)值被标准化,以得出零频率时的单位(0dB)增益。

1676276105417901.png

图14 对矩形脉冲响应进行反复卷积,得到三角形响应,然后是类高斯脉冲响应

最后,可以使用NumPy的freqz函数计算频率响应,如图16所示。响应如图15所示。

1676276135182445.png

图15 将sinc3 50Hz陷波滤波器与sinc1 60Hz滤波器进行卷积,将产生强烈抑制50Hz和60Hz的复合响应

1676276160894859.png

图16 AD7124-8代码示例,适用于带sinc 60Hz滤波器的sinc3 50Hz陷波滤波器

无可避免:传感器的基本限制

所有传感器,无论多么完美,都有最大输入值(和对应的最大输出,可能是电压、电流、电阻,甚至是刻度位置)和一个有限的本底噪声——即使输入完全静止,输出也存在“波动”。在有些情况下,提供电力输出的传感器可能包含具有有限电阻(更广泛一点,阻抗)的元件,在图17中,RSENSOR表示该电阻。这代表一个无法改善的基本噪声限值,此电阻会生成en(RMS)噪声电压,最小值为:

1676276178365000.png

其中:eN (RMS)表示总噪声。K表示波尔兹曼常数(1.38e-23 J/K)。T表示电阻的绝对温度(开氏度)。F2和F1表示相关频段的上限和下限。将带宽标准化至1Hz,以V/√Hz为单位表示噪声密度。

传感器数据手册可能给出低输出电阻(通常接近0Ω),但这可能是个缓冲级,可以简化与下游电路之间的连接,但无法消除信号链前面部分的电阻导致的噪声。

image.png

图17 传感器通常包括一个内部缓冲器,用于简化与下游电路的连接。当输出阻抗很低(通常接近0 Ω)时,来自高阻抗检测元件的噪声与信号一起被缓冲

还有许多其他的传感器限制——机械的、化学的、光学的,每个传感器都有自己的理论限制,我们可以模拟其影响,之后再进行补偿。但噪声是唯一无法弥补的缺陷。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭