主要内容

分析有缺陷的简单ADC

这个例子展示了如何使用零阶保持块作为采样器实现一个基本的ADC。这个简单的ADC突出了模数转换器中引入的一些典型缺陷,如孔径抖动、非线性、量化和饱和。这个例子展示了如何使用来自混合信号块集™的频谱分析仪块和ADC交流测量块来测量这种损害的影响。为了更好地接近真实的性能,您可以单独启用模型中的缺陷。

模型=“MSADCImpairments”;open_system(模型)

要观察理想ADC的行为,可以使用开关绕过缺陷。设置正弦波源生成两个音调作为输入信号。

set_param([模型/孔径抖动的),“西南”' 1 ');set_param([模型' /非线性'),“西南”' 0 ');set_param([模型“/量化和饱和”),“西南”' 0 ');set_param([模型/正弦波的),“频率”“2 *π* (47 53)* 1 e6的);

模拟模型,观察ADC预期的清洁输出频谱。

sim(模型);

孔径抖动的影响

把第一个开关放在向下的位置。可变延迟块按其上的量逐个采样地延迟信号道明输入。噪声源块生成一个均匀随机变量,该随机变量在抖动噪声谱块到达前经过对其进行低通滤波道明输入到可变延迟。用形状均匀的噪声分布来表示抖动。注意,在这个模型中,ADC的时钟在理想的零阶保持块中指定,它等于1/Fs,其中Fs是在模型初始化回调中定义的MATLAB®变量,等于1.024GHz。

set_param([模型/孔径抖动的),“西南”' 0 ');

正如预期的那样,由于抖动的存在,频谱会下降。

sim(模型);

非线性效应

把第二个开关调到上位。这就实现了ADC的非线性。缩放双曲正切函数具有非线性。它的比例因子,α,决定了tanh应用于信号的非线性量。默认情况下,α0.01

set_param([模型' /非线性'),“西南”' 1 ');

由于产生高次谐波的非线性,频谱下降。

sim(模型);

量化和饱和效应

将第三个开关设置到上位,使ADC量化和硬饱和。

set_param([模型“/量化和饱和”),“西南”' 1 ');

由于量化效应,频谱下降。从频谱中可以看出,噪声下限提高了。

sim(模型);

ADC交流测量

使用混合信号块集™中的ADC AC测量块来测量ADC的噪声性能,并计算有效位数(ENOB)。

使用单正弦音作为ADC的输入来测量其他指标。

bdclose(模型);模型=“MSADCImpairments_AC”;open_system(模型);

Ftest = 33/round(2*pi*2^8)*Fs;set_param([模型/正弦波的),“频率”2 *π*英国《金融时报》的);Scopecfg = get_param([model .' /光谱范围的),“ScopeConfiguration”);scopecfg.DistortionMeasurements.Algorithm =“谐”;scopecfg。FFTLength =“512”;scopecfg。WindowLength =“512”;sim(模型);

来自混合信号块集™的孔径抖动测量块测量信号上引入的平均抖动约等于1ps.添加延迟

此外,使用频谱分析仪测量:

  • 输出三阶截点(OIP3)

  • 信噪比(SNR)

  • 总谐波失真(THD)

增加因子α增加ADC的非线性,使非线性的影响在噪声层之上更加明显。这只是为了演示。

Alpha = 0.8;

使用一个双音调测试信号作为ADC的互调测量输入。

set_param([模型/正弦波的),“频率”' 2 *π* (50 e6 75 e6)”);

要在频谱分析仪中启用失真测量,请单击变形测量如下图所示,然后选择互调作为失真类型。

scopecfg.DistortionMeasurements.Algorithm =“互调”;scopecfg。FFTLength =“4096”;scopecfg。WindowLength =“4096”;sim(模型);

该范围允许测量与输入信号相邻的三阶积,并确定输出参考的三阶截距点。s manbetx 845

另请参阅

||

相关的话题