MATLAB 信号处理:了解要设计的 FIR 滤波器的阶数

问题描述 投票:0回答:1

出于教学目的,我想创建一个低通 FIR 滤波器(任何类型,等波纹都可以),将“omega1”频率(例如:0.3 rad/s,归一化)衰减至少 80 dB。

我知道对于 IIR 巴特沃斯滤波器,有一个名为“buttord”的函数,它通过知道以下内容来计算 IIR 滤波器所需的截止频率和最小阶数:

  1. 通带边缘
  2. 阻带边缘
  3. 通带中允许的最大纹波
  4. 阻带内允许的最大纹波

我正在寻找类似的 FIR 滤波器,以便通过 fir1 或 firpm 函数计算滤波器系数。 我设法使用 MATLAB 的 filterDesign 图形工具设计滤波器,但我正在尝试通过代码脚本完全设计滤波器。

matlab filtering signal-processing
1个回答
0
投票

1. 打开 MATLAB

filterDesigner
应用程序

在 MATLAB 命令提示符下键入

filterDesigner

并设计您的滤波器但不要使用零极点编辑器

定义上面80dB频率陷波的模板即可。

如果尚未安装

filterDesigner
应用程序,请直接从 MATLAB 内部可用的 MATLAB 应用程序商店安装,而不是从 Google Play 或 Apple Store 等外部应用程序商店安装。

2. 过滤器准备好后打开

文件 > 生成 MATLAB 代码 > 滤波器设计函数

MATLAB 可以节省您的精力,并在函数内自动生成您需要的所有代码。

如果不需要函数,只需在生成的函数中取出所需的代码行即可

filterDesigner 还可以将您的设计导出到 SIMULINK 模块和 C 函数。

MATLAB

filterDesigner
为您生成 C 代码,请在此处查看更多详细信息:

https://uk.mathworks.com/help/signal/ug/getting-started-with-filter-designer.html

© www.soinside.com 2019 - 2024. All rights reserved.