Accelerating the pace of engineering and science

DSP System Toolbox

主要特性

  • MATLAB® 中的流信号处理
  • Simulink ® 中的信号处理和线性代数模块
  • 单速率、多速率、FIR、IIR 和自适应滤波器设计
  • 可用于对流信号进行可视化和测量的示波器、频谱分析仪和逻辑分析仪
  • 对信号处理算法进行定点建模和仿真
  • 支持 C 和 C++ 代码生成
  • 支持 HDL 代码生成

MATLAB 中的流信号处理

DSP System Toolbox™ 提供用于 MATLAB 中流信号处理的框架。该系统工具箱包含一个针对流信号处理(如单速率和多速率滤波器、自适应滤波器和 FFT)优化的信号处理算法库。该系统工具箱是极其适合于设计、仿真和部署信号处理应用的解决方案,包括音频、生物医学、通信、控制、地震、传感器和语音。

流信号处理技术能够处理持续流动的数据流,通常可以通过将输入数据划分为帧并在采集每个帧时对其进行处理来加速仿真。例如,MATLAB 中的流信号处理能够实时处理多声道音频。

通过使用被称为 System objects™ 的 DSP 算法组件库表示数据驱动的算法、源和接收器来实现流信号处理。System objects 可通过自动执行数据索引、缓冲和算法状态管理等任务来帮助您创建流应用程序。可将 MATLAB System objects 与标准 MATLAB 函数及运算符混合起来。

您可以使用示波器频谱分析仪对流信号进行可视化和测量。

您可使用针对流信号和数据优化的算法将单速率、多速率和自适应滤波器应用到流数据。

Streaming signal processing technique in MATLAB.
MATLAB 代码实现基本流循环(左)。示波器(右上)和频谱分析仪(右下)在生成和处理实时信号时可视化并测量这些信号。

DSP 系统设计、实现和测试的算法库

DSP System Toolbox 提供超过 350 种针对流系统的设计、实现和验证而优化的算法,无论作为 MATLAB 函数实现还是作为 MATLAB 系统对象实现。这些算法均支持双精度和单精度浮点数据类型。大多数算法还支持整数数据类型和需要 Fixed-Point Designer™ 的定点数据类型。

在 MATLAB 中,该系统工具箱中的算法类别包括:

Partial list of System objects available in MATLAB.
MATLAB 中提供的可由命令行帮助显示或通过 Tab 自动填充可发现的信号处理算法的不完整列表。

多速率系统

在 MATLAB 中,DSP System Toolbox 支持采样速率转换引起的多速率处理和对需要不同采样率或时钟频率进行交互的系统建模。多速率功能包括多级和多速率滤波器,如 FIR 和 IIR 半带、多相滤波器、CIC 滤波器Farrow 滤波器。该功能还包括内插、抽取和采样率任意转换等信号操作。

Efficient sample-rate conversion between arbitrary factors.
任意因子之间的高效采样率转换。示例包括:各种实现结构及其开销分析(包括 Farrow 结构,可以是采样率转换的高效实现)的 MATLAB 代码(左);对比展现多相和 Farrow 滤波器实现采样率转换的幅度响应(右上);使用 Farrow 和 FIR 多相结构级联进行采样率转换的混合解决方案(右中);显示单级和多级 FIR 和 Farrow 滤波器组合的频率响应的流可视化比较的频谱分析仪(右下)。

Simulink 中的信号处理和线性代数模块

Simulink 中,DSP System Toolbox 提供了滤波器、信号变换和线性代数的信号处理算法模块库。这些模块将流输入信号处理为单个样本或称为帧的样本集合。基于采样的处理模式支持需要标量处理的低延迟处理和应用。基于帧的处理模式支持以延迟换取更高吞吐量。系统工具箱可同时支持基于采样和基于帧的处理模式。

使用系统对象的 MATLAB 程序可通过 MATLAB 函数模块或 MATLAB 系统模块合并到 Simulink 模型中。大多数系统对象都与具有相同功能的 Simulink 模块相对应。

Frame-based operation showing frame-based throughput rate vs. sample-based alternative.
在每个中断服务例程之间采集一帧(16 样本)的基于帧的操作,显示基于帧的吞吐率比基于采样的替代方法高出许多倍。

DSP 系统设计、实现和测试的信号处理模块

Simulink 信号处理模块支持双精度和单精度浮点数据类型和整数数据类型,与 Fixed-Point Designer 配合使用时,还支持定点数据类型。

DSP System Toolbox 中的信号处理模块包括:

  • 信号变换,如快速傅立叶变换 (FFT)、离散余弦变换 (DCT)、短时傅立叶变换 (STFT)和离散小波变换 (DWT)
  • FIR、IIR 和模拟滤波器的滤波器设计和实现
  • 用于采样率转换的多速率和多级滤波器,如CIC、半带、多相和 Farrow
  • 用于频谱估计、均衡和噪声抑制的统计和自适应信号处理技术
  • 信号操作和测量,如卷积、加窗、填充、延时、峰值查找和零点穿越
  • 使用示波器、频谱分析仪等工具进行的流信号可视化和测量
  • 信号管理方法,如缓冲、索引、切换、堆栈操作和队列操作
  • 接收器和源,如线性调频和有色噪声生成器、NCO、UDP 接收器和发送器等
  • 数值线性代数例程,包括线性系统求解器、矩阵因式分解和矩阵转置
DSP System Toolbox blocks library for signal processing available in Simulink.
Simulink 中可用于信号处理的 DSP System Toolbox 模块库(上),以及线性系统求解器(左下)和变换(右下)的扩展视图。

多速率系统建模

在 Simulink 中,DSP System Toolbox 支持采样速率转换引入的多速率处理和对需要不同采样率或时钟频率进行交互的系统建模。多速率滤波器模块包括多级和多速率滤波器模块,如 CIC、FIR 速率转换、FIR 内插器和抽取器以及二元分析滤波器组

Sigma-delta A/D converter model in Simulink showing signals operating at multiple sample rates.
Simulink 中展示以多个采样速率进行信号操作的 sigma-delta 模数转换器模型(左)。在通信系统中仿真简单数字下变频器 (DDC) 的行为以进行基带转换,包括 NCO、CIC 抽取器、CIC 补偿器、半带抽取器和用于最终采样率调整的采样率转换器(右)。

单速率和多速率 FIR 和 IIR 滤波器设计和自适应滤波器

DSP System Toolbox 提供了大量 FIR、IIR、多级、多速率和自适应滤波器的滤波器设计和实现算法。可设计低通、高通、带通、带阻以及其他响应类型的滤波器,并采用诸如直接型 FIR、交叠相加 FIR、IIR 二阶节(双二阶)、级联全通和格状结构等滤波器结构来实现。

您可以使用 Filterbuilder 应用程序、MATLAB 函数或 Simulink 模块来设计滤波器。此外,还可以分析 FIR 和 IIR 滤波器的定点量化效应和确定滤波器系数的最佳字长。

您也可以设计可用于在运行时调节主要滤波器参数(如带宽和增益)的可调滤波器

Filterbuilder app for interactive filter design.
用于低通滤波器交互式设计的 Filterbuilder 应用程序(左)、滤波器规格实施操作 UI(中)、以及 低通滤波器 幅度响应的可视化(右)。

在 MATLAB 中使用 DSP System Toolbox 设计的数字滤波器也可以用于 Simulink 中的系统级模型。该系统工具箱中具备一个用于直接在 Simulink 中设计、仿真和实现低通高通和其他滤波器的即用型滤波器模块库。

除了传统的 FIR 和 IIR 滤波器设计算法之外,DSP System Toolbox 还支持以下专用滤波器和设计方法:

Specialized filter designs in MATLAB.
MATLAB 中的滤波器设计示例。从左上开始顺时针方向依次为:任意幅度响应、低通 FIR 设计比较、带通 IIR 设计比较、双二阶滤波器累积剖面分析、定点 256 因子数字下变频器响应分析,以及多阶复杂带通 FIR。

自适应滤波器

DSP System Toolbox 提供了多种在 MATLAB 和 Simulink 中进行自适应滤波的技术:这些技术广泛应用于系统辨识、频谱估计、均衡和噪声抑制等应用场合。此类自适应滤波器包括基于 LMS基于 RLS仿射投影快速横向频域基于格状卡尔曼滤波器。该系统工具箱还包含用于分析这些滤波器的算法,包括系数跟踪、学习曲线和收敛。

System identification using RLS adaptive filtering showing how to tune parameters at run time using the UI.
使用 RLS 自适应滤波的系统识别,显示如何使用 UI 在运行时调节参数。该图包括:调用 RLS 算法的 MATLAB 代码(左上)、用于调节中心频率和 RLS 遗忘因子的 UI(右上)、RLS 滤波器学习曲线图(右中)、所需的和估算的转换函数绘图(右下)以及 Simulink 模型版本(左下)。

多速率和多级滤波器和分析

DSP System Toolbox 提供多速率滤波器的设计和实现,包括多相内插器、抽取器、采样率转换器、FIR 半带IIR 半带、Farrow 滤波器以及 CIC 滤波器和补偿器,并且支持多级设计方法。该系统工具箱还提供专用分析函数来估计多速率和多级滤波器的计算复杂度。

Responses of equiripple design and corresponding multirate and multistage design.
使用 fvtool 查看等波纹设计与对应的多速率和多级设计的响应(左),以及输入和各种输出的功率谱密度图反应的多速率和多级设计性能(右)。
Audio sample-rate conversion of streaming audio signal.
流音频信号的音频采样率从 44.1 KHz 转换为 96 Khz。该图显示 MATLAB 代码(左)及两级采样率转换中使用的多速率滤波器的幅度响应,其中滤波器 1 是内插因子为 160 和抽取因子为 147 的 FIR 采样率转换器,滤波器 2 是内插因子为 2 的 FIR 内插滤波器(右)。

信号示波器、分析仪和测量

DSP System Toolbox 提供了用于 MATLAB 和 Simulink 中流信号的时域或频域可视化、测量和分析的示波器和数据记录功能。这些示波器具有类似于行业标准示波器和频谱分析仪的用户的测量和统计功能。

该系统工具箱还提供用于显示时域信号中转换的逻辑分析仪,有助于调试面向 HDL 实现的模型。

您还可以创建任意绘图以对数据矢量进行可视化,如一段时间内的滤波器系数变化。

Time Scope for visualization and measurement in time domain of multichannel signals.
多信道信号时域中用于可视化和测量的示波器。该图包括:光标测量和触发器(左上)、二值测量面板和超调量与下调量面板(右上)、峰值查找器测量(右下)和光标测量(左下)。

示波器会显示时域中的信号并支持各种信号 — 多信道 I/O 系统的连续、离散、固定大小、可变大小、浮点数据、定点数据以及 N 维信号。示波器还可以在相同轴上显示多个信号,其中每个输入信号具有不同维度、采样速率和数据类型,或在示波器窗口中的不同显示屏上显示多个数据信道上的多个信号。示波器可执行分析、测量和统计,包括均方根 (RMS)、峰峰值、平均值和中值。

Spectrum Analyzer for frequency-domain visualization and measurements of various multichannel signals.
用于各种多信道信号频域可视化和测量的频谱分析仪。该图显示:谐波失真测量(如 THD、SNR、SINAD、SFDR)(左上);邻信道功率比测量 (ACPR)(右上);时变频谱的频谱图(左下);峰值查找器和三阶交调失真测量 (TOI)(右下)。

频谱分析仪可计算各种输入信号的频谱,并以线性刻度或对数刻度显示其频谱。频谱分析仪可执行各种测量和分析,如谐波失真测量(THD、SNR、SINAD、SFDR)、三阶交调失真测量 (TOI)、邻信道功率比测量 (ACPR)、互补累积分布函数 (CCDF) 和峰值对平均值功率比 (PAPR)。频谱分析仪的频谱模式视图显示如何查看时变频谱并支持自动峰值检测。

DSP System Toolbox 提供可用于显示和测量各种信号或数据的附加可视化工具系列,包括实数值或复数值数据、矢量、数组和任何数据类型(包括定点、双精度或用户定义的数据输入序列)的帧。其中一些可视化工具可以显示流数据或信号的 3D 显示效果,以便您可以分析仿真停止前一段时间内的数据。

View of LMS adaptive filter weights on the array plot.
阵列图上 LMS 自适应滤波器权重的视图。运行本例时,您可以观察到为了适应滤去一个噪音输入信号的滤波器权重变化情况(左上)。逻辑分析仪显示时域信号中的转换情况(右上)。Vector Scope 模块显示一段时间内用户定义的数据输入序列中的当前帧数,随着每次接收新输入而自动递增计数,一直持续到仿真停止(右下)。Waterfall Scope 模块可同时显示多个数据矢量,表现声学消噪的连续采样时间的输出数据(左下)。

定点建模和仿真

可以将 DSP System Toolbox 与 Fixed-Point Designer 结合使用,来对定点信号处理算法进行建模并分析量化对系统行为和性能的影响。也可以从 MATLAB 代码或 Simulink 模型生成定点 C 代码。

可以针对定点运算模式配置该系统工具箱中的 MATLAB 系统对象Simulink 模块,从而可以通过在提交给硬件之前使用不同字长、比量、溢出处理和圆整方法选项运行仿真来执行设计权衡分析和优化。

许多 DSP 算法都支持定点模式,其中包括 FFT、滤波器、统计和线性代数。DSP System Toolbox 会为定点运算自动配置系统对象和模块。

FFT MATLAB System object and FFT Simulink block provisions.
FFT MATLAB 系统对象提供用于配置累加器、乘积和输出数据的定点数据类型规格的属性(左)。FFT Simulink 模块对话框提供用于累加器、乘积和输出信号的定点数据类型规格的选项(需要 Fixed-Point Designer)(右)。

定点滤波器设计

使用 DSP System Toolbox 中的滤波器设计函数和 Filterbuilder 应用能够设计浮点滤波器,并可以使用 Fixed-Point Designer 将其转换为定点数据类型。此设计流程简化了定点滤波器的设计和优化过程,并使您可以分析量化效应。

Fixed-point filter design analysis of quantization noise.
不满足滤波器设计约束条件并且 8 位字长导致阻带衰减不足(左)时的量化噪声的定点滤波器设计分析。使用不同系数字长进行实验,使用 12 位字长足够且满足滤波器设计约束(右)。

用于桌面和嵌入式工作流程的 C 和 C++ 代码生成

通过将 DSP System Toolbox 与 MATLAB Coder™Simulink Coder™ 一起使用,您可以分别通过 MATLAB 和 Simulink 中的信号处理算法和系统模型生成针对性能调优的 C 和 C++ 源代码或 MEX 函数。

生成的代码可以用于进行系统加速、快速原型建立、实现和部署,或用于在产品开发过程中对系统进行集成。

桌面加速

您可以生成有效、紧凑且针对性能调优的可执行代码、MEX 函数,以加速仿真过程中的计算密集型算法。可以加速 MATLAB 和 Simulink 中的浮点和定点算法,包括滤波器、FFT、统计以及线性代数

为了加速基于帧的流仿真,dspunfold 使用 DSP 展开在多个线程间以生成 MEX 函数的形式分发计算负荷。

独立执行和与其他环境集成

借助 DSP System Toolbox,通过生成可独立执行的算法程序,您还可以使用从 MATLAB 代码或 Simulink 模型生成的 C 代码实现桌面部署和原型建立。该独立的可执行程序仍然可以通过使用 UDP 组件直接在 MATLAB 或 Simulink 中实时调节。由于该独立的可执行程序在 MATLAB 代码或 Simulink 模型之外的线程上运行,因此,它会提高算法的实时性能。

生成的信号处理算法 C 代码可作为编译的库组件集成到其他软件(如自定义仿真器)中或标准建模软件(如 SystemC)中。

How to generate an MEX function tuned for performance from MATLAB.
如何通过 MATLAB 生成针对性能调优的 MEX 函数以加速桌面仿真。显示 3 频段音频参数均衡器函数的 MATLAB 代码示例(左),以及主要处理算法的等效 MEX 文件(右)。

针对 ARM Cortex 处理器优化的 C 代码生成

DSP System Toolbox 与 ARM Cortex-AARM Cortex-MEmbedded Coder® 硬件支持附加组件一起使用,可以从 MATLAB 系统对象或 Simulink 模块生成针对主要 DSP 算法(如 FFT、FIR 和双二阶滤波器)而优化的 C 代码。通过生成的 C 代码可以调用针对 ARM Cortex-A Ne10 库或 ARM Cortex-M CMSIS 库而优化的例程。相较于标准 C 代码,它的一项主要优势便是可以即刻提高性能。您还可以使用处理器在环 (PIL) 测试执行代码验证和剖析。

为 FPGA 和 ASIC 开发生成 HDL 代码

结合使用 DSP System Toolbox 与 MATLAB 中的 Filter Design HDL Coder™,您可以设计数字滤波器并生成有效的、可合成且可移植的 VHDL® 和 Verilog® 代码,用于 FPGA 或 ASIC 中的实现。还可以自动创建 VHDL 和 Verilog 测试平台,以仿真、测试和验证生成的代码。

DSP System Toolbox 与 HDL Coder™ 一起为系统设计提供了可合成并且可读的 VHDL 和 Verilog 代码生成功能。此类支持包括针对资源和性能优化的算法,如滤波器、FFTIFFTNCO

Generate HDL code for programmable FIR filter model.
为可编程的 FR 滤波器模型生成 HDL 代码。下图显示:Simulink 中用于 HDL 实现的可编程 FIR 滤波器模型(左上);通过寄存器子系统实现可编程的 FIR(右上);示波器显示滤波器输入和参考信号(右中);逻辑分析仪显示系数、写地址和使能信号以及滤波器输入和参考信号的(右下);以及从 Simulink 模型自动生成的 HDL 代码(左下)。