基于Scade Suite的数字滤波器设计
2015-07-27中国电子科技集团公司第二十研究所西安710068
李 珅(中国电子科技集团公司第二十研究所,西安710068)
基于Scade Suite的数字滤波器设计
李珅
(中国电子科技集团公司第二十研究所,西安710068)
ScadeSuite是一种基于模型的软件设计工具,具有软件开发周期短、代码调试测试方便等优点。本文提出了一种防抖动数字滤波器的设计方案,并介绍了这种滤波器在ScadeSuite环境下的框架设计及个主要模块之间和模块内部的逻辑关系。
ScadeSuite;数字滤波器设计;软件代码开发
随着软件业的不断发展,软件代码开发量越来越大,软件文档编写,软件测试、认证等工作大大延长了软件开发周期。
ScadeSuite是一种经过DO-178B认证的,基于模型的软件设计工具,它同时集成了代码生成、设计文档生成、用例测试等功能。使用这种工具不但可以节省代码和设计文档编写的时间,而且生成的代码和文档直接满足DO-178B认证的要求,从而大大缩短了软件开发周期和认证周期。
本文介绍了使用ScadeSuite6.3.1实现一个数字滤波器的方法。
1 数字滤波器模型
数字滤波器的模型如下图1:
比较选择模块根据它存储的50个历史数据判断输入数据是否为奇异值,判断依据为:如果输入数据超出以50个历史值为中心的门限(门限为均值的0.5倍和1.5倍),则为奇异值,如果输入数据落入门限内则为正常值。如果输入数据为正常值,比较选择模块直接输出输入数据,将本次输入数据存入历史值数组中,并将连续预测计数模块计数值清零;如果输入数据为奇异值,比较选择模块输出上一个正常值,并将连续异常计数模块加1,当连续预测的次数到达门限值(20次)时,复位比较选择模块和平滑滤波模块。
平滑滤波模块是一个长度为20的滑窗滤波器,每次有新数据到来时将数据存入缓存并输出均值。
2 滤波器的实现
2.1系统模型
2.1.1接口
本系统有一个输入值和一个输出值,在SCADESuite中定义如下图2:
由图可见,FilteDDM模块的接口有两个变量ddm和ddm20,其中ddm为输入值,ddm20为输出值,两个变量都是real型。
2.1.2模型
系统模型如下图3:Filter50Control为比较选择模块,它有两个输出,一个是选择之后的输出值(real类型),另一个是当前输入数据的状态(Filter50State类型)。由图3可见,Filter50Control输出的Filter50State类型变量发送给连续异常计数模块(ErrorCounter);输出的real型变量发送给平滑滤波模块(Filter20Control)。连续异常计数模块的输出可以重置比较选择模块和平滑滤波模块。
2.2比较选择模块模型
2.2.1接口
比较选择模块有一个输入和两个输出接口,定义如下图4:
ddm为输入数据,ddm_f为选择输出的结果,FilterState为输入数据类型(正常值或奇异值)。
2.2.2模型
比较选择模块模型如下图5:
ddm数据直接传送给选择器(Filter_50)进行数据选择,同时选择器给出数据状态(FilterState)和数据选择结果(ddm_f)。array50是一个数组变量,存储50个历史数据,由上一个循环的输出作为下一循环的输入。
2.3连续异常计数模块
2.3.1接口
连续异常计数模块接口如下图6:
输入State表示当前输入数据状态,输出control是重置比较选择模块和平滑滤波模块的信号,为true时重置这两个模块,为false时不重置。
2.3.2模型
连续异常计数模块模型如图7:
收到Filter50Control模块发送的State信号后,判断State是normal还是odd,如果是normal则计数器(counter)清零;如果是odd则计数器加1,计数器的输出与连续异常门限(FilterResetThreshold)比较,如果计数超出门限值则输出true信号用于重置比较选择模块和平滑滤波模块;否则输出false。
2.4平滑滤波模块
2.4.1接口(见图8)
2.4.2模型(见图9)
输入数据(ddm_f)经平滑滤波器处理得到ddm_s作为输出数据。Array20是一个20长度的数组,存储20个历史数据,由上一循环的输
出作为下一循环的输入。
3 结束语
本文介绍了一种在ScadeSuite6.3.1环境下实现数字滤波器的方法,经真实数据测试该滤波器效果较好,输出数据抖动较输入数据有明显减小。本次设计过程充分体现了ScadeSuite的优势:软件模块划分清晰,开发周期短,文档生成迅速完整。在以后的软件发工作中,ScadeSuite可能会发挥能大的作用。
[1]EsterelTechnologies.ScadeLanguagePrimer,2012.3.22.
[2]EsterelTechnologies。LibrariesManual,2009.7.9.
李珅(1981—),男,陕西耀县人,硕士研究生,工程师,软件项目负责人,数字信号处理。