基于Matlab/Simulink的滤波器设计仿真技术的实现

时间:2022-10-12 12:51:35

基于Matlab/Simulink的滤波器设计仿真技术的实现

摘要:建立滤波器设计系统的Simulink仿真模型,进行仿真分析,实现滤波器设计仿真技术。本文主要介绍使用Matlab的Signal Processing Toolbox工具箱中可视化滤波器集成设计环境―滤波器设计及分析工具(Filter Design and Analysis Tool) ,借助于FDATool强大的交互式图形用户界面,可以直接设置滤波器的性能指标、直接赋值滤波器系数来进行滤波器设计,然后用Simulink对系统进行可视化建模及仿真。

关键词:Simulink;工具箱;FIR滤波器;Matlab

中图分类号:TP18 文献标识码:A文章编号:1009-3044(2007)04-11086-02

1 引言

计算机仿真技术是应用电子计算机对研究对象的数学模型进行计算和分析的方法。安装了Simulink的计算机就如真正的建模和系统分析实验室一样,在这个实验室中,可以使用Simulink创建模型并寻找解决实际问题的方法,可以用它轻松地搭建一个系统模型,并设置模型参数和仿真参数。由于Simulink是交互式的应用程序,因此在仿真过程中,可以在线修改仿真参数,并立即观察到改变后的仿真结果。

2 Simulink仿真应用简介

Simulink是一个进行动态系统建模、仿真和综合分析的集成软件包,它可以处理线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统等。在MATLAB7.0中,可直接在Simulink环境中运作的工具包很多,已覆盖通信、控制、信号处理、DSP、电力系统等诸多领域。

Simulink是Matlab中的一个建立系统方框图并在方框图基础上进行系统仿真的环境,是一个对动态系统进行建模、仿真并对仿真结果进行分析的软件包。使用Simulink可以更加方便地对系统进行可视化建模及仿真。

2.1 Simulink及Signal ProcessingToolbox工具箱

Simulink和Matlab的无缝结合使得用户可以利用Matlab丰富的资源,建立仿真模型,监控仿真过程,分析仿真结果。基于Matlab的Signal ProcessingToolbox工具箱允许Matlab/Simulink使用实用的图形技术,使得用户能直接将仿真结果以虚拟现实的形式显示出来。可以说,对虚拟现实技术的支持使得Matlab/Simulink在系统仿真领域的应用上了一个新的台阶[1]。

3 基于滤波器设计及分析工具(FDATool)的设计技术

Matlab在信号处理工具箱(Signal Processing Toolbox)中提供了一个先进的可视化滤波器集成设计环境―滤波器设计及分析工具(Filter Design and Analysis Tool ,FDATool)。借助于FDATool强大的交互式图形用户界面,可以用多种方式,通过直接设置滤波器的性能指标、直接赋值滤波器系数或直接从Matlab工作空间导入滤波器参数设计滤波器。FDATool还提供了一组滤波器分析工具用于频率响应、零―极点图、冲激响应、阶跃响应、群延迟等的分析。如果安装了信号处理工具箱,就可以用FDATool代替滤波器设计函数,进行高效率的滤波器分析和设计。图1是FDATool的交互式图形用户界面。

图1 FDATool 交互式图形用户界面

FDATool提供如下功能:

滤波器类型选择,可选择低通、高通、带通、带阻和其它类型;

滤波器设计方法选择,包括IIR和FIR两类;

滤波器设计指标设定;

滤波器系数计算;

滤波器分析;

滤波器结构转换;

导入滤波器设计;

导出滤波器设计。

4 建立滤波器系统的Simulink模型并进行仿真分析

4.1 实现滤波器系统的仿真模型描述

本文将介绍在Simulink+DSP Blockset环境下应用数字滤波器设计模块进行信号处理(滤波)的可视化设计技术。由于调用了Matlab高度集成化和可视化的计算机仿真环境,用户可以不用编写任何程序语句,仅仅通过鼠标拖放和点击操作,就可完成复杂的数字滤波器的设计工作。下面通过一个应用示例介绍这种基于可视化的信号滤波技术,用数字滤波器设计模块(Digital Filter Design Block)设计、分析和实现滤波器。

示例的内容及任务是:一个均匀的随机信号经高通滤波器后产生高频噪声,与正弦波信号叠加生成含噪声正弦波信号,再用一个低通滤波器滤除该信号中高频噪声。图2给出一个用数字滤波器设计模块设计、分析和实现这个低通和高通滤波器系统的例子。为比较方便起见,仿真系统用向量示波器显示原始正弦波信号、含噪声正弦波信号和滤波处理后的正弦波信号。

4.2 建立用数字滤波器设计模块实现滤波器系统的仿真模型

在建立系统模型之前,首先给出建立模型所需的主要系统模块:

(1)filtering->filter Designs子库模块库中的Digital Filter Design滤波器设计模块:一个用来产生高频噪声信号,另一个用来对高频噪声信号进行低通滤波。

(2)Signal Processing Sources信号源模块库中的Random source、 Sine wavey 模块:用来分别产生噪声信号和正弦波信号。

(3)Signal ProcessingSinks模块库中的Vector Scope显示模块:向量示波器显示模块可以用不同颜色和线形显示三种波形。

(4)Math Operations模块库中的Matrix Concatenation子系统模块:用来对高频噪声正弦波信号、原始正弦波信号和经低通滤波器滤波后的正弦波信号进行矩阵叠加连接运算。

图2 用数字滤波器设计模块实现滤波器系统

4.2.1 系统模块参数设置

4.2.1.1 设计高通滤波器并且选择滤波器的结构

(1)双击图2 Digital Filter Desig2模块,打开滤波器设计和分析工具图形用户界面(FDATool GUI),如图1所示。

(2)在Edit菜单中通过选择Convert Structure …项设置滤波器的结构为Direct form FIR(直接型)。 在Responsetype设置为Haghpass , 在Filter组合框里选择Minimum单选纽,在Frequency组合框里选择Normalizd(0 to 1), wstop = 0.2, wpass=0.5。在Magnitude组合框里选择Astop为80,Apass为1。该高通滤波器将通过大于或等于50%Nyquist频率的信号,并且滤除小于或等于20% Nyquist频率的信号。

(3)参数设置好后,点击GUI底部的Design Filter 按钮开始设计滤波器。

(4)点击GUI图形上方的Magnitude Response 按钮,即可获得如图4所示的滤波器幅度响应 (FDATool GUI 工具栏中的其他按钮则提供了采样响应、阶跃响应、群延迟、频率响应、滤波器系数、滤波器指标和零、极点图等)。如图3所示。

4.2.1.2 设计低通滤波器并且选择滤波器的结构

(1)双击图2 Digital Filter Desig模块,打开滤波器设计和分析工具图形用户界面(FDATool GUI),如图1所示;

图3 FDATool(设计高通滤波器并且选择滤波器的结构)

(2)在Edit菜单中通过选择Convert Structure …项设置滤波器的结构为Direct form FIR(直接型)。Response type 设置为lowpass , 在Filter组合框里选择Minimum单选纽,在Frequency组合框里选择Normalizd(0 to 1),当给定wpass=0.2和wstop = 0.5时,该低通滤波器将通过大于或等于20%Nyquist频率的信号,并且滤除小于或等于50% Nyquist频率的信号;

(3)参数设置好后点击GUI底部的Design Filter 按钮开始设计滤波器;

(4)点击GUI图形上方的Magnitude Response 按钮,即可获得如图4所示的滤波器幅度响应 (FDATool GUI 工具栏中的其他按钮则提供了采样响应、阶跃响应、群延迟、频率响应、滤波器系数、滤波器指标和零、极点图等)。如图4所示。

图4 FDATool(设计低通滤波器并且选择滤波器的结构)

4.2.1.3 设计其他模块的参数:按表1设置其他模块参数,表中未列出的参数均取模块默认值。

表1中第一行参数设置:双击 Matrix Concatenation模块,打开图5所示图形界面,对照参数设置表进行设置。表里其他模块参数设置方法大致相同,这里就不一一介绍了。

(参数设置表) 表1 其他模块参数表

在建立系统模型之后,按照系统的要求设置系统模块参数。

图5 表1中第一行Matrix Concatenation模块参数设置

4.2.2 系统仿真参数的设置

设计仿真参数:点击模型菜单中的Simulation菜单,如图6所示,并且选择Configuration parameters……打开仿真参数对话框。设置Solver页的参数如图7所示。

图6 打开设置仿真参数下拉式菜单

图7 设置仿真参数

在Simulationtime组合框中选择start time :0.0,stoptime2.0,在solver options 组合框中选择type 为Fixed Cstep。

4.3 系统仿真与分析

在对系统模块参数与仿真参数设置之后,可进行系统仿真分析。在仿真进程中可以随时改变滤波器参数,及时对滤波器的设计指标进行调整。

例如调整设计低通滤波器并且选择滤波器的结构:

双击图2 Digital Filter Desig模块,打开滤波器设计和分析工具图形用户界面(FDATool GUI),如图1。

(1)在Edit菜单中通过选择Convert Structure …项设置滤波器的结构为Direct form FIR(直接型)。Response type 设置为lowpass , 在Filter组合框里选择Minimum单选纽,在Frequency组合框里选择Normalizd(0 to 1),当给定wpass=0.1和wstop = 0.6时,该低通滤波器将通过大于或等于10%Nyquist频率的信号,并且滤除小于或等于60% Nyquist频率的信号;

(2)参数设置好后点击GUI底部的Design Filter 按钮开始设计滤波器;

(3)点击GUI图形上方的Magnitude Response 按钮,即可获得滤波器幅度响应(FDATool GUI 工具栏中的其他按钮则提供了采样响应、阶跃响应、群延迟、频率响应、滤波器系数、滤波器指标和零、极点图等)。由于篇幅的限制图略。

从仿真结果分析:对于低通滤波器而言,降低wpass或增加wstop指标,可以增大低通滤波器的滤波范围。

5仿真结果的演示

5.1 Simulink下滤波器设计技术应用

5.1.1 点击菜单栏中的Simulation 菜单,点选Start开始仿真。或者单击菜单栏中小黑箭头即可运行仿真。

5.1.2 设置向量示波器显示模式:运行仿真后若要修饰示波器显示图形,则向量示波器显示模块可以用不同颜色和线形显示噪声正弦波信号,滤波后的正弦波信号和原始正弦波信号如图8所示.其中右上角图例中的CH1(Channel 1)显示噪声正弦波信号,CH2(Channei2)显示滤波后的正弦波信号,并且CH3(Channel3)显示原始正弦波信号。

图8 向量示波器显示模式修饰后的信号波形

6 结论

6.1 基于Matlab/Simulink的仿真技术为能在一个建模环境中进行可视化操作和与动态系统(用Matlab和Simulink描述)进行交互提供了一种有效的解决方案,拓展了Matlab和Simulink在数字信号处理系统中的应用能力。

6.2 通过对设计滤波器系统的计算机仿真,全面展示了Simulink下滤波器设计技术应用,利用Simulink模型产生的高频噪声信号经低通滤波器滤波后信号更逼真。仿真结果证明,尝试是成功的,有助于研究工作的进一步展开。

参考文献:

[1]薛定宇,陈阳泉.基于Matlab/Simulink的系统仿真技术及应用[M].北京:清华大学出版社,2002.

[2]姚俊,马松辉.Simulink建模与仿真[M].西安:西安电子科技出版社,2002.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:《黄易群侠传》大侠必知 下一篇:虚拟货币、C2C交易亟需强力监管