当前位置:首页 » 《随便一记》 » 正文

Matlab Simulink设计滤波器

13 人参与  2023年03月29日 15:56  分类 : 《随便一记》  评论

点击全文阅读


项目需求,制作滤波器,MATLAB先仿真,以下为记录做了修改,不涉及公司项目信息。

一、Matlab设计滤波器
Matlab牛逼之处就不多说了,使用Matlab设计20-200hz带通滤波器过程如下:
1.首先设计一个滤波器:打开Matlab,在命令行窗口键入"fdatool"等待软件打开滤波器设计工具窗口。(或“filterDesigner”)
在这里插入图片描述
2.在滤波器设计窗口填写相关滤波器参数。
1.Specify order 为滤波阶数,滤波阶数越高滤波效果越好,运算量自然也会变大。
2.采样频率Fs,我需要滤的波时44.1khz的波,可通过的频率Fc1:20hz - Fc2:200hz,其它频率滤掉。
3.Group Delay 窗是滤波器滤波器群延迟,会导致滤波后的相位有差别,群延迟为滤波阶数的一半个采样点。
4.Magnitude Response窗口可以查看不同频率通过滤波器后信号衰减程度。
在这里插入图片描述
到此我们就设计好了滤波器。保留滤波器设计窗口,下面使用Simulink设计信号发生器并导入上步骤设计的滤波器,并将滤波前和滤波后的信号显示出来。设计生成采样率为44.1k的50hz正弦波和300hz正弦波,并将两个波形叠加,然后使用设计的滤波器滤波,查看是否可以将300hz的信号过滤掉。

二、Simulink可视化仿真
1.打开Simulink
在这里插入图片描述
2.Start界面创建一个模型
在这里插入图片描述
打开后设计页面如下,我需要我们自己选托选模块在这里插入图片描述 3.打开Library Browser选择模块页,并选择Sine Wave
在这里插入图片描述
如下图,有很多种模块可选,将“Sine Wave”拖入打开的空白设计窗内即可(同理可以找到/搜索到其它模块)
在这里插入图片描述
4.双击模块填写设计参数,注意Frequency是弧度/秒,ω=2π/t=2πf。
在这里插入图片描述

5.导入自己设计的滤波器模块
还记得设计滤波器的窗口吗?选择设计滤波器Filter Desinger窗口,将设计好的滤波器导入到Simulink Model中
在这里插入图片描述
填写参数,并导出到Simulink
在这里插入图片描述
点击“Realize Model”后Simulink窗口会自动出现名为指定名称的模块。接下来就是添加300hz正弦发生器、add模块、和scope模块,左后连接起来。(这些都可以在现有模块中找到,其实滤波器也有,只不过我们要验证一些内容,要手动做并生成一个示波器模块)。

6.完整设计连接后如下图。
Add模块在Simlink/Math Operation/Add
Scope模块在Simlink/Commonly Used Block/
(或者直接在搜索框中搜索)
在这里插入图片描述

7.配置参数,点击窗口标签栏的小齿轮或者Simulation->Modle Configuration Paramters,填写参数。设计中运行0.2ms,即生成0.2ms的数据叠加并滤波。
在这里插入图片描述

8.双击scope窗口,弹出scope页面,并点击Run运行,查看50hz原始波形,300hz原始波形,叠加后的波形,滤波后的波形(View->Layout可以铺开窗口)。如下图,关注信号是否正确叠加,经过滤波器滤波后是否可以将300hz的信号滤掉,只剩下50hz的信号。
在这里插入图片描述

结果:
如图,50hz 300hz叠加后的波形经过滤波器后,300hz的部分被滤掉,只剩下50hz波形。滤波后相位不同步是因为滤波器群延迟问题。滤波是否干净和滤波器设计的滤波阶数(order 700)有关,滤波阶数越大滤波效果越好,同时计算量也会变大。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/57095.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1