过采样插补DAC
这个例子展示了如何建模一个12位过采样插值DAC。
过采样插值dac使用插值来实现比输入提供的更高分辨率的输出。对于接近奈奎斯特速率的DSP系统,这使得输出滤波不那么复杂。
模型
过采样插值DAC有三个基本功能模块。第一个块是来自DSP系统工具箱™的FIR插值滤波器块,用于从输入采样率增加采样率Fs
到DAC的采样率M * Fs
.第二个块是MATLAB函数块,处理FIR插值块的输出解缓冲。MATLAB函数块具有时钟触发的性质,允许它的输出有抖动。这使得它比DSP系统工具箱中的Unbuffer块更有优势。第三块是混合信号块集DAC,工作在M * Fs
.
DAC的参数来自AD9773数据表.
工作空间变量参数:
Fin = 66.176
kHz为输入信号频率。Fs = 1.125
MHz为输入采样频率。M = 8
是过采样因子/比率。N = 12
是DAC的比特数。Ref = 1.2
为DAC的基准(动态输出范围)。
DAC采样频率由过采样因子和输入采样频率决定:
为简单起见,偏置误差而且增益误差被留在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直流测量”)));