DSP System Toolbox

 

DSP System Toolbox

对流信号处理系统进行设计和仿真

开始:

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

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

使用 System object 的 MATLAB 程序可通过 MATLAB Function 模块或 MATLAB System 模块合并到 Simulink 模型中。大多数 System object 都对应具有相同功能的 Simulink 模块

嵌入式系统中基于帧的处理

基于帧的操作,在每个中断服务例程之间采集一帧,每帧采样数为 16,可以看到,基于帧的吞吐率相比基于采样高出许多倍。

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

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

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

  • 信号变换,如快速傅立叶变换 (FFT)、离散余弦变换 (DCT)、短时傅立叶变换 (STFT) 和离散小波变换 (DWT)
  • FIR、IIR 和模拟滤波器的滤波器设计和实现
  • 用于采样率转换的多速率和多级滤波器,如CIC、半带、多相和 Farrow
  • 用于频谱估计、均衡和噪声抑制的统计和自适应信号处理技术
  • 信号操作和测量,如卷积、加窗、填充、延迟、峰值查找和过零
  • 使用时域示波器、频谱分析器等工具进行的流信号可视化和测量
  • 信号管理方法,如缓冲、索引、切换、堆栈和队列
  • 接收端和发送端,如线性调频和有色噪声生成器、NCO、UDP 接收机和发射机等
  • 数值线性代数例程,包括线性方程组求解器、矩阵分解和矩阵求逆
Simulink 的信号处理模块库

Simulink 中的 DSP System Toolbox 信号处理模块库(上),以及线性方程组求解器(左下)和变换(右下)的扩展视图。

多速率系统建模

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

用于 Sigma-Delta ADC 的多级抽取器

用作 Sigma-Delta 模数转换器的多级抽取滤波器的 Simulink 模型

MATLAB 中的流信号处理

DSP System Toolbox 为 MATLAB 中的流信号处理提供框架。该系统工具箱带有一个针对流信号处理进行优化的信号处理算法库,涉及单速率和多速率滤波器、自适应滤波器和 FFT。该系统工具箱是您设计、仿真和部署信号处理解决方案的理想选择,适用于音频、生物医学、通信、控制、地震、传感器和语音等多种应用领域。

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

流信号处理依托于一个 DSP 算法组件库,这些组件属于 System object™,可表示数据驱动算法、发送端和接收端。System object 可通过自动执行数据索引、缓冲和算法状态管理等任务来帮助您创建流应用程序。您可以将 MATLAB System object 与标准 MATLAB 函数及运算符混合使用。

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

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

MATLAB 中的流信号处理

MATLAB 代码实现基本流循环(左)。时域示波器(右上)和频谱分析器(右下)在实时信号生成和处理的同时对其进行可视化和测量。

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

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

在 MATLAB 中,该系统工具箱包含以下类型的算法:

  • 信号变换,如快速傅立叶变换 (FFT)、离散余弦变换 (DCT)
  • 用于数字 FIR 和 IIR 滤波器的设计和实现方法
  • 用于采样率转换的多速率和多级滤波器,如 FIR 和 IIR 半带、多相滤波器、CIC 滤波器和 Farrow 滤波器
  • 用于频谱估计、均衡和噪声抑制的统计和自适应信号处理方法
  • 信号操作和测量,如卷积、加窗、填充、建模延迟、峰值查找和可变分数延迟
  • 运行时信号可视化,借助时域示波器、频谱分析器和逻辑分析器实现
MATLAB 中的流信号处理库

MATLAB 中提供的部分信号处理算法,可由命令行帮助显示,也可通过 Tab 键自动填充查找。

多速率系统

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

三级 DDC 设计分析

多级数字下变频器的各级频率响应

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

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

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

您也可以设计可调滤波器,以在运行时调节带宽和增益等滤波器关键参数。

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

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

自适应滤波器

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

在仿真声学降噪系统模型的同时,对归一化 LMS 自适应滤波器的动态响应进行可视化

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

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

单级和多级滤波器设计

使用 fvtool 查看等波纹设计的响应与对应的多速率和多级设计的响应(左),并绘制输入和两种输出的功率谱密度图以反映的多速率和多级设计性能(右)。

信号示波器、分析器和测量工具

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

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

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

时域示波器在时域中显示信号,它支持各种信号,包括连续、离散、固定大小、可变大小、浮点数据、定点数据以及多信道 I/O 系统中的 N 维信号。时域示波器支持同时显示多个信号,可以是在同一坐标轴上显示具有不同维度、采样率和数据类型的多个信号,也可以是在示波器窗口中以不同画面分别显示各个数据信道上的信号。时域示波器可执行分析、测量和统计功能,包括均方根 (RMS)、峰间值、均值和中位数。

Time Scope 中用于波形测量的数据游标

在 Time Scope 中使用数据游标测量波形的两点之间的时间和幅值差。

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

DSP System Toolbox 还提供一系列可视化工具,可用于显示和测量各种信号或数据,包括实数值或复数值数据、向量、数组和任意数据类型(包括定点、双精度或用户定义的数据输入序列)的帧。其中一些可视化工具提供流数据或信号的三维显示,以便您持续分析数据直至仿真停止。

频谱分析仪测量

将非线性放大器模型应用于 chirp 信号,测量生成的频谱峰值的频率和功率。

定点建模和仿真

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

可以在该系统工具箱中针对定点运算模式配置 MATLAB System object 和 Simulink 模块,以便事先使用不同字长、定标、溢出处理和舍入方法选项运行仿真来执行设计权衡分析和优化,之后再提交给硬件。

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

定点数据类型的 FFT 属性

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

定点滤波器设计

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

定点滤波器设计和分析

定点滤波器设计的量化噪声分析,此处未满足滤波器设计约束,且 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)中。

针对 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) 测试来执行代码验证和性能分析。

为 FPGA 和 ASIC 开发生成 HDL 代码

您可以在 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 提供的模块。

部分串行脉动 FIR 滤波器结构

用于验证可编程 FIR 滤波器的硬件模型的逻辑分析仪。