打印
[测量]

发骚日记之二:非线性失真之总谐波失真(THD)测试

[复制链接]
19157|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nethopper|  楼主 | 2017-10-16 10:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

非线性失真之总谐波失真(THD)测试
一、前言

这里的“骚”是文人骚客的“骚”,就是在松香的熏陶下焊接电路板之际,突然来了诗意,于是放下烙铁拿起笔,要写点什么的意思。当然“骚”也可当作发烧友的“烧”,就算是个通假字吧,反正古人不会写某个字的时候,就随便找个发音或笔画相近的字代替,其实可能就是个错别字,现代人却美其名曰通假字,毕竟那时没有拼音嘛,否则就可以像某些现代人一样,不会写就用拼音代替了。不过也有可能不是错别字,因为毕竟茴香豆的“茴”字还有N种正确写法呢。

言归正传,本篇讲的是非线性失真之总谐波失真,呵呵,光解释这个名词就得发挥打破砂锅问到底的大无畏的革命精神。

首先什么是失真?简单地说如果一个信号通过一个系统后,其形状发生 了改变,那么这个信号就失真了。失真又可分为线性失真和非线性失真。

那么什么是线性失真?简单地说如果一个信号通过一个系统后,没有新的频率产生,那么就是线性失真。线性失真可由系统的幅频响应的非平坦性引起,也可由系统相频响应的非线性引起。

那么什么是非线性失真?简单地说如果一个信号通过一个系统后,有新的频率产生,那么就是非线性失真。非线性失真可分为谐波失真和非谐波失真。

那么什么是谐波失真?简单地说如果一个信号通过一个系统后,新产生的频率为原信号频率的整数倍,也就是说原信号频率为基波,新产生的频率为其谐波,那么这部分失真就是谐波失真。

那么什么是非谐波失真?简单地说如果一个信号通过一个系统后,新产生的频率与原信号频率不具备整数倍关系,也就是说不具备谐波与基波的关系,那么这部分失真就是非谐波失真。

相关帖子

沙发
gujiamao12345| | 2017-10-19 16:30 | 只看该作者
那如何测量呢?

使用特权

评论回复
板凳
nethopper|  楼主 | 2019-1-20 17:48 | 只看该作者
本帖最后由 nethopper 于 2019-1-20 17:58 编辑

这里介绍与谐波失真相关的参数测量,包括THD、THD+N、SINAD、SNR、ENOB、NL、SFDR。其它的失真测量将另文描述。


二、THD、THD+N、SINAD、SNR、ENOB、NL、SFDR的定义

THD、THD+N、SINAD、SNR、ENOB的定义有不同的变种,这里只给出其中比较常见的定义。测量这些参数时,通常采用信号发生器向被测设备发出超低失真的单频正弦波,同时采集从被测设备返回来的信号,然后通过快速傅里叶变换(FFT)将测得的信号功率分解为基波功率、各次谐波失真功率和噪声功率三大部分,如果有直流分量存在,通常滤掉而不用于计算,最后按这些参数的定义公式进行计算。


1、总谐波失真THD(Total HarmonicDistortion)的定义

总谐波失真THD是描述放大器、数模/模数转换器、传感器、能换器、供电等设备和系统的常见参数之一。它通常定义为各谐波功率之和与基波功率的比值的开方,以百分比表示:


其中,Vi为第i次谐波的RMS幅度,V1为基波的RMS幅度,N为计算THD所用到的最高次谐波的次数。

如果以dB表示则:THDdB = 20log10(THD)。比如THD=0.0001%,则THDdB= -120 dB,总谐波失真只是对谐波失真的总体描述,它并不区分削顶失真、交越失真,也不区分各次谐波的相对比重。在描述一个系统的THD值时,还必须指明该THD值是在什么情况下测得的,包括测试信号(基波)的频率、计算所用到的最高次谐波的次数或计算的频率范围、测试信号的幅度等。


2、总谐波失真+噪声THD+NTotalHarmonic Distortion Plus Noise)的定义

总谐波失真+噪声THD+N通常定义为各谐波功率及噪声功率之和与信号总功率的比值的开方,以百分比表示:

其中,Vtotal为信号(包括基波、各次谐波和噪声)的总RMS幅度,V1为基波的RMS幅度。

如果以dB表示则:(THD+N)dB =20log10(THD+N)。比如THD+N= 0.0001%,则(THD+N)dB= -120 dB。在描述一个系统的THD+N值时,还必须指明该THD+N值是在什么情况下测得的,包括测试信号(基波)的频率、谐波和噪声计算的频率范围、信号的幅度、以及对噪声和失真是否按听感进行了加权(ABCITU-R468)等。


3、信纳比SINADSignalto Nosie and Distortion Ratio)的定义

信纳比SINAD通常定义为信号总功率与各次谐波功率及噪声功率之和的比值的开方,以dB表示为:

其中,Vtotal为信号(包括基波、各次谐波和噪声)的总RMS幅度,V1为基波的RMS幅度。


4、信噪比SNRSignalto Nosie Ratio)的定义

信噪比SNR通常定义为信号基波功率与噪声功率的比值的开方,以dB表示为:


其中,Vtotal为信号(包括基波、各次谐波和噪声)的总RMS幅度,Vi为第i次谐波的RMS幅度(包括基波),N为计算所用到的最高次谐波的次数。


5、有效位数ENOB(Effective Number of Bits)

有效位数ENOB可直接由SINAD按下式推出:ENOB= (SINAD-1.76 dB) / 6.02。注意此式是在满程情况下测试的。如果被测的ADCDAC的测试信号低于满程,则SINADENOB会偏小,可通过将上式算得的结果再加上20log10(满程幅度/信号幅度)/6.02来推得满程的ENOB


6、噪声电平NL(Noise Level)

噪声电平在这里定义为总的噪声的RMS幅度。


7、无寄生动态范围SFDR(Spurious Free Dynamic Range

无寄生动态范围SFDR定义为第一个谱峰与第二个谱峰的功率比的开方,用dB表示。注意:第二谱峰不一定与基波构成谐波关系。

上述的总谐波失真THD等参数的计算式不算复杂,采用数字信号分析的方法貌似很容易,但要测准却不像表面上看起来的那么容易,涉及到多个参数的选择以及为什么要这样选择的问题,一个参数不对,全盘皆错。这包括测试信号频率的选择、采样频率的选择、采样位数的选择、采样长度的选择、FFT点数的选择、窗函数的选择等。下面就THD失真测量中可能遇到的各种问题进行说明。

使用特权

评论回复
地板
nethopper|  楼主 | 2019-1-24 13:00 | 只看该作者
本帖最后由 nethopper 于 2019-3-1 23:48 编辑

三、如何避免或减小频谱泄漏

3.1 什么是频谱泄漏

要测准总谐波失真THD首先要解决FFT最常见又最令人头痛的频谱泄漏问题。对一个信号做快速傅里叶变换(FFT)就必然要对其在时域进行截断,然后在有限长度的数据上进行分析。FFT算法假定在所截取的数据之外的信号正好是所截取数据的周期延拓,也就是所截取数据的周期性重复。如果一个FFT数据段正好包含了被测信号的整数个周期,则经过周期延拓出来的信号将与被测信号的实际情况完全一致,这时得到的频谱将真实反映原信号的频谱。否则在周期延拓的边界处,信号将出现不连续的现象,这与被测信号的实际情况不完全一致,反映到频谱上,就会出现所谓的频谱泄漏现象,其结果是本来应该属于某个单频点的能量向该频点以外的频点扩散开来。在失真测量中,频谱泄漏会造成所测试的正弦信号的基波和谐波幅度不准确,噪音成分增大,测得的结果完全不准确。

下图是一个存在严重频谱泄漏的例子。[采样频率] = 48 kHz,[信号频率] = 1 kHz(由于软件生成的理想信号),[FFT点数] = 32768,[信号周期数] = 1000 / 48000 × 32768 = 682.6667,[采样位数] = 24,[窗函数] = 矩形窗,FFT数据段尾部无补零(因为采样点数为48000,大于FFT点数32768,所以不用补零)。由于FFT数据段中包含的[信号周期数]不为整数,所以不是整周期采样,频谱泄漏严重,从图中可看到各次谐波谱线完全被泄漏的频谱所淹没,测得的结果为:THD = 0.1664 % (-55.85 dB), THD+N = 14.2383% (-16.93 dB),SINAD = 16.93 dB,SNR = 16.84 dB,ENOB = 2.52 Bit,很明显这些测量结果对于一个24位完全理想的正弦波是完全错误的。


图1 非整周期采样+矩形窗(不加窗)导致严重频谱泄漏
3.2 频谱泄漏的解决方法

3.2.1 整周期采样或称为相干采样(Coherent Sampling)法

避免频率泄漏的方法是之一是采用所谓的整周期采样或称为相干采样(Coherent Sampling),就是要保证FFT数据段的采样时间正好是信号周期的整数倍,用公式表达为:[采样频率]/[信号频率]= [FFT点数]/ [信号周期数]。其中FFT点数取为2的N次方。为了避免重复采样,即避免在所采集到的各个信号周期中出现任何两个周期采集到同样一组数据的情况,这个[信号周期数]最好是除开2以外的质数。

下图是一个采用整周期采样的例子。[采样频率] = 48 kHz,[信号频率] = 1000.48828125 Hz(由于软件生成的理想信号),[FFT点数] = 32768,[信号周期数] =  1000.48828125 /48000 × 32768 = 683,[采样位数] = 24,[窗函数] = 矩形窗,FFT数据段尾部无补零(因为采样点数为48000,大于FFT点数32768,所以不用补零)。由于FFT数据段中包含的[信号周期数]为整数,属整周期采样,无频谱泄漏,测得的结果为:THD = 0.0000032 % (-149.80 dB), THD+N = 0.0000032 % (-150.00 dB),SINAD = 150.00 dB, SNR = 1000 dB (溢出,因理想正弦波噪声几乎为零),  ENOB = 24 Bit,这些测量结果反映了软件在24位整周期采样情况下所能测得的最理想的数据,所测得THD和THD+N远小于常用的HIFI音频设备的失真与噪声,说明这些参数选择可用于高保真音频设备的测量,它们从软件层面保证了这些测量的准确性。那么为什么完全理想的正弦波仍然能测到失真和噪声?其实这些残余的失真与噪声主要是量化噪声以及数值计算的残留误差造成的,这将在后面详述。


图2 整周期采样 + 矩形窗(不加窗)无频谱泄漏

3.2.2 加窗法

当无法实现整周期采样时,要减小频谱泄漏,就必须采取给截断后的数据加窗的方法。此法要求FFT数据段包含的信号周期数目不能过少,采样点数越多,包含的信号周期越多,周期延拓的边界不连续部分占所采集数据的比例越小,对频谱泄漏的抑制效果越好。

对于THD测量,应选取能最大限度地将信号能量集中于主谱线附近的,就是主瓣比较大的大头窗,推荐Kaiser 6~ Kaiser10。

关于数据截断、频谱泄漏、加窗的更多的说明可参考这个帖子:信号截断、能量泄漏及窗函数

下图是在图1的基础上,将矩形窗改为能极大压制频谱泄漏的Kaiser 8窗,其它参数完全不变测得的,其结果为:THD = 0.0000055 % (-145.23 dB), THD+N = 0.0000046% (-146.76 dB),SINAD = 146.76 dB, SNR = 1000 dB (溢出,因理想正弦波噪声几乎为零), ENOB = 24 Bit,这些测量结果反映了软件在24位非整周期采样且加窗分析的情况下所能测得的最理想的数据,所测得THD和THD+N远小于常用的高保真HIFI音频设备的失真与噪声,说明这些参数选择可用于高保真音频设备的测量,它们从软件层面保证了这些测量的准确性。同样地,为什么完全理想的正弦波仍然能测到失真和噪声?这些残余的失真与噪音主要是量化噪声以及数值计算的误差造成的,这将在后面详述。


图3 非整周期采样 + Kaiser 8窗可极大减小频谱泄漏

仔细观察图3的1kHz的主谱线比图2的略低也略宽,这是因为图3虽然采用了加窗的办法来抑制频谱泄漏,但它只是将泄漏的能量聚集在主谱线附近的多条谱线上以避免向更远的地方泄漏,却无法将其汇聚到一条单一的谱线上,不过这已经足以通过软件算法来实现精准计算了。

3.2.3 选择整周期采样还是选择采集多个信号周期再加窗?

正如前面的图2和图3两个例子,如果条件允许,两种方法都可以用,结果差不多。如果实际测量中存在某些限制,则需要做出正确选择。比如说,如果采样点数有限,无法在一个FFT段内采集较多的信号周期数,则应选择整周期采样,因为即使只采集一个整周期,也能正常工作。而当采集的周期数目较少时,加窗法的误差会比较大。

如果测量仪器的ADC和DAC不共用同一采样时钟,则应采用加窗法来测量,因为两个时钟的不同步抖晃(Jitter)同样会造成一定程度的频谱泄漏。那么满足整周期采样条件时,能将矩形窗(即:不加窗)改为比如Kaiser 6窗吗?当然可以,测得的THD和THD+N等参数不会有太大的区别,只是这时加窗反而会造成轻微的频谱泄漏,信号能量不会集中于一条单一的谱线上,而是集中到主谱线周围相邻的几条谱线上,当然这仍然可通过软件来实现精准测量


使用特权

评论回复
5
nethopper|  楼主 | 2019-1-26 22:11 | 只看该作者
本帖最后由 nethopper 于 2019-2-28 22:18 编辑

四、如何避免将量化噪声误测为谐波失真
4.1 避免采样频率与信号频率之比为整数或可相约

ADC/DAC设备采集/输出正弦波过程中产生的量化噪声容易被误认为是在0~1/2采样频率之间均匀分布的白噪声。其实不一定,量化噪声的频谱与信号频率可能产生严重相关。当采样频率与信号频率之比为整数时,量化噪声会被周期化而会汇聚到信号的谐波频率上,造成测得的THD和SFDR严重超高。前面的图3显示的就是24位量化噪声聚集到各谐波频率上的情况,而其它频点处几乎看不到任何噪音。这时测得的THD就会虚假地偏高。图3的采样频率与信号频率之比为48000/1000=48(整数)。如果将信号频率改为997,则采样频率与信号频率之比变为48000/997=48.14(非整数且48000与997不可相约),这就大大减小了量化噪声与信号频率之间的相关,很大程度上白化了量化噪音,参考下图。比较图3和图4可见,图4中的底噪抬高了,但谐波失真大幅下降,THD从图3中的0.0000055 % (-145.23 dB)降低到图4中的0.0000033 % (-149.70 dB),THD+N则从图3中的0.0000046% (-146.76 dB)降低到图4中的0.0000028% (-151.09 dB)。需要说明的是,这里的THD+N竟然比THD还小,其原因可从前述的公式解释,THD反映的是[谐波功率]/ [基波功率]之比的开方,而THD+N是[谐波功率+噪声功率]/[基波功率+谐波功率+噪声功率]之比的开方,当噪声功率极小时(不妨假设为0),按公式THD+N是有可能大于THD的,不过这种特殊情况在实际测量中由于噪声的存在而几乎不会出现。


图4 采样频率与信号频率之比不为整数(48000/997=48.14)以白化量化噪声(24位)

如果说24位量化噪声与信号频率的相关情形还不算太严重,在实际测量中甚至可以忽略不计,那么当采样位数为16位或8位时,情况就愈加严重了。

下面两图是采样位数为16位的情形,前一个图的采样频率与信号频率之比为48000/1000=48,后一个图为48000/997=48.14。从前者到后者,THD从0.0013751 % (-97.23 dB)降低到0.0009004 % (-100.91 dB),THD+N则从0.0013751 % (-97.23 dB)略升到0.0014608 % (-96.71 dB)。


图5 采样频率与信号频率之比为整数(48k/1k=48)时量化噪声变为谐波失真(16位)


图6 采样频率与信号频率之比不为整数(48000/997=48.14)以白化量化噪声(16位)

下面两图是采样位数为8位的情形,前一个图的采样频率与信号频率之比为48000/1000=48,后一个图为48000/997=48.14。从前者到后者,THD从0.2767016 % (-51.16 dB)降低到0.0910077 % (-60.82 dB),THD+N则从0.2767005 % (-51.16 dB)略升到0.2918477 % (-50.70 dB)。


图7 采样频率与信号频率之比为整数(48k/1k=48)时量化噪声变为谐波失真(8位)

图8 采样频率与信号频率之比不为整数(48000/997=48.14)以白化量化噪声(8位)

可见当采样位数低的时候,测量THD时更应该避开采样频率为信号频率整数倍或两者可相约(将在后面介绍)的情况,以避免将量化噪音误为谐波失真。这一点在实际测量中,当电路的本底噪音很低的时候尤其重要。当电路的本底噪音高于±0.5 bit的采样位数时,由于抖动(Dithering)效应,可大大降低量化噪音与输入信号相关性,对量化噪声起到白化作用。

4.2 为测试信号添加抖动(Dithering)

当采样频率与信号频率之比为整数或可相约时,尤其当测试信号幅度较小因而量化噪声所占比重相对较高时,可以在单频正弦测试信号上叠加±0.5~1bit的白噪声,来尽量白化量化噪声,以降低THD和SFDR。下图是一个采样位数为8的理想正弦波,与图7一样,采样频率与信号频率之比为整数48000/1000=48,不同的是下图中采用软件多音合成方式在理想正弦波的基础上添加了±1 bit的白噪声。与图7相比,THD从0.2767016 % (-51.16 dB)大幅降低到0.0753697 % (-62.46 dB),THD+N则从0.2767005 % (-51.16 dB)升到0.4113034 % (-47.72 dB)。


图9 采样频率与信号频率之比为整数(48k/1k=48)时添加抖动以白化量化噪声(8位)

使用特权

评论回复
6
nethopper|  楼主 | 2019-2-1 15:14 | 只看该作者
本帖最后由 nethopper 于 2019-2-1 15:18 编辑

五、软件自环验证和硬件自环验证

测量THD等参数时,首先需要对软件的各种参数设置的正确性进行验证,以了解在这些设置下能测得的最低失真和噪声,这可通过测量一个理想的正弦波信号来实现,正如前几节的例子所见,由于量化噪声和数值计算残余误差的存在,即使对于理想的正弦波,在参数设置正确的情况下,也会测到极小的失真和噪声。

前面采用的测试信号是从Multi-Instrument软件的信号发生器产生的,它在信号发生器面板上设置“iA=oA, iB=oB”来产生完全理想的正弦波,并从软件内部直接将其回送到示波器和频谱分析仪中进行分析,这称为软件自环(Software Loopback)。FFT最臭名昭著的特点就是容易产生伪像(artefact),软件自环是验证所设置的各项测量参数的正确性以及采用这些参数设置能达到的准确度的重要手段。理想的测试信号也可是由信号发生器生成的波形文件(*.WAV)。

在实际测量时,还要求所采用的测量仪器硬件的各项指标必须明显高于被测设备的相应指标才能保证测得的数据是准确的、可靠的。测量仪器本身残留的失真与噪音可通过硬件自环(Hardware Loopback)方式来测试,就是通过将信号发生器硬件(DAC)的输出直接接到信号采集器硬件(ADC)的输入。硬件自环是验证所选用的测量仪器硬件的各项指标是否合符要求的重要手段。


图10 软件自环与硬件自环


下面是24位的RTX6001音频分析仪硬件自环的测试结果。图11、12、13分别为整周期采样(矩形窗,采样频率/信号频率不为整数)、非整周期采样(Kaiser6窗,采样频率/信号频率为整数)、非整周期采样(Kaiser6窗,采样频率/信号频率不为整数)。由图可见,这三种情况下测得的THD和THD+N其实差别不大,大约都在0.00010%(-120dB)和0.00028%(-111dB)附近,这是因为实际硬件中的噪声基本上是白色的且超过了1bit,量化噪音被白化且与硬件本身的噪声相比变得不重要了。作为对比,在图2、3、4的软件自环的测试结果中,THD和THD+N大约都在0.000003%(-150dB)左右,大大优于硬件自环,保证了测量的准确性。


图11  RTX6001音频分析仪硬件自环测试(整周期采样,矩形窗,采样频率/信号频率不为整数)

图12  RTX6001音频分析仪硬件自环测试(非整周期采样,Kaiser 6窗,采样频率/信号频率为整数)


图13  RTX6001音频分析仪硬件自环测试(非整周期采样,Kaiser 6窗,采样频率/信号频率不为整数)


下图则是对图12的测试进行A加权后测得的结果。可见通过A加权,会对与噪音有关的指标起到明显的美化作用,这包括THD+N、SINAD、SNR、ENOB等。从图中噪声的底噪线可明显看到A加权的影子。


图14  RTX6001音频分析仪硬件自环测试(非整周期采样,Kaiser 6窗,采样频率/信号频率为整数,A加权)


使用特权

评论回复
7
wf.yang| | 2019-2-17 20:31 | 只看该作者
太全面了。由衷感谢,不得不赞!!!

使用特权

评论回复
8
nethopper|  楼主 | 2019-2-18 16:12 | 只看该作者
本帖最后由 nethopper 于 2019-2-18 16:22 编辑

按上面测得的指标可见,RTX6001已属音频分析仪硬件之上乘之作,尤其可贵的是它可以在多个量程范围(±141.4mV、±447.2mV、±1.414V、±4.472V、±14.14V、±44.72V、±141.4V)内达到这个水准。如果硬件的残余失真和噪音指标继续提高,高到什么程度,24位量化噪声和数值计算误差带来的残余失真和噪声才会开始影响测量精度呢?下图显示的是用软件的多音合成功能产生的一个1kHz和3kHz按幅度比1:0.0000001混合而成24位失真仿真测试信号,通过软件测得其THD和THD+N皆为0.00001% (-140dB),与理论计算完全吻合,几乎未受量化噪声和数值计算的残余误差的影响,而这时的3kHz谐波失真幅度只有大约1.7bit。目前市面上几乎没有硬件自环测试的失真度低于-140dB的。

图15  失真仿真测试(测试信号1kHz + 3kHz,幅度混合比1:0.0000001)


专业音频分析仪价格昂贵,而现今声卡的采样频率可达768kHz,带宽可达384kHz,THD和THD+N可低于0.001%,价格因其巨额销量而远低于专业音频分析仪以及ADC/DAC采集卡,因此声卡已成为音频分析仪、电源谐波分析仪等在音频或略超音频范围内工作的专业仪器的价廉物美的替代品。声卡的缺点在于,允许的输入电压范围很小,最大也只有几伏左右。因此测量音频功放的输出时,需要先对信号进行衰减,最简单的方法是用两个电阻串联分压。声卡的另一个缺点是一般声卡都没有提供电压校准,需自己做。不过THD等测试为相对值测试,无需做电压校准。另外测量时需要注意声卡的输入阻抗是否足够。下面是几种常见声卡的自环测试结果。


(1) EMU-Tracker Pre
THD: 0.000351% (-109.1 dB)
THD+N: 0.001424% (-96.9 dB)


2. EMU0204
THD: 0.000398% (-108.0 dB)
THD+N: 0.000921% (-100.7 dB)



3. Focusrite Scarlett Solo
THD: 0.0009% (-100.54 dB)
THD+N: 0.0029% (-90.86 dB)  


4. ASUS Xonar Essence STX (网友测的)
THD: 0.00063% (-103.94 dB)
THD+N: 0.00073% (-102.71 dB)  


5. Prism Sound Lyra(网友测的)
THD: 0.00037% (-108.5 dB)
THD+N: 0.000456% (-106.7 dB)  


(下节预告:谐波失真及噪声的残余波形分析)


使用特权

评论回复
9
nethopper|  楼主 | 2019-2-18 17:04 | 只看该作者
wf.yang 发表于 2019-2-17 20:31
太全面了。由衷感谢,不得不赞!!!

谢谢鼓励!

使用特权

评论回复
10
nethopper|  楼主 | 2019-2-28 22:45 | 只看该作者
本帖最后由 nethopper 于 2019-2-28 23:01 编辑

(本段补充在第4.1节尾部)
前面只列举了采样频率与信号频率之比为整数倍时量化噪声的能量全部聚集到谐波频率处的情形,实际上它只是下面更通用的表述中的一个特例,即如果整数采样频率fs与整数信号频率f之间存在一个大于1的最大公约数fL,则量化噪声的能量将全部汇聚到fL及其谐波频率上。而且,当采样频率fs与信号频率f之比为偶数时,量化噪声仅含奇次谐波;否则量化噪声含奇次和偶次谐波。对于fs与f不为整数的情况,可按比例转化为整数来类推。

在前面的fs=48000Hz,f=1000Hz例子中,fs/f=48000/1000=48/1,即:fL=1000Hz,因此量化噪声的能量全部汇聚到1000Hz及其谐波上,且因为fs/f=48000/1000=48为偶数,因此仅含奇次谐波,这由前面的相关图片可以看出。

而在前面的fs=48000Hz,f=997Hz例子中,由于fs与f互质而不可约,即:不存在大于1的最大公约数,因此量化噪声的能量在频率轴上基本上是均匀分布的,不会产生完全向某些频率汇聚的现象。

下图给出一个当采样频率fs与信号频率f之比为奇数时,量化噪声含奇次和偶次谐波的例子。此例子中,fs=44100Hz,f=100Hz,fs/f=44100/100=441(奇数),因此量化噪声的能量全部汇聚到100Hz及其奇次和偶次谐波上,这由下图可以看出。


图8-1  采样频率与信号频率之比为奇数(44100/100=441)时,量化噪声能量向信号的奇次和偶次谐波汇聚。

下图给出一个采样频率fs与信号频率f可以相约的例子,fs=44100Hz,f=250Hz,fs/f=44100/250=882/5,即:fL=50Hz,因此量化噪声的能量全部汇聚到50Hz及其谐波上,这由下图可以看出。注意:量化噪声频率50Hz的部分谐波频率与测试信号频率250Hz及其谐波重合。也就是说有部分量化噪声能量会被测量为谐波失真。

图8-2  采样频率fs=44100Hz,信号频率f=250Hz,最大公约数:fL=50Hz,量化噪声能量向50Hz及其谐波汇聚

可见当采样频率与信号频率之间存在一个大于1的最大公约数时,量化噪声也会部分或全部汇聚到信号的谐波频率上,从而是造成THD虚高。最大公约数越大,这种情况越严重,极限情况就是采样频率与信号频率之比为整数,最大公约数等于信号频率本身。最大公约数越小,这种情况越轻微,极限情况就是采样频率与信号频率之间不可约(互质),最大公约数等于1。


使用特权

评论回复
11
nethopper|  楼主 | 2019-3-5 23:33 | 只看该作者
本帖最后由 nethopper 于 2019-3-5 23:38 编辑

六、谐波失真及噪声的残余波形


不同电路结构和元件构成的放大器有不同的谐波失真产生机理,在时域呈现出不同的波形特征,比如削顶失真、交越失真等。当谐波失真非常大的时候,直接从时域波形就能分辨出这些特征。但在多数情况下,放大器的谐波失真非常小,凭肉眼观察很困难。常用的解决办法是用陷波器将基波滤掉,再将剩余的波形(常称为失真残余)与原信号在时间轴上对齐后对比,以协助放大器的调试与优化。传统上,这个功能是采用模拟陷波器实现的。然而,模拟陷波器将不可避免的引入自身的失真与噪声,而且模拟滤波器由于其因果性无法实现真正的线性相位。这些缺点可通过数字滤波器来克服。下面介绍两种采用数字信号处理的方法来实现此功能。


6.1 FIR陷波法


为了避免滤波后剩余的波形产生失真,必须采用具有线性相位特征的FIR数字滤波器。最常见的线性相位FIR滤波器是阶数为偶数、单位冲激响应对称的FIR滤波器。一个N阶FIR滤波会引入N/2/[采样频率]的延时,因此需要对此延迟进行补偿才能与原始信号的波形在时间上对齐。在下面的几个例子中,基波为1kHz的测试信号被同时送入输入通道A和B,其中送入通道B的信号被一个500~1500Hz、1022阶、加Kaiser6窗的FIR带阻滤波器滤波,然后去除FIR时延后与通道A的原始信号比较。此FIR带阻滤波器可将基波衰减179分贝以上而几乎不会对其它谐波产生任何影响,这充分体现了数字滤波器的优越性。下面的例子中,为了观察和叙述方便,仍然采用了失真较大的情况作为例子。


6.1.1  谐波失真中仅含偶次谐波的例子


下图是谐波中仅含偶次谐波的例子,信号为Multi-Instrument软件的信号发生器的多音合成功能产生的仿真信号,1kHz与2kHz的幅度比为1:0.1,正弦初始相位分别为0°和-90° (或者余弦初始相位为0°和0°)。图中青色为原始波形,黄色为通过FIR带阻滤波后的谐波失真残余,二者之间的相位关系能够从图中清楚辨识。由图可见,对于此信号,无论基波处于波峰还是波谷,偶次谐波都处于波峰上,因此叠加后造成原基波的波峰被增强而波谷被削弱,形成上下不对称的波形。这类失真波形常见于电子管单端甲类功放,其特点是波形上半部与下半部分不对称,一半尖顶,一半扁平顶。



图19-1   FIR陷波法测谐波残余波形---谐波失真中仅含二次谐波的例子 (仿真)

系统的输入与输出的传递特性可由李萨如图直观显示,下图是上述信号的李萨如图。输入为理想正弦波,输出则增添了其二次谐波失真。


图19-2   输入输出的李萨如图---谐波失真中仅含二次谐波的例子 (仿真)

由上图可见,当信号含有偶次谐波时,其输入输出传递曲线相对于过零点是非对称的。



6.1.2  谐波失真中仅含奇次谐波的例子


下图是谐波中仅含奇次谐波的例子,信号为Multi-Instrument软件的信号发生器的多音合成功能产生的仿真信号,1kHz与3kHz的幅度比为1:0.1,正弦初始相位分别为0和0°(或者余弦初始相位为0°和180°)。图中青色为原始波形,黄色为通过FIR带阻滤波后的谐波失真残余,二者之间的相位关系能够从图中清楚辨识。由图可见,对于此信号,无论基波处于波峰还是波谷,奇次谐波都处于与其相反的峰值上,因此叠加后造成原基波的波峰波谷被对称地削弱,最终波形仍然上下对称。这类失真波形有时见于电子管推挽甲类功放,其特点是波形上半部与下半部分对称,都是扁平顶,或称软削顶。



图20-1   FIR陷波法测谐波残余波形---谐波失真中仅含三次谐波的例子 (仿真)

系统的输入与输出的传递特性可由李萨如图直观显示,下图是上述信号的李萨如图。输入为理想正弦波,输出则增添了其三次谐波失真。


图20-2   输入输出的李萨如图---谐波失真中仅含三次谐波的例子 (仿真)

由上图可见,当信号只含有奇次谐波时,其输入输出传递曲线相对于过零点是完全对称的。

6.1.3  交越失真

交越失真常见于乙类或甲乙类功放,其幅度不随信号的减小而减小,且含有较多的高次谐波,因此对听感影响严重。下图是一个交越失真的例子,它同时含有奇次和偶次谐波,奇次谐波的比重大很多。信号为Multi-Instrument软件的信号发生器的多音合成功能产生的仿真信号(原型为实测信号,这里通过合成而得),含20个频率分量如下:


Multi-Instrument信号发生器的多音合成功能采用的是正弦叠加法。若采用余弦叠加法,其相对相位可由正弦叠加法的相对相位加上(N-1)×90°推得。
下图中青色为原始波形,黄色为通过FIR带阻滤波后的谐波失真残余,二者之间的相位关系能够从图中清楚辨识。由图可见,信号在零点附近的失真最大。


图21-1   FIR陷波法测谐波残余波形---交越失真例子(仿真,原型为实测信号,这里通过合成而得

系统的输入与输出的传递特性可由李萨如图直观显示,下图是上述信号的李萨如图。输入为理想正弦波,输出则增添了上述交越失真。


图21-2   输入输出的李萨如图---交越失真例子(仿真,原型为实测信号,这里通过合成而得

6.1.4  削顶失真

削顶失真是由于输入信号幅度过大造成的。下图为实测的一个削顶失真例子,奇次谐波占绝对优势。青色为原始波形,黄色为通过FIR带阻滤波后的谐波失真残余,二者之间的相位关系能够从图中清楚辨识。

图22-1   FIR陷波法测谐波残余波形---削顶失真例子(实测)

系统的输入与输出的传递特性可由李萨如图直观显示,下图是上述信号的李萨如图。输入为理想正弦波,输出则为含上述削顶失真的正弦波。


图22-2   输入输出的李萨如图---削顶失真例子(实测)

应当指出的是,只有理想的无**(静态)系统的输入输出的李萨如图才具有一对一的对应关系。这个理想的非线性系统的特性与频率无关或没有时间上的**能力,因而具有无穷大的带宽。在这样的理想系统中,瞬时输出y只由系统的瞬时输入x决定。而实际系统都有一定带宽,因此系统的输入输出的李萨如图,不一定具有一一对应的关系。这个跟测试信号的频率成分有关,越接近单频信号,越接近一对一的关系。

使用特权

评论回复
12
nethopper|  楼主 | 2019-3-21 17:06 | 只看该作者
6.2 分解重构法


由于THD测试信号为周期信号,可通过FFT将该信号分解为多个不同幅度和相位的正弦信号的叠加。然后去掉其中的基波分量,将剩下的各次谐波叠加在一起,就可重构谐波失真的残余波形。与前面介绍的FIR陷波法不同,用分解重构法得到的谐波失真残余波形不含噪声,而且谐波组合可任意控制。下图采用了分解重构法来分析前面图22-1的削顶失真,青色为原始波形,黄色为用分解重构法得到的谐波失真残余,它与FIR陷波法得到的波形几乎完全一样,但频谱图上却看不到任何噪声。




图23-1  分解重构法测谐波残余波形---削顶失真例子(实测)

下图是原削顶失真信号的信号分解表:


图23-2 信号分解表---削顶失真例子(实测)

在Multi-Instrument中,可点击DDP查看器配置面板上的DDP数组查看器按钮,然后选择“谐波频率、有效值、相位”报告,可得到原始信号的分解信息。然后右击该报告并选择“DDP数组查看器输出多音合成配置文件”以输出一个多音合成配置文件。该文件可导入信号发生器的多音合成配置对话框,并去掉基波分量后,从信号发生器输出谐波失真残余波形。


使用特权

评论回复
13
nethopper|  楼主 | 2019-3-21 18:23 | 只看该作者
本帖最后由 nethopper 于 2019-3-21 18:27 编辑

七、THD和THD+N随频率或幅度(功率)变化曲线


利用前述的THD和THD+N的测试方法,将测试信号采用频率步进的方法进行扫频,即可得到THD和THD+N随频率变化曲线。如果采用幅度步进的方法进行扫幅,即可得到THD和THD+N随幅度变化曲线。若指定了负载电阻,则THD和THD+N随幅度变化曲线可转变为THD和THD+N随功率变化曲线。这些功能在Multi-Instrument软件中可通设备检测计划来实现。


下图为RTX6001自环测得的THD+N随频率变化曲线。由图可见,RTX6001在20Hz~20kHz范围内的THD+N基本处于0.0003%上下。


图24-1  RTX6001音频分析仪硬件自环测试之THD+N随频率变化曲线

下图为RTX6001自环测得的THD随输出幅度dBFS变化曲线。由图可见,RTX6001在-130dBFS~0dBFS 的输出幅度范围内的自环THD先是从50%左右下降,在-13dBFS左右达到0.0001%,然后基本保持不变直到-3dBFS左右开始回升,在输出幅度的最高值0dBFS时,THD上升到0.0004%。


图24-2  RTX6001音频分析仪硬件自环测试之THD随输出幅度dBFS变化曲线

使用特权

评论回复
14
nethopper|  楼主 | 2019-3-30 00:58 | 只看该作者
八、谐波失真频谱图常见的识图误区


下图是一个常见的谐波失真频谱图。图中的信号为频率1kHz幅度1V的低失真正弦波,采样频率为48kHz,FFT点数为65536,由于采样长度为96000点,大于FFT点数,因此采样数据不补零,超出FFT点数的多余部分丢弃。以下为了阐述方便,仅讨论最常见的不补零的情况。Multi-Instrument能自动对补零情况下的各种幅度测量做出补偿,仍然能精准测量谐波失真与噪声的绝对幅度。需要注意的是补零虽然可提高FFT的视在分辨率(=[采样频率]/[FFT点数]),但并不提高测量的实际频率分辨率(= [采样频率]/ [采样点数])。



图25 常见的谐波失真频谱图

8.1 识图误区之一:底噪电平

图25中的“视在底噪电平”(Apparent Noise Floor)很容易被当作“实际底噪电平”,而事实上这个“视在底噪电平”代表的是各FFT BIN内所包含的噪声能量,它随FFT的频率分辨率的变化而变化。在采样频率相同的情况下,FFT点数越大,FFT BIN的宽度(=[采样频率]/[FFT点数])越小,各FFT BIN中所含有的能量越少,“视在底噪电平”越低。定量地说,对于能量在频率轴上均匀分布的白噪声,FFT点数增加一倍,FFT BIN宽度减小至原来的一半,能量也就减半,“视在底噪电平”下降3dB。因此在比较不同的谐波失真频谱图的视在底噪电平时,必须指明FFT的频率分辨率,只谈底噪电平而不提FFT频率分辨率是没有意义的。同样地,说某次谐波高于底噪电平多少多少,却不提及FFT频率分辨率也没有意义。正因为如此,Multi-Instrument将FFT的频率分辨率清楚显示于频谱分析仪窗口左下方。下图显示的是在48kHz采样频率下,FFT点数分别为:4096、65536和1048576时,在同一设备上测得的谐波失真频谱图上的底噪电平的变化。



图26 不同FFT频率分辨率的谐波失真频谱图对比

从上图可得如下重要结论(在采样频率固定且数据不补零的情况下):


(1) “视在底噪电平”随FFT点数增加而下降,FFT点数增加一倍,FFT频率分辨率提高一倍,“视在底噪电平”下降3dB
在上图中,三者之间的FFT点数比为:1:16:256,FFT BIN的宽度比为:256:16:1,FFT BIN所含宽带噪声的能量比为:256:16:1,因此“视在底噪电平”依次降低约12dB。就是说最高底噪电平(FFT点数=4096)与最低底噪电平(FFT点数=1048576)相差约24dB。这可从图中看出。


(2) 与宽带噪声不同,单频信号的幅度不随FFT点数变化而变化。因为无论FFT BIN的宽度如何变化,单频信号的能量将只落在某一个FFT BIN中而不会被分散(注意:频谱泄漏也会造成单频信号的能量向附近的FFT BIN泄漏,但这是与此不相关的另一现象,不在此讨论。在此假定单频信号正好位于FFT BIN的中心频率处,因而无频谱泄漏)。这可从图中的基波和各次谐波的幅度在三种情况下没有变化可以看出。

(3) 由于(1)和(2)可知,增加FFT点数可提高FFT频率分辨率,降低“视在底噪电平”,却不影响基波和各次谐波以及其它单频信号的幅度,因此可用此法将原本淹没于底噪中的谐波和其它单频信号显露出来。这可从图中左边的50Hz(工频干扰)及其谐波以及右边的1kHz的高次谐波随FFT点数增加而逐步从底噪中突显出来可以看出。因此在音频THD测试中常采用较大的FFT点数,以便于观察幅度很小的谐波失真。

(4) 总噪声电平(Total Noise Level)不随FFT点数变化而变化。 正是由于这个原因,在Multi-Instrument中用虚线显示了此总噪声电平,其长度代表了其计算频带范围。可右击频谱分析仪中任意一点,然后选择[频谱分析仪处理]来设置谐波失真和噪声的计算范围,也可按谐波失真的阶数来指定其计算范围,如下图所示。


图27 谐波失真及噪声的计算带宽和阶次设置

如果只分析噪声电平,可采用功率谱密度图来去除FFT频率分辨率对“视在底噪电平”的影响。它是将频谱图中的各FFT BIN中的能量按FFT BIN的宽度归一化后得到的。在这种图中的噪声幅度代表的是单位Hz的能量,单位为dBV/Hz、dBu/Hz、dB/Hz、dBFS/Hz等。在Multi-Instrument中,可右击频谱分析仪中任意一点,然后选择[频谱分析仪Y轴刻度]并勾选“单位Hz能量”(Energy Per Hz)来实现此功能,如下图所示。




图28 设置功率谱密度显示模式的“单位Hz能量”(Energy Per Hz)选项

不过上述功率谱密度的概念不适用于周期信号,如果作功率谱密度图,则每个单频信号(基波和谐波等)的能量将无意义地被FFT BIN的宽度归一化,造成归一化图中单频信号的幅度随频率分辨率变化而变化,如下图所示。在三种不同的FFT频率分辨率下,虽然底噪水平没有变化,但基波和谐波以及其他单频信号包括“总噪声电平”却变化了。因此功率谱密度图宜在只有宽带噪声的情况下使用。


29 不同FFT频率分辨率的谐波失真功率谱密度函数图对比




使用特权

评论回复
15
nethopper|  楼主 | 2019-4-12 00:01 | 只看该作者
8.2 识图误区之二:基波和谐波等单频信号的幅度


基波和谐波等单频信号的幅度,只有在满足整周期采样情况下,才能从谐波失真频谱图准确地反映出来。否则由于不可避免地存在频谱泄漏问题,在图上显示的单频信号幅度将会比实际的低。以前面的图25为例,RMS值为0.707V的低失真正弦信号的基波幅度应该在-3dBV左右,可是图中的曲线展现出来的峰值只有-8.85dBV,这很容易被误以为是测错了,其实它只是如实反映了由于频谱泄漏基波能量并不集中于一条单一的谱线这一事实,且并不影响失真度THD等参数的计算,因为软件能够对各种单频信号的能量进行再提取。比如图25中的DDP查看器所用的DDP:f1RMS_A(EU)就正确显示了基波的幅度为-3.01dBV。如果希望频谱图中显示出来的基波和谐波幅度即使在频率泄漏的情况下也能反映实际值,可右击频谱分析仪中任意一点,然后选择[频谱分析仪图表选项]并勾选“标记谱峰”(Mark Peaks),如下图所示。


图30 “标记谱峰”(Mark Peaks)选项


图31 通过“标记谱峰”(Mark Peaks)选项来显示正确的谱峰高度

使用特权

评论回复
16
nethopper|  楼主 | 2019-4-25 00:31 | 只看该作者
本帖最后由 nethopper 于 2019-4-25 00:40 编辑

九、输出幅度随输入幅度变化曲线

输出幅度随输入幅度变化曲线可从时域直观反映系统的非线性度,用于观察限幅器或压缩器以及ADC和DAC在低幅度时的非线性情况非常方便。测试方法是输入某一频率的正弦波,然后步进扫幅,从与被测设备底噪水平相当的最低幅度到最高幅度,同时测量输出幅度,并作图。此法与前述的用正弦波测量的李萨茹图类似,但在某个幅度上的激励能量要集中得多。注意,不宜用三角波来做这个测试,原因是三角波含基波和无穷高次谐波,测得的结果会受到系统的线性失真影响,无法得到单纯的非线性失真。关于线性失真可参考此贴:线性失真之幅频响应测试

下图是通过RTX6001自环测试得到的DAC输出幅度dBV随输入幅度dBFS变化曲线。由图可见,在输入幅度-115dBFS~0dBFS范围内,RTX6001的DAC的输出基本上是线性的。但从-130dBFS到-115dBFS则呈现出明显的非线性。这很大程度上是因为这里测量的输出幅度dBV是从时域测量的(DDP:RMS_A(EU)),它代表的是0~1/2采样频率之间的信号总能量。因此当输入的dBFS幅度很小的时候,测得的输出dBV中含相对比例很大的宽带噪声。


图32  RTX6001的DAC输出幅度dBV随输入dBFS变化曲线(宽带测量法)

如果利用FFT从频域来提取位于输入信号频率处的幅度dBV(DDP:f1RMS_A(EU)),就可以用很窄的频带来滤掉几乎所有的宽带噪声,如下图所示。测得的结果显示,在输入幅度-130dBFS~0dBFS范围内,RTX6001的DAC输出几乎完全是线性的。

图33  RTX6001的DAC输出幅度dBV随输入dBFS变化曲线(窄带选频测量法)

事实上用上述的输出随输入幅度变化曲线比较难以观察到细微的非线性,观察更细微的非线性需要对数据进行后处理。可先对中间线性区域部分的采样点进行直线拟合,然后将所有的采样点偏离该直线的误差与输入信号的幅度一起作图。这样就非常容易观察到细微的非线性随输入信号幅度的分布。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:免费下载信号采集,处理,分析,产生软件Multi-Instrument, 支持VT虚拟示波器,频谱分析仪,信号发生器,数据记录仪,振动分析仪,RTA,NI DAQ,声卡,全球首款全集成USB24位加速度传感器!

18

主题

1660

帖子

20

粉丝