在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. 默认情况下,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

Matlab的数字滤波器设计(IIR FIR)相关推荐

  1. Matlab数字滤波器设计实践—FIR

    Matlab数字滤波器设计实践-FIR 1低通滤波器设定 在理想情况下,低通滤波器使信号中低于指定截止频率 ωc 的所有频率分量保持不变,并拒绝高于 ωc 的所有分量.由于实现理想低通滤波器所需的脉冲 ...

  2. matlab设计长度为50的滤波器,实验5 基于Matlab的数字滤波器设计

    实验五 基于Matlab 的数字滤波器设计 实验目的:加深对数字滤波器的常用指标和设计过程的理解. 实验原理:低通滤波器的常用指标如下所述,其典型规格如下: ?? ????????≤≤≤≤+≤≤-πδ ...

  3. 实验matlab滤波器心得,实验报告基于MATLAB的数字滤波器设计

    <实验报告基于MATLAB的数字滤波器设计>由会员分享,可在线阅读,更多相关<实验报告基于MATLAB的数字滤波器设计(5页珍藏版)>请在人人文库网上搜索. 1.实验78 基于 ...

  4. 基于matlab数字滤波器设计,毕业设计 基于MATLAB的数字滤波器设计

    毕业设计 基于MATLAB的数字滤波器设计,共55页,19284字 摘 要 本文分别研究了在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方法及实现方法,并进行图形用户界面设计,以显示本文 ...

  5. 基于MATLAB的数字滤波器设计

    数字滤波技术是数字信号处理的一个重要组成部分,滤波器的设计是信号处理的核心问题之一.根据FIR滤波器的原理,提出了FIR滤波器的窗函数设计法,并对常用的几种窗函数进行了比较.给出了在MATLAB环境下 ...

  6. iir matlab 带通,基于Matlab的带通IIR数字滤波器设计与仿真

    1引言数字滤波技术是数字信号分析.处理技术的重要分支[1].无论是信号的获取.传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输是至关重要的.在所有的电子系统和各类控制系统中 ...

  7. 基于matlab fir数字滤波器设计 程序流程图,实验五:FIR数字滤波器设计与软件实现...

    实验五:FIR 数字滤波器设计与软件实现 一.实验目的 (1)掌握用窗函数法设计FIR 数字滤波器的原理和方法. (2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法. (3)掌握FIR 滤 ...

  8. matlab数字滤波器设计函数汇总(转载)

    这篇博客是[1][2]的整合 分类 函数名 功能说明 滤波器的分析(幅频/相频) abs 求绝对值(幅值) angle 求相角 conv/conv2 求卷积/二维卷积 fftfilt 利用重叠相加法的 ...

  9. fir1截止频率计算_数字信号处理 实验五:FIR数字滤波器设计与软件实现

    10.5 实验五:FIR数字滤波器设计与软件实现 10.5.1 实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法. (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和 ...

最新文章

  1. LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  2. Jenkins与Docker的持续集成实践
  3. 剑指Offer——Java答案
  4. php后台无法登入,PHP magento后台无法登录问题解决方法
  5. SM12表条目冻结说明
  6. asp.net运行机制
  7. UnityShader RenderTypeQueue 渲染顺序
  8. 对CORS OPTIONS预检请求的一些思考
  9. aws lambda_跑来跑去:假人与AWS Lambda的第一次接触
  10. web前端细解cookie那些事
  11. Mac homebrew报错Error: homebrew-core is a shallow clone.
  12. 解决Win7下JMF读取摄像头错误
  13. 爱克发胶片_AGFA爱克发C7工业X射线胶片 工业胶片(图)
  14. C语言sb代码,10个重要的算法C语言实现源代码
  15. 素数/质数/合数的定义
  16. 电影天堂爬去示例基础2
  17. ENSP和虚拟机如何连接
  18. python全国计算机,加入 Python 科目,全国计算机等级考试迎来新调整
  19. 一直都在用的rgba与hex颜色系统你了解过吗?
  20. 心理危机干预系统简介

热门文章

  1. 如何使用 Sublime Text 编辑器?从入门到精通(图文系列一)
  2. 7-6 聪明的高斯(简)
  3. 用lwip发送大量数据时,遇到的问题解答记录
  4. 小程序手动设置缓存时间
  5. 数据结构在软件编程中的地位
  6. ArcGIS在城乡规划中的应用【2】——ArcScene三维地形展示
  7. 【NLP学习笔记】文本相似度计算——判断两篇文章是否相似
  8. 100天机器学习(100-Days-Of-ML)day3多元线性回归及虚拟变量陷阱分析
  9. 使用vw或者rem进行移动端适配
  10. echarts自定义下载图表