主要内容

Lowpass Filter

设计 FIR 或 IIR 低通滤波器

  • Lowpass Filter block

库:
DSP System Toolbox / Filtering / Filter Designs

描述

Lowpass Filter 模块使用由模块参数指定的滤波器设计,随时间对输入信号的每个通道独立进行滤波。您可以使用滤波器类型参数控制该模块是实现 IIR 还是 FIR 低通滤波器。您可以以 Hz 为单位或以归一化频率单位 (自 R2023a 起)指定通带和阻带边缘频率。

此模块支持 ARM® Cortex® 代码生成。在某些条件下,此模块还支持 SIMD 代码生成。有关详细信息,请参阅代码生成

示例

全部展开

使用 Lowpass Filter 模块对正弦信号进行低通滤波。在频谱分析仪中绘制原始信号和滤波后信号的频谱。

打开并检查 LowpassFilterSinusoid.slx 模型。输入是具有 1 kHz 和 15 kHz 音调的含噪正弦信号。输入信号的采样率为 44.1 kHz。添加的噪声为高斯白噪声,均值为 0,方差为 0.05。

低通滤波器是一个最小阶滤波器,其通带边缘频率为 8 kHz,阻带边缘频率为 12 kHz。在模块对话框中指定输入信号的采样率。

运行模型并在频谱分析仪中查看滤波后的输出。1 kHz 的音调不受影响,而 15 kHz 的音调发生了衰减。

从采样率固定但未知的音频信号中滤除 5 kHz 以上的所有频率。

打开并检查 LowpassFilterAudioSignal.slx 模型。输入是其采样率未知的语音信号。Lowpass Filter 模块具有 5 kHz 的通带边缘频率。模块对话框中的采样率模式参数默认设置为 Inherit from input port,因此该模块从其输入端口继承语音信号的采样率。

运行模型。在频谱分析仪中查看输入信号和滤波后输出的频谱。

对其采样率和帧大小在仿真期间变化的正弦信号进行低通滤波。

打开并检查 LowpassFilterVarSizeSinSignal.slx 模型。输入可以是两个正弦信号之一。第一个正弦信号是 1 kHz 正弦波,采样率为 44100 Hz,帧大小为 256。第二个正弦信号是 10 kHz 正弦波,采样率为 22050 Hz,帧大小为 128。这两个信号的帧周期相同(256/44100 或 128/22050)。有关采样率和帧周期的详细信息,请参阅Sample- and Frame-Based Concepts。使用手动开关,您可以控制哪个正弦波是 Lowpass Filter 模块的输入。

由于输入采样率在仿真期间会发生变化,因此请以归一化频率单位指定 Lowpass Filter 模块的频率设定。为此,请将 Lowpass Filter 模块对话框中的采样率模式参数设置为 Use normalized frequency (0 to 1)。现在将低通滤波器的通带边缘频率设置为 0.5(采用归一化频率单位)。

运行模型。在频谱分析仪中查看输入和滤波后输出的频谱。

这是当您选择第二个正弦信号时的滤波后输出。

扩展示例

端口

输入

全部展开

输入信号,指定为实数值或复数值列向量或矩阵。如果输入信号是矩阵,则该矩阵的每列被视为一个独立通道。输入信号中的行数表示通道长度。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
复数支持:

输出

全部展开

滤波后的信号,以向量或矩阵形式返回。输出具有与输入相同的大小、数据类型和复/实性特征。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
复数支持:

参数

全部展开

主要

指定该模块是实现 FIR 低通滤波器还是 IIR 低通滤波器。

当您选中此复选框时,此模块设计一个具有最小阶且指定了通带、阻带频率、通带波纹和阻带衰减的滤波器。

当您清除此复选框时,您可以将滤波器阶数指定为正整数。

将低通滤波器的阶数指定为正整数。

依赖关系

要启用此参数,请清除设计最小阶滤波器复选框。

以 Hz 为单位或以归一化频率单位 (自 R2023a 起)将低通滤波器的通带边缘频率指定为正实数标量。

如果您将采样率模式参数设置为:

  • 在对话框上指定从输入端口继承 - 通带边缘频率的值以 Hz 为单位,且必须小于输入采样率值的一半。

  • 使用归一化频率(0 到 1) - 通带边缘频率的值采用归一化频率单位。该值必须为小于 1.0 的正标量。

(自 R2023a 起)

以 Hz 为单位或以归一化频率单位 (自 R2023a 起)将低通滤波器的阻带边缘频率指定为正实数标量。

如果您将采样率模式参数设置为:

  • 在对话框中指定从输入端口继承 - 阻带边缘频率的值以 Hz 为单位,且必须小于输入采样率值的一半。

  • 使用归一化频率(0 到 1) - 阻带边缘频率的值采用归一化频率单位。该值必须为小于 1.0 的正标量。

(自 R2023a 起)

依赖关系

要启用此参数,请选中设计最小阶滤波器复选框。

将通带中的滤波器响应的最大波纹指定为正实数标量(以 dB 为单位)。

将阻带中的最小衰减指定为正实数标量(以 dB 为单位)。

自 R2023a 起

使用以下选项之一指定输入采样率:

  • 使用归一化频率(0 到 1) - 以归一化频率单位(0 到 1)指定通带边缘频率和阻带边缘频率。

  • 在对话框上指定 - 使用输入采样率(Hz) 参数在模块对话框中指定输入采样率。

  • 从输入端口继承 - 模块从输入信号继承采样率。

将输入采样率指定为标量(以 Hz 为单位)。

依赖关系

要启用此参数,请将采样率模式参数设置为在对话框上指定 (自 R2023a 起)

打开滤波器可视化工具 (fvtool) 并显示 Lowpass Filter 的幅值和相位响应。响应基于模块对话框参数。对这些参数所做的更改会更新 FVTool。

要在 FVTool 运行时更新幅值响应,请修改对话框参数并点击应用

要运行的仿真的类型:

  • 解释执行(默认值)

    使用 MATLAB® 解释器对模型进行仿真。此选项会缩短启动时间,但仿真速度比代码生成慢。

  • 代码生成

    使用生成的 C 代码对模型进行仿真。第一次运行仿真时,Simulink® 会为该模块生成 C 代码。只要模型不变,C 代码就会在后续仿真中重用。此选项会增加启动时间,但仿真速度比解释执行更快。

数据类型

输出定点运算的舍入方法。

系数的定点数据类型,指定为以下项之一:

  • fixdt(1,16) - 字长为 16 且具有二进制小数点定标的有符号定点数据类型。模块根据系数值自动确定小数长度,以使系数占据最大可表示范围而不发生溢出。

  • fixdt(1,16,0) - 字长为 16 且小数长度为 0 的有符号定点数据类型。您可以将小数长度更改为任何其他整数值。

  • <数据类型表达式> - 使用计算结果为数据类型对象的表达式指定数据类型,例如,数值类型 (fixdt([ ],16, 15))。将此数据类型的符号模式指定为 [ ]true

  • Refresh Data Type - 刷新为默认数据类型。

点击显示数据类型助手按钮 以显示数据类型助手,它可帮助您设置数据类型。有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

模块特性

数据类型

double | fixed point | integer | single

直接馈通

多维信号

可变大小信号

过零检测

算法

全部展开

扩展功能

全部展开

版本历史记录

在 R2015b 中推出

全部展开