Pavan ΔΣ数据转换器 附录B:ΔΣ工具箱 深度解析

附录B详细介绍了Schreier ΔΣ Toolbox(delsig)的完整功能,包括NTF综合、调制器仿真、系数计算与缩放、CT与正交系统扩展、失配整形ESL仿真、半带滤波器设计以及正不变集分析等。该工具箱是ΔΣ数据转换器设计与分析的工业标准工具。

附录B目录结构

章节内容
B.1工具箱概览与快速入门
B.2演示与示例 (dsdemo1-7, dsexample1-2)
B.3核心函数 (synthesizeNTF, simulateDSM, simulateSNR, realizeNTF等)
B.4连续时间系统函数 (realizeNTF_ct, mapCtoD, evalTFP)
B.5正交系统函数 (synthesizeQNTF, simulateQDSM, realizeQNTF, calculateQTF)
B.6专业函数 (designHBF, designPBF, predictSNR, findPIS, findPattern)
B.7实用工具函数
B.8调制器模型 (ABCD矩阵、量化器特性、支持拓扑结构)

B.1 工具箱概览

快速入门

  • 从 MATLAB Central File Exchange 下载 delsig 工具箱
  • 编译 simulateDSM.c 和 simulateMS.c 可提高仿真速度
  • 依赖:Signal Processing Toolbox + Control Systems Toolbox
  • clans 和 designPBF 需要 Optimization Toolbox

核心约定

  • 频率归一化: 对应采样频率
  • 参数默认值:以等号标记,省略或用 NaN/[] 占位
  • ABCD矩阵:状态空间描述调制器环路滤波器(详见 B.8)

工具箱流程图

指定OSR、低通/带通、量化器等级数
        ↓
 synthesizeNTF / designLCBP / clans  →  NTF综合
        ↓
 realizeNTF / stuffABCD / scaleABCD / mapABCD  →  系数计算与缩放
        ↓
 simulateDSM / simulateSNR / predictSNR  →  时域仿真与SNR确定
        ↓
 calculateTF / findPIS / find2dPIS  →  传递函数计算与稳定性分析

B.2 演示与示例

函数说明
dsdemo1synthesizeNTF 演示:5阶低通(有无优化零点)+ 8阶带通
dsdemo2simulateDSM + predictSNR + simulateSNR:低通/带通/多bit
dsdemo3realizeNTF + stuffABCD + scaleABCD + mapABCD
dsdemo4MOD1/MOD2 音频演示 + sincⁿ 降采样
dsdemo5simulateMS:失配整形DAC的元素选择逻辑
dsdemo6designHBF:高效半带滤波器设计与仿真
dsdemo7findPIS:正不变集计算
dsexample1离散时间调制器设计示例
dsexample2连续时间低通调制器设计示例

B.3 核心函数

synthesizeNTF — NTF综合

ntf = synthesizeNTF(order=3, OSR=64, opt=0, H_inf=1.5, f0=0)
  • order:NTF阶数(带通必须为偶数)
  • OSR:过采样率(优化零点时需要)
  • opt:零点优化标志
    • 0:所有零点在频带中心
    • 1:高OSR极限优化
    • 2:至少一个零点在中心,其余优化
    • 3:使用 Optimization Toolbox 优化
  • H_inf:NTF最大带外增益(Lee准则 <2)
  • f0:中心频率(≠0 为带通)
  • 输出:零极点形式的LTI对象

示例:5阶低通,OSR=32,优化零点

H = synthesizeNTF(5,32,1)
% 零点:(z-1) (z²-1.997z+1) (z²-1.992z+1)
% 极点:(z-0.7778) (z²-1.613z+0.6649) (z²-1.796z+0.8549)
% RMS增益 = -65dB, 最大增益 = 1.5 (3.5dB)

clans — CLANS NTF综合

ntf = clans(order=4, OSR=64, Q=5, rmax=0.95, opt=0)
  • 基于闭环噪声整形器分析(Kenney & Carley)
  • Q:量化噪声的最大时域增益 ()
  • rmax:极点最大半径
  • 需要 Optimization Toolbox

synthesizeChebyshevNTF — 切比雪夫NTF

ntf = synthesizeChebyshevNTF(order, OSR, opt, H_inf, f0)
  • 通带内等波纹幅度响应
  • 仅在低 OSR 或低 H_inf 时优于 synthesizeNTF

simulateDSM — 时域仿真

[v, xn, xmax, y] = simulateDSM(u, ABCD|ntf, nlev=2, x0=0)
  • u:输入序列( 矩阵),满幅对应
  • ABCD:环路滤波器状态空间描述
  • ntf:零极点形式NTF(STF假设为1)
  • nlev:量化器等级数(多量化器用列向量)
  • x0:初始状态
  • 输出:v=输出,xn=内部状态,xmax=状态最大值,y=量化器输入

示例:5阶二进制低通调制器,半幅正弦输入

OSR = 32; H = synthesizeNTF(5,OSR,1);
N = 8192; fB = ceil(N/(2*OSR));
f = 85; u = 0.5*sin(2*pi*f/N*[0:N-1]);
v = simulateDSM(u,H);
spec = fft(v.*ds_hann(N))/(N/4);
snr = calculateSNR(spec(1:fB), f);

simulateSNR — SNR仿真

[snr, amp] = simulateSNR(ntf|ABCD, OSR, amp, f0=0, nlev=2, f=1/(4*R), k=13)
  • 对不同幅度扫描仿真 SNR
  • k:FFT点数
  • quadrature:正交系统标志(当 ntf/ABCD 为复数时自动设置)

realizeNTF — NTF系数转换

[a, g, b, c] = realizeNTF(ntf, form='CRFB', stf=1)
  • 将NTF转换为指定拓扑结构的系数
  • form:CRFB/CRFF/CIFB/CIFF (加-D后缀表示延迟量化器)
  • a:量化器反馈/前馈系数 ()
  • g:谐振器系数 ()
  • b:输入前馈系数 ()
  • c:级间系数(未缩放时为全1)

stuffABCD / mapABCD — ABCD矩阵操作

ABCD = stuffABCD(a, g, b, c, form='CRFB')        % 系数→ABCD
[a, g, b, c] = mapABCD(ABCD, form='CRFB')         % ABCD→系数

scaleABCD — 动态范围缩放

[ABCDs, umax] = scaleABCD(ABCD, nlev=2, f=0, xlim=1, ymax=nlev+5)
  • 缩放状态使状态最大值不超过指定限值
  • 同时确定最大稳定输入 umax

calculateTF — 传递函数计算

[ntf, stf] = calculateTF(ABCD, k=1)
  • 从 ABCD 矩阵计算 NTF 和 STF
  • k:假设的量化器增益

simulateMS — 失配整形ESL仿真

[sv, sx, sigma_se, max_sx, max_sy] = simulateMS(v, mtf, M=16, d=0, dw, sx0)
  • 仿真失配整形DAC的元素选择逻辑
  • mtf:失配整形传递函数(零极点形式)
  • M:DAC元素数量
  • d:抖动幅度
  • dw:元素标称权重向量
  • sigma_se:选择误差RMS值,用于估计带内噪声

示例:比较温度计编码、1阶和2阶失配整形

ntf = synthesizeNTF(3,[],[],4); M = 16;
v = simulateDSM(u, ntf, M+1);
sv0 = ds_therm(v,M);                                    % 温度计编码
sv1 = simulateMS(v, zpk(1,0,1,1), M);                   % 1阶整形
sv2 = simulateMS(v, zpk([1 1],[0 0],1,1), M);           % 2阶整形

B.4 连续时间系统函数

realizeNTF_ct — CT NTF实现

[ABCDc, tdac2] = realizeNTF_ct(ntf, form='FB', tdac=[0 1], ordering, bp, ABCDc)
  • tdac:反馈DAC时序(cell数组支持多种时序)
  • form:FB(反馈)或 FF(前馈)
  • bp:指定谐振器是否为带通

mapCtoD — CT到DT映射

[sys, Gp] = mapCtoD(sys_c, t=[0 1], f0=0)
  • 基于脉冲响应匹配准则:CT系统的采样脉冲响应 = DT系统的脉冲响应
  • DAC脉冲由边沿时间矩阵 t 描述(默认[0 1]矩形脉冲)
  • Gp:混合CT/DT预滤波器

示例:标准2阶CT调制器的DT等效验证

LFc = ss([0 0;1 0], [1 -1;0 -1.5], [0 1], [0 0]);
[LF, Gp] = mapCtoD(LFc, [0 1]);
ABCD = [LF.a LF.b; LF.c LF.d];
H = calculateTF(ABCD);  % 验证得 NTF = (1-z⁻¹)²

evalTFP — STF评估

H = evalTFP(Hs, Hz, f)
  • 计算CT系统的信号传递函数:
  • 用于评估CT-ΔΣ ADC的整体STF

B.5 正交系统函数

synthesizeQNTF — 正交NTF综合

ntf = synthesizeQNTF(order=3, OSR=64, f0=0, NG=-60, ING=-20)
  • NG:带内噪声RMS增益 (dB)
  • ING:镜像带噪声RMS增益 (dB)
  • n_im:镜像带零点数量
  • ⚠️ 实验性版本,使用ad hoc方法

simulateQDSM — 正交调制器仿真

[v, xn, xmax, y] = simulateQDSM(u, ABCD|ntf, nlev=2, x0=0)
  • 输入为复序列(1×N行向量)
  • 可通过 mapQtoR + simulateDSM 加速(2输入2输出)

realizeQNTF — 正交NTF实现

ABCD = realizeQNTF(ntf, form='FB', rot=0, bn)
  • form:FB/PFB/FF/PFF(平行反馈/前馈)
  • rot=1:旋转状态使尽可能多的系数为实数
  • bn:前馈结构的辅助DAC系数

mapQtoR / mapR2Q — 复-实矩阵转换

ABCDr = mapQtoR(ABCD)                 % 复→实:z→[x -y; y x]
[ABCDq ABCDp] = mapR2Q(ABCDr)         % 实→复:ABCDq + ABCDp
  • ABCDp 为零表示无正交误差

calculateQTF — 正交传递函数计算

[ntf, stf, intf, istf] = calculateQTF(ABCDr)
  • 计算四组传递函数:NTF、STF、镜像NTF (INTF)、镜像STF (ISTF)
  • 镜像传递函数反映I/Q失配的影响

simulateQESL — 正交DAC ESL仿真

[sv, sx, sigma_se, ...] = simulateQESL(v, mtf, M=16, sx0)
  • 差分正交DAC的元素选择逻辑
  • 共 2M 个元素

B.6 专业函数

designHBF — 半带滤波器设计 (Saramäki)

[f1, f2, info] = designHBF(fp=0.2, delta=1e-5, debug=0)
  • 基于Saramäki过程的硬件高效线性相位半带滤波器
  • fp:归一化通带截止频率
  • delta:通带/阻带纹波(绝对值)
  • 输出:f1/f2 包含系数及其CSD表示

示例:fp=0.2, δ=1e-5 → 109dB阻带衰减,仅需124次加法/输出采样

[f1, f2] = designHBF(0.2, 1e-5);
% 系数示例:f1(1)=0.9453=2⁰-2⁻⁴-2⁻⁷, f2(1)=0.6211=2⁻¹-2⁻³-2⁻⁸

结构特点:

  • F1滤波器和3个F2子滤波器级联
  • CSD编码,每个乘加仅需3次加法
  • 110阶FIR仅需124次加法(低速侧)

simulateHBF — 半带滤波器时域仿真

y = simulateHBF(x, f1, f2, mode=0)
  • mode:0=滤波, 1=插值, 2=偶采样抽取, 3=奇采样抽取

designPBF — 多项式基滤波器设计

[C, e, x0] = designPBF(N, M, pb, pbr, sbr, ncd, np, ns, fmax)
  • Hunter方法设计对称多项式基滤波器
  • 用于连续可变采样率转换
  • 需要 Optimization Toolbox

predictSNR — 描述函数法SNR预测

[snr, amp, k0, k1, sigma_e2] = predictSNR(ntf, OSR=64, amp, f0=0)
  • Ardalan-Paulos描述函数方法,仅适用于二进制调制器
  • 量化器模型:信号增益 k₀ + 噪声增益 k₁ + 加性高斯白噪声
  • 输入被分为信号和噪声分量,分别由信号相关的增益处理

findPIS / find2dPIS — 正不变集

[s, e, n, o, Sc] = findPIS(u, ABCD, nlev=2, options)
  • 计算ΔΣ调制器的凸正不变集
  • findPIS 需要编译 qhull mex 文件
  • find2dPIS 限于二阶系统
  • 用于稳定性分析的强大工具

findPattern — 低噪声数据模式

[data, snr] = findPattern(N=1024, OSR=64, ntf, ftest, Atest, f0=0, nlev=2)
  • 创建重复时具有良好频谱特性的数据流
  • 用于测试和测量场景

B.7 实用工具函数

ΔΣ专用工具

  • mod1/mod2:标准1阶/2阶调制器的ABCD矩阵
  • calculateSNR:从加窗FFT估计SNR
  • partitionABCD:分割ABCD矩阵为A/B/C/D子矩阵
  • infnorm:计算z域传递函数的-范数
  • impL1:计算NTF的-范数脉冲响应
  • pulse:计算CT系统的采样脉冲响应
  • rmsGain:计算DT传递函数在频带内的RMS增益

通用工具

  • dbv/dbp/undbv/undbp/dbm/undbm:dB与线性值转换
  • ds_hann(N):Hann窗(与MATLAB periodic Hann相同,不产生频谱泄漏)
  • zinc(f, n, m):m级sinc滤波器级联的幅度响应

图形工具

  • plotPZ:绘制零极点图
  • plotSpectrum:绘制平滑频谱
  • figureMagic:图形格式化(坐标轴/刻度/标签)
  • printmif:导出Adobe Illustrator + FrameMaker MIF格式
  • logsmooth:FFT平滑并转换为dB

B.8 调制器模型

ABCD矩阵定义

环路滤波器由ABCD矩阵描述(单量化器系统为 矩阵):

ABCD = [A  B; C  D]

状态更新与输出方程:

x[n+1] = A·x[n] + B·[u[n]; v[n]]⁺
y[n]   = C·x[n] + D·[u[n]; v[n]]⁺

量化器特性

  • 偶数级:mid-rise型,输出为奇数整数
  • 奇数级:mid-tread型,输出为偶数整数

支持的拓扑结构

拓扑说明
CIFB积分器级联-反馈形式
CIFF积分器级联-前馈形式
CRFB谐振器级联-反馈形式
CRFF谐振器级联-前馈形式
CRFBDCRFB + 延迟量化器
CRFFDCRFF + 延迟量化器
Stratos类CIFF,支持单位圆上NTF零点(Gealow)
DSFB双采样-反馈形式(Senderowicz)

注意:使用 synthesizeNTF 设计的NTF在CRFB结构中省略 b₂… 系数可获得最大平坦STF。

关键公式

量化器模型 (predictSNR)

二进制量化器建模为信号相关增益 + 白高斯噪声源:

CT→DT脉冲响应匹配

正交实矩阵映射

参考文献

  1. J. G. Kenney and L. R. Carley, “Design of multibit noise-shaping data converters,” Analog Integrated Circuits Signal Processing Journal, vol. 3, pp. 259-272, 1993.
  2. R. Schreier and B. Zhang, “Delta-sigma modulators employing continuous-time circuitry,” IEEE Trans. Circuits and Systems I, vol. 43, no. 4, pp. 324-332, April 1996.
  3. T. Saramäki, “Design of FIR filters as a tapped cascaded interconnection of identical subfilters,” IEEE Trans. Circuits and Systems, vol. 34, pp. 1011-1029, 1987.
  4. M. T. Hunter, “Design of polynomial-based filters for continuously variable sample rate conversion,” Ph.D. thesis, University of Florida, 2008.
  5. S. H. Ardalan and J. J. Paulos, “Analysis of nonlinear behavior in delta-sigma modulators,” IEEE Trans. Circuits and Systems, vol. 34, pp. 593-603, June 1987.
  6. R. Schreier, M. Goodson and B. Zhang, “An algorithm for computing convex positively invariant sets for delta-sigma modulators,” IEEE Trans. Circuits and Systems I, vol. 44, no. 1, pp. 38-44, January 1997.

关联概念页面