DSP System Toolbox™ 提供多种算法、App 和示波器,用于在 MATLAB® 和 Simulink® 中设计、仿真和分析信号处理系统。您可以为通信、雷达、音频、医疗设备、IoT 和其它应用进行实时 DSP 系统建模。
DSP System Toolbox 支持您设计和分析 FIR、IIR、多速率、多级和自适应滤波器。您可以从变量、数据文件和网络设备流式传输信号以进行系统开发和验证。时域示波器、频谱分析器和逻辑分析器支持您对流信号进行动态可视化和测量。在桌面原型构建和嵌入式处理器(包括 ARM® Cortex® 架构)部署方面,该系统工具箱支持 C/C++ 代码生成。它还支持从滤波器和其他算法进行位真定点建模和 HDL 代码生成。
算法采用多种形式,包括 MATLAB 函数、System object™ 和 Simulink 模块。
开始:
Simulink 包含 DSP System Toolbox™ 信号处理算法模块库,涉及滤波器、变换和线性代数。这些模块将流输入信号处理为单个采样或采样集合(又称“帧”)。基于采样的处理模式支持需要标量处理的低延迟处理和应用。基于帧的处理模式支持以延迟换取更高吞吐量。系统工具箱可同时支持基于采样和基于帧的处理模式。
使用 System object 的 MATLAB 程序可通过 MATLAB Function 模块或 MATLAB System 模块合并到 Simulink 模型中。大多数 System object 都对应具有相同功能的 Simulink 模块。
针对 DSP 系统设计、实现和测试的信号处理模块
Simulink 信号处理模块支持双精度和单精度浮点数据类型和整数数据类型,与 Fixed-Point Designer 配合使用时,还支持定点数据类型。
DSP System Toolbox 中的信号处理模块包括:
- 信号变换,如快速傅立叶变换 (FFT)、离散余弦变换 (DCT)、短时傅立叶变换 (STFT) 和离散小波变换 (DWT)
- FIR、IIR 和模拟滤波器的滤波器设计和实现
- 用于采样率转换的多速率和多级滤波器,如CIC、半带、多相和 Farrow
- 用于频谱估计、均衡和噪声抑制的统计和自适应信号处理技术
- 信号操作和测量,如卷积、加窗、填充、延迟、峰值查找和过零
- 使用时域示波器、频谱分析器等工具进行的流信号可视化和测量
- 信号管理方法,如缓冲、索引、切换、堆栈和队列
- 接收端和发送端,如线性调频和有色噪声生成器、NCO、UDP 接收机和发射机等
- 数值线性代数例程,包括线性方程组求解器、矩阵分解和矩阵求逆
多速率系统建模
在 MATLAB 中,DSP System Toolbox 支持采样率转换的多速率处理,并支持为需要对接不同采样率或时钟频率的系统建模。多速率功能包括多级和多速率滤波器,如 FIR 和 IIR 半带、多相滤波器、CIC 滤波器和 Farrow 滤波器。该功能还包括插值、抽取和任意采样率转换等信号操作。
DSP System Toolbox 为 MATLAB 中的流信号处理提供框架。该系统工具箱带有一个针对流信号处理进行优化的信号处理算法库,涉及单速率和多速率滤波器、自适应滤波器和 FFT。该系统工具箱是您设计、仿真和部署信号处理解决方案的理想选择,适用于音频、生物医学、通信、控制、地震、传感器和语音等多种应用领域。
流信号处理方法能够处理持续流动的数据流,通常可以通过将输入数据划分为帧并在采集每个帧时对其进行处理来加速仿真。例如,MATLAB 中的流信号处理能够实时处理多声道音频。
流信号处理依托于一个 DSP 算法组件库,这些组件属于 System object™,可表示数据驱动算法、发送端和接收端。System object 可通过自动执行数据索引、缓冲和算法状态管理等任务来帮助您创建流应用程序。您可以将 MATLAB System object 与标准 MATLAB 函数及运算符混合使用。
您可使用针对流信号和数据进行优化的算法,将单速率、多速率和自适应滤波器应用到流数据。
DSP 系统设计、实现和测试的算法库
DSP System Toolbox 提供超过 350 种针对流系统的设计、实现和验证进行优化的算法,无论作为 MATLAB 函数实现还是作为 MATLAB System object实现。这些算法均支持双精度和单精度浮点数据类型。大多数算法还支持整数数据类型,也支持定点数据类型(需要 Fixed-Point Designer™)。
在 MATLAB 中,该系统工具箱包含以下类型的算法:
- 信号变换,如快速傅立叶变换 (FFT)、离散余弦变换 (DCT)
- 用于数字 FIR 和 IIR 滤波器的设计和实现方法
- 用于采样率转换的多速率和多级滤波器,如 FIR 和 IIR 半带、多相滤波器、CIC 滤波器和 Farrow 滤波器
- 用于频谱估计、均衡和噪声抑制的统计和自适应信号处理方法
- 信号操作和测量,如卷积、加窗、填充、建模延迟、峰值查找和可变分数延迟
- 运行时信号可视化,借助时域示波器、频谱分析器和逻辑分析器实现
多速率系统
在 MATLAB 中,DSP System Toolbox 支持采样率转换的多速率处理,并支持为需要对接不同采样率或时钟频率的系统进行建模。多速率功能包括多级和多速率滤波器,如 FIR 和 IIR 半带、多相滤波器、CIC 滤波器和 Farrow 滤波器。该功能还包括插值、抽取和任意采样率转换等信号操作。
DSP System Toolbox 提供了大量 FIR、IIR、多级、多速率和自适应滤波器的滤波器设计和实现算法。您可以设计低通、高通、带通、带阻以及其他响应类型的滤波器。您还可以采用直接型 FIR、叠加 FIR、IIR 二阶节(双二阶)、级联全通和格型结构等滤波器结构来实现这些滤波器。
您可以使用 Filterbuilder、MATLAB 代码或 Simulink 模块来设计滤波器。此外,您还可以分析 FIR 和 IIR 滤波器的定点量化效应,并确定滤波器系数的最佳字长。
您也可以设计可调滤波器,以在运行时调节带宽和增益等滤波器关键参数。
在 MATLAB 中使用 DSP System Toolbox 设计的数字滤波器也可以用于 Simulink 中的系统级模型。该系统工具箱包含一个即用型滤波器模块库,支持您直接在 Simulink 中设计、仿真和实现低通、高通和其他滤波器。
除了传统的 FIR 和 IIR 滤波器设计算法,DSP System Toolbox 还支持以下专用滤波器和设计方法:
- 高级等波纹 FIR 滤波器,包括最小阶、约束波纹和最小相位设计
- Nyquist、FIR 半带和 IIR 多相滤波器,提供线性相位、最小相位和准线性相位半带设计以及等波纹、斜向频率阻带和窗函数方法
- CIC 插值器和抽取器滤波器,用于软件定义无线电和 Sigma-Delta 转换器中的无乘法实现
- 优化的多级设计,可通过优化级联的级数实现最低的计算复杂度
- 分数延迟滤波器,包括基于 Farrow 滤波器结构的实现,适用于可调滤波应用
- 具有任意群延迟的全通 IIR 滤波器,可以补偿其他 IIR 滤波器的群延迟,从而获得近似线性的通带相位响应
- 格波数字 IIR 滤波器,具有稳健的实现
- 任意幅值和相位的 FIR 和 IIR 滤波器,支持各种滤波器设定的设计
时域示波器在时域中显示信号,它支持各种信号,包括连续、离散、固定大小、可变大小、浮点数据、定点数据以及多信道 I/O 系统中的 N 维信号。时域示波器支持同时显示多个信号,可以是在同一坐标轴上显示具有不同维度、采样率和数据类型的多个信号,也可以是在示波器窗口中以不同画面分别显示各个数据信道上的信号。时域示波器可执行分析、测量和统计功能,包括均方根 (RMS)、峰间值、均值和中位数。
频谱分析器可计算各种输入信号的频谱,并以线性刻度或对数刻度显示其频谱。频谱分析器可执行各种测量和分析,如谐波失真测量(THD、SNR、SINAD、SFDR)、三阶交调失真测量 (TOI)、邻信道功率比测量 (ACPR)、互补累积分布函数 (CCDF) 和峰均功率比 (PAPR)。频谱分析器的频谱模式视图显示如何查看时变频谱,并支持自动峰值检测。
DSP System Toolbox 还提供一系列可视化工具,可用于显示和测量各种信号或数据,包括实数值或复数值数据、向量、数组和任意数据类型(包括定点、双精度或用户定义的数据输入序列)的帧。其中一些可视化工具提供流数据或信号的三维显示,以便您持续分析数据直至仿真停止。
可以将 DSP System Toolbox 与 Fixed-Point Designer 结合使用,来对定点信号处理算法进行建模,并分析作用于系统行为和性能的量化效应。也可以从 MATLAB 代码或 Simulink 模型生成定点 C 代码。
可以在该系统工具箱中针对定点运算模式配置 MATLAB System object 和 Simulink 模块,以便事先使用不同字长、定标、溢出处理和舍入方法选项运行仿真来执行设计权衡分析和优化,之后再提交给硬件。
许多 DSP 算法都支持定点模式,包括 FFT、滤波器、统计和线性代数算法。DSP System Toolbox 会为定点运算自动配置 System object 和模块。
定点滤波器设计
在 DSP System Toolbox 中,您可以使用滤波器设计函数和 Filterbuilder 设计浮点滤波器,然后使用 Fixed-Point Designer 将其转换为定点数据类型。此设计流程简化了定点滤波器的设计和优化过程,并支持对量化效应开展分析。
您可以将 DSP System Toolbox 与 MATLAB Coder™ 和 Simulink Coder™ 结合使用,从而通过 MATLAB 中的信号处理算法或 Simulink 中的系统模型生成针对性能调优的 C 和 C++ 源代码或 MEX 函数。
生成的代码可以用于进行系统加速、快速原型构建、实现和部署,或用于在产品开发过程中进行系统集成。
独立执行或集成到其他环境
借助 DSP System Toolbox,您还可以为算法生成可独立执行程序,从而使用从 MATLAB 代码或 Simulink 模型生成的 C 代码实现桌面部署和原型构建。您仍可以借助 UDP 组件直接在 MATLAB 或 Simulink 中实时调节此独立可执行程序。由于该独立可执行程序在 MATLAB 代码或 Simulink 模型之外的线程上运行,因此,它会提高算法的实时性能。
生成的信号处理算法 C 代码可作为编译的库组件集成到其他软件(如自定义仿真器)中或标准建模软件(如 SystemC)中。
针对 ARM Cortex 处理器优化的 C 代码生成
您可以将 DSP System Toolbox 与针对 ARM Cortex-A 或 ARM Cortex-M 的硬件支持附加功能以及 Embedded Coder® 结合使用,以从 MATLAB System object 或 Simulink 模块生成关键 DSP 算法(如 FFT、FIR 和双二阶滤波器)的优化 C 代码。您可以通过生成的 C 代码调用 ARM Cortex-A Ne10 库或 ARM Cortex-M CMSIS 库的优化例程。相较于标准 C 代码,优化 C 代码的一大优势是能够立刻提高性能。您还可以使用处理器在环 (PIL) 测试来执行代码验证和性能分析。
您可以在 MATLAB 中将 DSP System Toolbox 与 Filter Design HDL Coder™ 结合使用,从而设计数字滤波器并生成高效、可合成且可移植的 VHDL® 和 Verilog® 代码,以在 FPGA 或 ASIC 中实现。您还可以自动创建 VHDL 和 Verilog 测试平台,以仿真、测试和验证生成的代码。
在系统设计中,您可以将 DSP System Toolbox 与 HDL Coder™ 结合使用,以实现可合成且可读的 VHDL 和 Verilog 代码生成。为了优化 FPGA/ASIC 资源的用量和性能,请考虑使用 DSP HDL Toolbox 提供的模块。