2026a

# 滤波器可视化工具


显示和分析滤波器响应以及系数

# 描述

滤波器可视化工具(以下简称为 FVTool)是一个能够显示和分析滤波器响应以及系数的交互式应用程序。

通过此应用程序,您可以查看:

  • 幅值响应

  • 相位响应

  • 群延迟响应

  • 相位延迟响应

  • 冲激响应

  • 阶跃响应

  • 零极点图

  • 滤波器系数

有关各滤波器响应类型的详细信息,请参见分析类型

FVTool 的具体功能说明请参见滤波器可视化工具快速入门

# 启动方式

FVTool 可以使用编程使用中描述的任意一种方法以指令方式启动。

提示

相比于单机版滤波器可视化工具,Online 版滤波器可视化工具暂不支持输入复数类型的滤波器系数。

# 语法


import TyFVTool; TyFVTool.fvtool(b, a)
import TyFVTool; TyFVTool.fvtool(b1, a1, b2, a2, ..., bN, aN)
import TyFVTool; TyFVTool.fvtool(sos)
import TyFVTool; TyFVTool.fvtool(sos1, sos2, ..., sosN)
import TyFVTool; TyFVTool.fvtool(Hd)
import TyFVTool; TyFVTool.fvtool(___; Name = Value) 

# 编程使用


fvtool(b,a)

fvtool(b,a) 启动 FVTool 并显示分子 b 和分母 a 所定义的数字滤波器的幅值响应。指定的系数 b 和 a 以 z-1 的幂次升序排列。

fvtool(sos)

fvtool(sos) 启动 FVTool 并显示由 L 乘 6 的二阶节矩阵定义的数字滤波器的幅值响应。节数 L 必须大于或等于 2 。如果节数小于 2, FVTool 会将输入认定为一个分子向量。

fvtool(Hd)

fvtool(Hd) 启动 FVTool 并显示滤波器对象 Hd 所定义的数字滤波器的幅值响应。当前支持 TyDSPSystem.dsp_FIRFilter、TyDSPSystem.dsp_BiquadFilter、TyDSPSystem.dsp_IIRFilter、TyDSPSystem.dsp_SOSFilter、TyDSPSystem.dsp_CICCompensationDecimator、TyDSPSystem.dsp_CICCompensationInterpolator、TyDSPSystem.dsp_CICDecimator、TyDSPSystem.dsp_CICInterpolator 八种类型的滤波器对象,暂不支持传入多个模型绘制。

fvtool(b1, a1, b2, a2, ..., bN,aN)

fvtool(b1, a1, b2, a2, ..., bN, aN) 启动 FVTool 并显示分子为 b1, b2, ..., bN 分母为 a1, a2, ..., aN 的多个数字滤波器的幅值响应。

fvtool(sos1, sos2 , ..., sosN)

fvtool(sos1, sos2, ..., sosN) 启动 FVTool 并显示以二阶节矩阵 sos1,sos2, ..., sosN 所定义的多个数字滤波器的幅值响应。

fvtool(___; Name = Value)

fvtool(___; Name = Value) 指定一个或多个附加名称值参数,关键字参数 Analysis 可指定默认显示的滤波器响应,详细信息,请参见初始化绘图;关键字参数 Fs 可指定启动滤波器可视化工具时采用的默认采样率。

# 示例


椭圆滤波器的幅值响应

设计一个 6 阶椭圆滤波器,其通带波纹为 3 dB,阻带衰减为 50 dB,采样率为 1 kHz,归一化通带边缘为 300 Hz。显示该滤波器的幅值响应。

using TySignalProcessing
import TyFVTool
b, a = ellip(6, 3, 50, 300 / 500)
TyFVTool.fvtool(b, a)
低通切比雪夫 I 型滤波器

设计一个 6 阶低通 Chebyshev I 型滤波器,通带纹波为 10 dB,通带边缘为 300 Hz,并将其转化为二阶节形式。绘制该滤波器的幅值响应。

using TySignalProcessing
import TyFVTool
Fc = 300
Fs = 1000
b, a = cheby1(6, 10, Fc / (Fs / 2))
sos = tf2sos(b, a; g_flag = false)
TyFVTool.fvtool(sos)
高通最小阶 Butterworth 滤波器对象
设计一个高通最小阶 Butterworth 滤波器对象,其通带波纹为 1 dB,阻带衰减为 80 dB,采样率为 48 kHz,通带边缘为 12000 Hz, 阻带边缘为 9600 Hz。绘制该滤波器的幅值响应和相位响应。
using TyDSPSystem
import TyFVTool
Fs = 48000
Fstop = 9600
Fpass = 12000
Astop = 80
Apass = 1
match = "stopband"
h  = fdesign_highpass(Fstop, Fpass, Astop, Apass, Fs)
Hd = design(h, "butter", "MatchExactly", match, "SystemObject", true)
TyFVTool.fvtool(Hd; Analysis = "freq")

# 通过 GUI 控制 FVTool

通过工具栏上的按钮显示和分析一个或多个数字滤波器的响应。

  • 默认情况下,FVTool 显示一个数字滤波器的幅值响应。要更改显示,请从菜单栏或工具栏的分析部分的按钮中选择对应选项;

  • 如需调整视图设置、分析参数或指定采样频率,请使用菜单栏或工具栏上相应按钮。此外您还可以切换图例和网格的显示状态。

# 分析类型

FVTool 有以下分析类型:

分析 描述
幅值响应 要查看零相位响应,在分析参数界面中,将幅度显示选择为零相位
详细信息,请参见 freqzzerophase
相位响应 详细信息请参见 phasez
幅值响应和相位响应 将幅值响应和相位响应相互叠加;
详细信息,请参见 freqzphasez
组延迟响应 群延迟响应反映滤波器的平均延迟;
详细信息请参见 grpdelay
相位延迟响应 相位延迟响应反映滤波器加在输入信号各分量上的时间延迟;
详细信息,请参见 phasedelay
冲激响应 冲激响应是滤波器对脉冲输入的响应;
详细信息,请参见 impz
阶跃响应 阶跃响应是滤波器对阶跃输入的响应;
详细信息,请参见 stepz
零极点图 零极点图显示了滤波器在 z 平面上极点和零点的位置;
详细信息,请参见 zplane
滤波器系数 系数取决于滤波器结构;
该应用程序在文本框中显示滤波器系数。对于二阶节形式的滤波器将会对其每一节做单独显示。

# 另请参阅

滤波器可视化工具快速入门