Matlab Simulink设计滤波器

项目需求,制作滤波器,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)有关,滤波阶数越大滤波效果越好,同时计算量也会变大。

  • 34
    点赞
  • 244
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 卡尔曼滤波器是一种用于估计系统状态的方法,可以在不确定的、有噪声的环境下准确地预测和估计未来状态。Matlab Simulink提供了一个方便的卡尔曼滤波器模块,使用户可以在Simulink中进行可视化和快速实现。 卡尔曼滤波器是一个迭代过程,它将传感器测量值与系统的数学模型进行比较,然后对系统状态进行校正。Simulink中的卡尔曼滤波器模块包括两个主要部分:状态预测和状态更新。状态预测使用上一个状态和系统模型来预测下一个状态。状态更新使用传感器测量值来计算系统状态的新估计。 Matlab Simulink的卡尔曼滤波器模块非常直观且易于使用。用户可以轻松添加和修改系统模型和测量方程式,以匹配他们的系统要求。该模块还包括一组新颖的图表和数据记录工具,帮助用户监控系统状态和输出。 卡尔曼滤波器适用于许多应用场景,如航空航天、汽车、机器人、医疗以及金融等领域,它可以提供更准确和可靠的状态估计和预测。通过Matlab Simulink的卡尔曼滤波器模块,用户可以更轻松、快速地实现卡尔曼滤波器,并通过易于使用的工具进行可视化和分析。 ### 回答2: Matlab Simulink中的卡尔曼滤波器模块可以用于通过估计不完全或有噪声的传感器数据来确定系统状态的最优估计值。这个模块实际上实现了一个状态估计器,基于一定的模型来根据测量数据更新状态变量,从而提高系统对未来状态的预测准确性。 卡尔曼滤波器模块最主要的两个输入参数是系统模型和观测模型。系统模型描述了变量如何根据时间变化,而观测模型描述了由传感器测量到的变量值如何反映系统状态。卡尔曼滤波器将这两个模型结合在一起,同时采用过去的测量数据和当前的测量数据来计算状态的最优估计值和状态协方差矩阵的协同更新。 在卡尔曼滤波器模块中,还可以对初始状态和协方差矩阵进行设置,并设置测量参数的噪声协方差矩阵和系统模型参数的噪声协方差矩阵。这些设置将会影响卡尔曼滤波器的状态估计结果,因此需要根据具体的应用场景进行调整。 总之,卡尔曼滤波器模块是一个非常强大的工具,可以用于数据融合、控制和导航等多个领域。通过Matlab Simulink中的卡尔曼滤波器模块,用户可以方便地实现卡尔曼滤波算法,进行不同应用领域的状态估计和控制。 ### 回答3: SimulinkMATLAB中的一款可视化建模工具。卡尔曼滤波器是一种常用于估计某系统状态的算法。卡尔曼滤波器模块是在Simulink中提供的可视化建模工具,旨在帮助用户在Simulink中实现卡尔曼滤波器算法。 卡尔曼滤波器模块包含了多个子模块,可帮助用户进行状态预测、观测更新等计算。用户只需在指定的子模块中输入相应参数,即可完成卡尔曼滤波器的搭建。同时,卡尔曼滤波器模块还提供了不同类型的滤波器,包括常规卡尔曼滤波器、扩展卡尔曼滤波器、无迹卡尔曼滤波器等。 使用Simulink卡尔曼滤波器模块的优势在于它可以对实时数据进行实时处理和分析,且可以很容易地进行模型参数调整。此外,Simulink中还提供了数据处理、可视化、模块导入等功能,可以使得整个算法流程变得更加便捷和有效。 总之,Simulink卡尔曼滤波器模块是一款便利的工具,可以用于快速实现卡尔曼滤波器算法,并进行数据分析和模型优化。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值