手把手教你用matlab生成STM32官方IIR滤波器系数

手把手教你用 matlab 生成 STM32 官方 IIR 滤波器的系数(一)
本文采用的 matlab 版本为 R2008a,芯片采用 stm32f103v。 先回顾一下数字信号处理和 IIR 滤波器的相关知识。 数字信号处理是用数字序列来研究系统的一门技术,不同于模拟信号,数字信号处理起 来更加灵活,不仅可以处理一维信号,还可以处理二维、三维以上的信号。这门技术应用非 常广泛,如生物医学、声学、雷达、语音通信、数据通信等都采用了数字信号处理技术。 在数字信号处理技术中经常用的一种算法叫 IIR 滤波器,这种滤波器可以设计成带通、 低通和高通滤波,在设计原型上有 butterworth 函数、chebyshev 函数、bessel 函数、椭圆 滤波器函数。IIR 数字滤波器是一种递归型线形时不变因果系统,其差分方程可以写成
结构补强式中 x 表示输入系列,y 表示输出序列。通过 z 变换,可以得到传递函数
由差分方程可以直接得到下面的信号流图
以上这种形式叫做直接形式 I,对应 matlab 中 IIR 滤波器结构选项的 Direct-Form I,SOS。注:matlab 中在命令行输入 FDAtool 可以打开滤波器设计 GUI 界 面,在 Edit 菜单栏选项下有“”选项,点击后可以选择滤波器 结构。我们假设设计一个直接 I 型的 1 阶滤波,首先选择滤波器结构第一项” Direct-Form I,SOS”,然后将模型实现,点击”Relize Model“,大家又没有发现这个 结构和上图的流程图很相似,只要把流程图改为 1 阶,那么和下面这个图就是一样的了。
在线形非移变系统情况下,级联系统的总输入-输出关系和子系统级联的次序无关, 根据这一特性,将 y(n)部分与 x(n)部分交换可以得到滤波器的第二种直接形式。
博客圈由于此时 z-1 支路的输入相等,因此可以将这两路合并,这样简化流图后得到滤波 器的直接形式 II。
更一般的,采用级联的二阶形式(这也是 matlab 和 STM32 官方库中采用的形式)信号 流图如下(2 级级联)
林州地震以上这种结构就是以后在设计和实现时采用的流图,我们将按照图中的 a11、b22 来确定 STM32 官方 IIR 滤波器的滤波系数。(未完待续,转载自 ukey)
手把手教你用 matlab 生成 STM32 官方 IIR 滤波器的系数(二)
本节主要介绍如何使用 matlab2008 生成 IIR 数字滤波器系数。 一、在 matlab 上设计一个高通滤波 打开 matlab 程序之后,在命令行窗口输入“fdatool”,弹出滤波器设计对话框如图6
nas1638图6.matlab 中 fdatool 滤波器设计 为了便于分析,我们先从设计一个简单的一级 2 阶高通滤波器开始,按照下图中的步骤 进行。 1.Design Method 用于选择 IIR 滤波器还是 FIR 滤波器,这里我们选择 IIR 滤波器,类 型选择 Chebyshev Type I,当然你也可以选择其他类型,不同类型的频率响应不同,选择 后默认的滤波器结构是直接 II 型,如图7中的蓝框所示。 2.ResponseType 用于选择低通、高
通、带通以及陷波,选择高通滤波“Highpass”, 这里我们选择高通滤波用于滤出 300HZ 以下的工频频率。
3.Fiter Order 选择阶数,为了使用 STM32 官方库给的程序,这里需要填入偶数,为了 简单起见,先选择一个 2 阶滤波器做实验。
4.Frequency Specifications 用于设置采样频率以及截止频率,这里填入 8000 以及 300,也就是采样率是 8KHz,300Hz 以下的频率都不能通过。
终身制>铝合金牺牲阳极
5.点击“Design Filter”,matlab 将生成一个按照以上参数设计的滤波器,点击图中 数字 6 的图标,可以在坐标框中看到该滤波器的幅频响应,正如图中所示,频率在 300Hz 以下的信号将被滤除。

本文发布于:2024-09-22 17:24:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/66635.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数字   选择   设计   结构   采用   系统
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议