主要内容

单纯ADC损伤分析

此示例显示如何使用零阶保持块作为采样器实现基本ADC。这种简单的ADC突出了在模数转换器中引入的一些典型损伤,例如光圈抖动,非线性,量化和饱和度。此示例显示了如何使用频谱分析仪块和来自混合信号块Set™的ADC AC测量块来测量此类损害的影响。为了更好地近似真实世界性能,您可以单独启用模型中的损伤。

模型=“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 AC测量

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

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

bdclose(模型);模型='msadcimpairments_ac';open_system(模型);

英尺= 33 /轮(2 *π* 2 ^ 8)* Fs;set_param([模型/正弦波的],'频率''2 * pi * ftest');scopecfg = get_param([模型' /光谱范围的],“ScopeConfiguration”);scopecfg.DistortionMeasurements.Algorithm =“谐”;scopecfg。FFTLength =“512”;scopecfg。WindowLength =“512”;sim(模型);

来自混合信号块集™的孔径抖动测量块测量信号上引入的平均抖动近似等于1ps。

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

  • 输出三阶截点(OIP3)

  • 信噪比

  • 总谐波失真(THD)

增加的因素α以增加ADC的非线性,并使非线性效应在噪声基底上更加明显。这只是为了演示。

α= 0.8;

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

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

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

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

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

另请参阅

||

相关话题