主要内容

过采样插补DAC

这个例子展示了如何建模一个12位过采样插值DAC。

过采样插值dac使用插值来实现比输入提供的更高分辨率的输出。对于接近奈奎斯特速率的DSP系统,这使得输出滤波不那么复杂。

模型

过采样插值DAC有三个基本功能模块。第一个块是来自DSP系统工具箱™的FIR插值滤波器块,用于从输入采样率增加采样率Fs到DAC的采样率M * Fs.第二个块是MATLAB函数块,处理FIR插值块的输出解缓冲。MATLAB函数块具有时钟触发的性质,允许它的输出有抖动。这使得它比DSP系统工具箱中的Unbuffer块更有优势。第三块是混合信号块集DAC,工作在M * Fs

DAC的参数来自AD9773数据表

工作空间变量参数:

  • Fin = 66.176kHz为输入信号频率。

  • Fs = 1.125MHz为输入采样频率。

  • M = 8是过采样因子/比率。

  • N = 12是DAC的比特数。

  • Ref = 1.2为DAC的基准(动态输出范围)。

DAC采样频率由过采样因子和输入采样频率决定:

$$F_{s_{DAC}} = M \cdot F_s = 9 MHz$$

为简单起见,偏置误差而且增益误差被留在0% FS在这个模型中。

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

动态测试

为了确定插值DAC的信噪比、ENOB和其他动态特性,请使用混合信号模块™中的DAC AC测量模块。

使用频谱分析仪比较低采样率输入和过采样插值DAC的输出。频谱分析仪旁边的增益块将输入波与DAC输出的振幅进行并排比较。

open_system([模型“/频谱分析仪”]);sim(模型);

静态测试

为了确定偏移误差,增益误差,INL和DNL使用DAC直流测量块。设置偏置误差的二进制加权DAC-0.02% FS(-0.8192 LSB),并设置其增益误差1.0% FS(40.96 LSB)。

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

测量的摘要报告在块图标上。打开块掩码并按Plot按钮查看完整的INL和DNL图。

sim(模型);mask = 万博1manbetxSimulink.Mask.get([模型/DAC直流测量]);button = mask.getDialogControl(“PlotBtn”);eval (regexprep(按钮。回调,“gcb”, (“””模型“/DAC直流测量”)));