模型信号数字化 — 教学案例库
本案例库通过 Syslab Julia 与 Sysplorer(Modelica 物理建模 + Sysblock 框图建模)演示信号数字化的完整流程——连续信号、理想采样、量化、量化噪声与信号重建,覆盖从物理模型到数字系统的全过程,是信号与系统、数字信号处理与嵌入式系统建模的完整教学案例集合。
适用课程、行业与场景
本案例库适用于信号与系统、数字信号处理(DSP)、通信原理、嵌入式系统建模、系统建模与仿真、自动控制原理、机电系统与多学科仿真等课程教学;面向电子信息、通信、仪器仪表、嵌入式与工业控制、汽车电子等行业的研发与教学人员;可用于采样定理与混叠现象的直观演示,量化与量化噪声(SQNR)的教学讲解,连续/离散系统转换与 ADC/DAC 链路的实验教学,以及从物理模型到数字系统的完整数字化流程演练等场景。
案例库结构
signal_digitization_case_library/
├── README.md # 本文件 — 总索引
├── docs/ # 教学理论文档
│ ├── teaching_guide.md # 教学使用指南
│ ├── theory_sampling.md # 采样定理与混叠理论
│ └── theory_quantization.md # 量化理论
│
├── 01_pure_julia_principles/ # 场景1:纯 Julia 信号数字化原理演示
│ ├── 01_continuous_signals.jl # 连续信号生成
│ ├── 02_ideal_sampling.jl # 理想采样与 Nyquist 定理
│ ├── 03_aliasing_demo.jl # 混叠现象演示
│ ├── 04_quantization.jl # 均匀量化与量化误差
│ ├── 05_quantization_noise.jl # 量化噪声统计特性
│ ├── 06_reconstruction.jl # 信号重建(ZOH/FOH/sinc)
│ └── 07_full_pipeline.jl # 完整 ADC→DAC 流水线
│
├── 02_modelica_to_digital/ # 场景2:Modelica 物理模型 → 数字化
│ ├── models/ # Modelica 源文件
│ │ ├── MassSpringDamper.mo # 弹簧振子模型
│ │ └── RCCircuit.mo # RC 电路模型
│ └── julia_scripts/ # Julia 处理脚本
│ ├── 01_simulate_msd.jl # 仿真并导出连续信号
│ ├── 02_digitize_msd.jl # 采样 + 量化处理
│ └── 03_compare_reconstruction.jl # 参数对比重建
│
└── 03_sysblock_digital_system/ # 场景3:Sysblock 框图数字化系统
└── models/
└── SignalDigitizationChain.mo # ADC 链路框图模型
三场景概述
| 场景 | 核心知识点 | 所需工具 |
|---|---|---|
| 场景1 纯 Julia 原理 | 采样定理、量化、重建、频谱分析 | Syslab Julia |
| 场景2 Modelica → 数字化 | 物理建模、连续/离散转换、参数对比 | Sysplorer + Syslab |
| 场景3 Sysblock 框图 | 框图建模、ADC/DAC 链路、混叠演示 | Sysplorer Sysblock |
核心技术知识点
采样与 Nyquist 定理
连续信号 经理想采样后,频谱以采样频率 为周期延拓:
Nyquist–Shannon 采样定理:若带限信号最高频率为 ,当采样频率满足 时,可由采样值唯一重建原始信号; 称为 Nyquist 频率。
混叠(Aliasing)
当 时频谱延拓发生重叠,高频分量"折叠"到低频:
例如采样率 100 Hz、输入 80 Hz(不满足 Nyquist)会混叠成 Hz。实际 ADC 前须放置截止频率 ≤ 的抗混叠低通滤波器。
量化与量化噪声
量化把连续幅值映射到 个离散电平( 为位数),量化步长 。在加性白噪声模型下,量化误差均匀分布于 ,噪声功率为:
满幅正弦输入下信号量化噪声比为经典经验公式:
即每增加 1 bit,SQNR 提升约 6 dB。
信号重建
采样值经理想低通滤波可重建连续信号,等价于 sinc 插值:
实际常用零阶保持(ZOH)、一阶保持(FOH)近似,场景 1 的 06_reconstruction.jl 对三种方式做了对比。
场景详情
场景1:纯 Julia 原理(01_pure_julia_principles)
7 个 .jl 脚本依次覆盖连续信号生成、理想采样、混叠演示、均匀量化、量化噪声统计、信号重建与完整 ADC→DAC 流水线,使用 TyPlot、TyMathFFT、TyFixedPoint 完成信号生成、FFT 频谱分析与定点量化,全程在 Syslab 中运行。
场景2:Modelica → 数字化(02_modelica_to_digital)
用 Modelica 标准库组件搭建连续物理模型,仿真导出连续信号后再用 Julia 脚本做采样、量化与重建对比:
| 模型 | 系统 | 运动/微分方程 | 关键参数 |
|---|---|---|---|
MassSpringDamper.mo |
二阶机械系统 | m·ẍ + d·ẋ + c·x = F_ext | m=1 kg, c=100 N/m, d=2 N·s/m(ω_n=10 rad/s,ζ=0.1 欠阻尼) |
RCCircuit.mo |
一阶电气系统 | R·C·dv_C/dt + v_C = v_s | R=1000 Ω, C=100 μF(τ=RC=0.1 s) |
配套脚本 01_simulate_msd.jl(仿真导出)、02_digitize_msd.jl(采样+量化)、03_compare_reconstruction.jl(采样率 × 位数的 MSE 网格对比)。
场景3:Sysblock 框图数字化系统(03_sysblock_digital_system)
SignalDigitizationChain.mo 是一个完整的 ADC 链路框图模型,含 4 条信号路径:
- 主 ADC 链路:5 Hz 正弦 → ZOH(100 Hz 采样) → 量化(16 级,步长 0.125) → DAC 重建 → 示波器,展示正确数字化结果。
- 低速率对比链路:同源 → ZOH(8 Hz,低于 Nyquist 2×5 Hz) → 量化(8 级) → 示波器,演示欠采样混叠。
- 量化误差观测:ZOH 输出与量化输出之差送入示波器,量化误差应在 ±步长/2 内。
- 原始参考:正弦源直连示波器,作为全部对比的基准。
运行要求
- Syslab 2026a 及以上
- Sysplorer 2026a(场景 2、3 需要)
- 已安装 Ty 工具箱:
TySignalProcessing、TyDSPSystem、TyFixedPoint、TyPlot、TyMath、TyMathFFT
依赖包
| 包名 | 用途 |
|---|---|
TySignalProcessing |
采样率转换、滤波、信号生成 |
TyDSPSystem |
DSP 系统对象(信号源、滤波器) |
TyFixedPoint |
定点量化器(quantizer) |
TyPlot |
绘图可视化 |
TyMath / TyMathFFT |
基础数学运算与 FFT 频谱分析 |
使用许可
本模型库版权由MoHub版权所有,未经许可,不得用于商业用途。