MATLAB IIR数字滤波器设计

首先我们要明白相关的概念。

数字滤波器设计采用角频率,如何与实际信号频率对应?

角频率w,采样频率fs ,实际信号频率f的转换关系为:

W = 2*pi* f / fs

采样频率的角频率为  2 *pi.

数字滤波器的指标,以低通为例【见下图】:

   

当我们设计的滤波器是带通的时候。其通带截止频率有两个,阻带截止频率也有两个。截止频率还有另外一个称谓,即边沿频率。

FIR 滤波器可以设计为线性相位,并且总是稳定的。在多数情况下,FIR滤波器的阶数 NFIR 显著大于具有等效幅度响应的IIR滤波器阶数NIIR。NFIR/NIIR 通常为10的量级或更高. IIR 滤波器通常计算更简便。 在很多应用中,并不要求滤波器具有严格的线性相位,在这些情况下,通常会因计算简便而选择IIR滤波器。例如在很多语音编码当中的滤波器很多都是IIR滤波器,均衡器一般也用IIR滤波器。也就是说对实时性要求不是很高的场合可以考虑使用FIR滤波器,当FIR滤波器阶数较长时,可以考虑用FFT去计算。

在设计IIR滤波器时,通常将数字滤波器的设计指标转化成模拟低通原型滤波器的设计指标,从而确定满足这些指标的模拟低通滤波器的传输函数Ha(s),然后再将它变换成所需要的数字滤波器传输函数G(z)。

上述滤波器设计的过程只需要了解其原理。借助于MATLAB强大的工具,滤波器的设计变得比较简单了。

在MATLAB命令窗口中键入fdatool, 你将启动滤波器设计的图形界面。你可以从simulink中直接选择数字滤波器控件而启动。

本文主要讲述IIR数字滤波器设计的方法。

对从麦克风进来的信号滤波。

假定我们要把50hz的电频干扰去掉,同时人说话的频率一般不会超过3400hz。我们设计一个带通滤波器,通带为【80-3200】,采样率为8k。

根据上面的需求,我们把相关的参数改成下面的界面:

单击 Design Filter,数秒之后显示如下:

可以看出:滤波器的阶数是36,还有一个 sections: 18. 由于在具体实现时一般是以2阶的级联或并联去实现的。所以实际上分为18个2阶节去实现。

36阶是系统计算出的满足需求的最小阶了。我们也可以自己事先制定阶数,参数如下:

这时,截止频率衰减参数已经没法选了,被固定为3分贝:

最终计算的幅度响应如下:

我们需要把设计的滤波器系数保存下来,以供其它程序调用。

MATLAB提供了直接导出系数的方法。

【targets】->【generate C header】

可以修改如下,选择【Generate】

在MATLAB工作目录下可以找到你生成的系数文件,大概是下面这个样子的:

这个文件让人看的不太懂。返回fdatool设计界面选择【Analysis->Filter coeffcients】:

系数界面与这个文件里面的数据是一致的。

认真观察上面这个界面里的数据,我们发现,文件里面的系数,实际上把它分成两个2阶节相乘的形式,其中还有增益。增益的目的是为了保证计算的精度和系统的稳定性。

选择【edit】->【convert to single section】,这时候系数变成我们熟悉的形式:

生成的系数C头文件如下:

指定阶数为2,重复上述步骤生成的IIR滤波器系数文件如下:

用Matlab的FDAtool生成IIR滤波器参数相关推荐

  1. [Matlab]IIR滤波器参数

    利用Matlab的filterbuilder生成IIR滤波器参数如下: >> filterbuilder The variable 'Hlp' has been exported to t ...

  2. 【老生谈算法】matlab实现巴特沃斯IIR滤波器程序设计源码

    matlab巴特沃斯IIR滤波器程序设计 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab巴特沃斯IIR滤波器程序 ...

  3. matlab低通滤波器库函数代码_利用Matlab filterDesigner 工具生成FIR滤波器函数,并调用实现低通滤波...

    本文使用的开发环境为:Win10 Matlab2018a 版本. 在matlab命令窗口输入:filterDesigner命令,即可打开filterDesigner设计工具. 按照下图调整FIR低通滤 ...

  4. butter滤波器是iir吗_学习随笔之IIR滤波器与FIR滤波器

    学习随笔之IIR滤波器与FIR滤波器 IIR滤波器(Infinite Impulse Response Digital Filter无限冲击响应数字滤波器)与FIR滤波器(Finite Impulse ...

  5. FPGA数字信号处理(六)直接型IIR滤波器Verilog设计

    该篇是FPGA数字信号处理的第六篇,2-5篇介绍了DSP系统中极其常用的FIR滤波器.本文将简单介绍另一种数字滤波器--IIR滤波器的原理,详细介绍使用Verilog HDL设计直接型IIR滤波器的方 ...

  6. iir matlab 系数,手把手教你用matlab生成STM32官方IIR滤波器的系数

    手把手教你用matlab生成IIR数字滤波器系数,然后用STM32实现数字滤波.非常实用有价值的资料. 手把手教你用 matlab 生成 STM32 官方 IIR 滤波器的系数(一) 本文采用的 ma ...

  7. matlab c语言 iir,Matlab下 IIR 滤波器实现(Simulink仿真和C语言实现)

    经典滤波器和现代滤波器 一般滤波器可以分为经典滤波器和现代滤波器. 经典滤波器:假定输入信号中的有用成分和希望去除的成分各自占有不同的频带.如果信号和噪声的频谱相互重迭,经典滤波器无能为力.比如 FI ...

  8. STM32开发笔记117:使用Matlab生成IIR低通滤波器系数

    文章目录 前言 一.登陆Matlab Online 二.使用步骤 1.起始界面 2.启动滤波器设计工具 3.响应类型 4.滤波器阶数 5.频率设定 6.生成滤波器 7.查看滤波器信息 8.转换为直接I ...

  9. [就酱的新征程]数字处理仿真与应用实验二:模拟低通 Butterworth 滤波器 IIR 滤波器(Matlab)

    @数字处理仿真与应用实验二:模拟低通 Butterworth 滤波器 IIR 滤波器(Matlab) 这学期数字处理仿真与应用实验的记录 不多说,进入正题吧~ 实验要求 利用模拟滤波器原型设计 IIR ...

  10. matlab iir滤波器设计 实验报告,基于MATLAB的IIR滤波器设计与实现

    由于电力系统中非线性电子元件的大量使用,使得谐波污染问题日益严重,当谐波含量超过一定限度时就可能对电网和用户造成极大的危害,且增加线路损耗,降低线路传输能力,干扰通信信号等.因此,应该积极寻找一种治理 ...

最新文章

  1. 如何确定软件测试结束的标准
  2. 支付宝蚂蚁森林合种树,2-4天领证,1/2号车满员,3号车成立
  3. vue js中报红_vue:我和node、webpack的情深似海
  4. 考研计算机组成原电路知识,2021考研计算机大纲408计算机组成原理部分原文解析...
  5. android 听筒播放声音
  6. 王道考研——计算机组成原理(第二章 数据的表示和运算)
  7. mfc让图片与按钮一起_MFC 基础知识:对话框背景添加图片和按钮Button添加图片...
  8. 关于Tensorflow安装opencv和pygame
  9. 漂亮的html页面源码_爬虫数据分析之html
  10. BZOJ2081 [Poi2010]Beads
  11. 2.4 表单数据的验证
  12. Atlas读写分离Mysql集群的搭建
  13. ModuleNotFoundError: No module named ‘yaml‘
  14. 《python编程》第五章——并行系统工具(上)
  15. UE4 粒子特效基础学习 (02-光晕效果制作)
  16. Vue项目中使用富文本编辑器
  17. 笔记本取消fn +功能键
  18. 解决保存的图片为CGI格式的问题
  19. java protected 构造方法_Java中protected语义解释
  20. 利用 IP 扩展访问列表实现应用服务的访问限制

热门文章

  1. 宿主机无法访问虚拟机web服务器,宿主机无法访问虚拟机中的docker容器怎么办_网站服务器运行维护,宿主机,虚拟机,docker...
  2. LeetCode 0799. 香槟塔
  3. php中怎么批量修改图片大小,怎么批量修改图片大小 光影魔术手批量处理图片...
  4. linux 两块硬盘合并成一块
  5. cas22112-84-1/5,10,15,20-四(4-氨基苯)-21H,23H-卟啉简称:H2TAPP; Tph
  6. java使用aspose打印pdf、word文件
  7. vue打开新html,vue在新窗口打开页面的方法
  8. JavaWeb学习-动态代理-2-invoke()方法和动态代理Waiter类练习
  9. 【树莓派】从零搭建DAS服务器,挂载扩容硬盘,实现文件存储与自动下载
  10. Minimum supported Gradle version is 6.7.1. Current version is 5.4.1. Please fix the project‘s Gradl