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 演示与示例
| 函数 | 说明 |
|---|---|
| dsdemo1 | synthesizeNTF 演示:5阶低通(有无优化零点)+ 8阶带通 |
| dsdemo2 | simulateDSM + predictSNR + simulateSNR:低通/带通/多bit |
| dsdemo3 | realizeNTF + stuffABCD + scaleABCD + mapABCD |
| dsdemo4 | MOD1/MOD2 音频演示 + sincⁿ 降采样 |
| dsdemo5 | simulateMS:失配整形DAC的元素选择逻辑 |
| dsdemo6 | designHBF:高效半带滤波器设计与仿真 |
| dsdemo7 | findPIS:正不变集计算 |
| 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 | 谐振器级联-前馈形式 |
| CRFBD | CRFB + 延迟量化器 |
| CRFFD | CRFF + 延迟量化器 |
| Stratos | 类CIFF,支持单位圆上NTF零点(Gealow) |
| DSFB | 双采样-反馈形式(Senderowicz) |
注意:使用 synthesizeNTF 设计的NTF在CRFB结构中省略 b₂… 系数可获得最大平坦STF。
关键公式
量化器模型 (predictSNR)
二进制量化器建模为信号相关增益 + 白高斯噪声源:
CT→DT脉冲响应匹配
正交实矩阵映射
参考文献
- 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.
- 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.
- 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.
- M. T. Hunter, “Design of polynomial-based filters for continuously variable sample rate conversion,” Ph.D. thesis, University of Florida, 2008.
- 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.
- 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.