Matlab滤波器的设计

article/2025/10/22 18:21:16

在IIR滤波器设计过程中,通常利用模拟滤波器来设计数字滤波器,首先要根据滤波器的性能指标设计出相应的模拟滤波器的系统传递函数G(s),然后由传递函数G(s)经Z变换得到所需要的数字滤波器的离散型传递函数。常用的Z变换方法有冲激响应不变法和双线性变换法。这种方法比较麻烦。下面介绍使用MATLAB工具设计数字滤波器。

一 、Matlab滤波器的设计

  1. 首先,在MATLAB命令行中输入fdatool或者filterDesigner打开滤波器设计工具箱,如下图。为了便于分析,我们设计一个简单的Butterworth2阶低通滤波器。

  2. ResponseType用于选择低通、高通、带通、带阻等类型,这里选择低通滤波“Lowpass”。

  3. 图中Design Method用于选择IIR滤波器还是FIR滤波器,这里我们选择IIR滤波器,类型
    选择Butterworth,当然也可以选择其他类型。

  4. Fiter Order 选择滤波器阶数,这里选择一个2阶滤波。

  5. Frequency Specifications用于设置采样频率以及截止频率,这里填入200以及20,即采
    样率为200Hz,20Hz以上的频率将被滤除掉。

  6. 参数设置好后点击Design filter按钮,将按要求设计滤波器。默认生成的IIR滤波器类型
    是Direct-Form I SOS (可通过 Edit---->Convert Structure 选择)

  7. 在菜单栏上选择Analysis→Filter Coefficients可以查看生成的滤波器系数。
    Analysis→Magnitude and Phase Responses 查看幅频和相频响应。
    8:

  8. 默认情况下,Filter Coefficients把结果分成多个2阶Section显示,其中还有增益。增益的目的是为了保证计算的精度和系统的稳定性。选择[edit]→[Convert to Single Section],这时候系数变成我们熟悉的形式:
    在这里插入图片描述
    这个时候离散型传递函数的形式
    在这里插入图片描述
    注意z是降次排列的。按照上面的公式,滤波器差分方程为:y[n] = 0.06745x[n] + 0.1349x[n-1] + 0.06745*x[n-2] - (-1.14298)*y[n-1] - (0.4128)y[n-2]

二、滤波器效果的仿真验证

滤波器设计完成后还可以生成Simulink模型进行仿真:按照下图中数字标号进行

  1. 第一步点击左边Realize Model图标;
  2. 第二步勾选“Build model using basic elements”这一项,右边四个灰色的项将自动打钩;
  3. 最后点击“Realize Model”,matlab将自动生成滤波器模型,在弹出的窗口中双击模型可以观察该模型的内部结构。
    .在这里插入图片描述
    下面是按照设计要求生成的2阶滤波器直接Ⅰ型的结构:
    在这里插入图片描述
    使用生成的滤波器搭建一个简单的测试模型:将两个幅值为1,频率分别为10Hz、50Hz的正弦波叠加,输入滤波器后观察滤波前后的波形。仿真时间设为1s,仿真参数中求解器类型设为固定步长,求解器选择discrete(它适用于离散无连续状态的系统),步长设为0.005s(200Hz)
    在这里插入图片描述
    打开示波器结果如下图所示:有不同频率叠加的波形,10Hz正弦波和滤波后得到的波形的对比。由于50Hz正弦波频率高于滤波器截止频率20Hz,因此被滤除,同时滤波也产生了一定的滞后和失真。
    在这里插入图片描述
    知道了差分方程的形式就很容易写出相应的C代码来实现数字滤波了。

有时候在PMSM无感高频注入观测转子位置时,需要用到带通滤波器,如果注入的是1K的正
弦波。我们可以设置一个1K的Butterworth2阶带通滤波器。采样频率10K, 带通【0.95K~1.05K】如下图:
在这里插入图片描述
原文参考:https://blog.csdn.net/tap880507/article/details/78930469
Matab设计的滤波器和其他滤波器滤波效果对比:https://download.csdn.net/download/wanrenqi/85026379


http://chatgpt.dhexx.cn/article/6xDf3WRO.shtml

相关文章

[Matlab]巴特沃夫滤波器设计:低通、高通、带通和带阻(1)

[Matlab]巴特沃夫滤波器设计:低通、高通、带通和带阻-------(1) ​ 巴特沃斯滤波器(Butterworth filter)称作最大平坦滤波器。巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有纹波&#x…

基于MATLAB的Filter使用,低通、带通和高通滤波器的MATLAB程序分享

基于MATLAB的Filter使用,低通、带通和高通滤波器的MATLAB程序分享 完整程序如下: clear all close all clc %% Parameter Interface Frequence0 60; %单位:Hz Frequence1 130; %单位:Hz F…

MATLAB —— 低通滤波器设计与信号滤波

百度百科 - 简介: 低通滤波器是容许低于截止频率的信号通过, 但高于截止频率的信号不能通过的电子滤波装置。 (1)提取滤波器(系数矩阵) 打开工具: MATLAB - APP - Filter Designer 参数设置&am…

低通滤波-matlab低通滤波程序

本例程展示了信号处理中低通滤波的作用,首先生成一个高斯白噪声,然后对其进行低通滤波。低通滤波器的截止频率和Q值可以自己设定,得到低通滤波器的传输函数后,在经过双线性变换法得到其单位脉冲响应。滤波后对原始信号的频谱和滤波…

模拟和数字低通滤波器的MATLAB实现

转自:http://blog.sina.com.cn/s/blog_79ecf6980100vcrf.html 低通滤波器参数:Fs8000,fp2500,fs3500,Rp1dB,As30dB,其他滤波器可以通过与低通之间的映射关系实现。 %%模拟滤波器 %巴特沃斯——…

matlab低通滤波

低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频中的噪声。所以低通滤波的效果是图像去噪声平滑增强,但同时也抑制了图像的边界,造成图像不同程度上的模糊。 大于大小为MN的图像,频率点(u&…

基于MATLAB的filter的使用,低通、带通和高通滤波器设计

1、目的 学习MATLAB的filter函数的使用,通过设计低通、带通和高通滤波器对其进行仿真 2、用到的主要函数和工具 MATLAB、FDATOOL、filter、fft 3、设计 信号的产生 %% Parameter Interface Frequence0 60; %单位:Hz Frequenc…

Matlab中的滤波器

在matlab中我们需要生成滤波器时,可以使用matlab中自带的工具。 在matlab命令窗口中输入filterDesigner,出现下列窗口。 在这里根据需要设计自己所需要的滤波器即可。 设计完滤波器之后如果我们想要以函数的方式使用我们的滤波器,那么我们可…

【DSP教程】第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻)

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻) 本章节讲解FIR滤波器的Matlab设计。主要是函数fir1和fir2的使用。 目录 36.1 窗函数 36…

1.巴特沃斯模拟滤波器(低通,高通,带通,带阻)设计-MATLAB实现

本文是模拟滤波器设计,如果需要了解数字滤波器的内容,可以按顺序看我写的另外两篇博客,如下: 2.MATLAB实现无限脉冲响应数字滤波器(IIR) 3.MATLAB实现有限脉冲响应数字滤波器(FIR)…

matlab设计模拟带通滤波器

简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。 代码如下: %设计带通滤波器 %巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型滤波器clear all;%wp和ws分别是通…

学习如何在matlab用带通滤波器进行滤波

如何在matlab用带通滤波器进行滤波? 主要内容是在知乎上看到的一篇文章 链接: https://zhuanlan.zhihu.com/p/152647067?from_voters_pagetrue.可以直接看这篇文章。 以带通滤波器——巴特沃斯滤波器为例 matlab给出的代码如下:[n,Wn] buttord(Wp,W…

matlab设计低通滤波器

matlab设计低通滤波器 文章目录 matlab设计低通滤波器 前言一、什么是滤波器?二、滤波器的技术指标三、滤波器的分类四、巴特沃斯低通滤波器设计1.输入信号设置2.设计滤波器3.滤波器输出信号 五、采用ADI公司的滤波器向导设计滤波器 前言 例如:随着人工…

matlab实现低通、高通、带通、带阻滤波

MATLAB滤波常用函数 模拟滤波器阶数选择函数 buttord 功能:计算butterworth模拟滤波器的阶数 调用格式: [n,Wn]buttord(Wp,Ws,Rp,Rs,s); % 参数中的n是求出模拟滤波器最小的阶数,Wn是等效低通滤波器的截止频率;Wp和Ws分别是通…

matlab制作数字滤波器(带通滤波器)

一、目的 使用matlab中自带的工具fdatool制作带通滤波器,对数据进行滤波。 二、过程 如图,使用该工具制作了一个带通滤波器,频率为130-180Hz,使用汉明窗截短,滤波器的阶数为250。 滤波器的冲击响应如下图 将生成的滤…

matlab实现带通滤波

以带通滤波器——巴特沃斯滤波器为例 matlab给出的代码如下:[n,Wn] buttord(Wp,Ws,Rp,Rs) 首先要先理解一个带通滤波器的幅频特性图中,分为通带、阻带、过渡带三大部分。 通带截止频率和阻带截止频率对这三部分进行划分,二者之间的部分即…

PTAM算法流程介绍

相关工作:1、摄像机校正 2、特征提取(FAST角点特征、扭曲图像的直线特征优化) 3、极线几何与极线搜索 4、RANSAC(随机采样一致)及N点算法(主要围绕5点算法) 5、Bundle Adjustment(光…

智能优化算法、智能控制算法、多目标优化、MPPT、无功优化

一、主题 matlab,python等智能优化算法、智能控制算法、多目标优化、MPPT、无功优化、机器学习类程序,可提供指导。 二、主要领域 开关电源、最大功率点跟踪(恒电压法、电导增量法、爬山法、智能算法等)、并网逆变器控制、多目…

【图】普利姆算法(prim算法)基本思想

一、prim算法基本思想: 假设G=(V,E)是连通的,TE是G上最小生成树中边的集合。算法从U={u0}(u0∈V)、TE={}开始。重复执行下列操作: 在所有u∈U,v∈V&#xf…

MP算法与OMP算法讲解一

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/ice110956/article/details/18403789 稀疏编码的一般最优化公式为: 其中的零范数为非…