李 珅(中國電子科技集團公司第二十研究所,西安710068)
基于Scade Suite的數(shù)字濾波器設計
李珅
(中國電子科技集團公司第二十研究所,西安710068)
ScadeSuite是一種基于模型的軟件設計工具,具有軟件開發(fā)周期短、代碼調試測試方便等優(yōu)點。本文提出了一種防抖動數(shù)字濾波器的設計方案,并介紹了這種濾波器在ScadeSuite環(huán)境下的框架設計及個主要模塊之間和模塊內部的邏輯關系。
ScadeSuite;數(shù)字濾波器設計;軟件代碼開發(fā)
隨著軟件業(yè)的不斷發(fā)展,軟件代碼開發(fā)量越來越大,軟件文檔編寫,軟件測試、認證等工作大大延長了軟件開發(fā)周期。
ScadeSuite是一種經過DO-178B認證的,基于模型的軟件設計工具,它同時集成了代碼生成、設計文檔生成、用例測試等功能。使用這種工具不但可以節(jié)省代碼和設計文檔編寫的時間,而且生成的代碼和文檔直接滿足DO-178B認證的要求,從而大大縮短了軟件開發(fā)周期和認證周期。
本文介紹了使用ScadeSuite6.3.1實現(xiàn)一個數(shù)字濾波器的方法。
數(shù)字濾波器的模型如下圖1:
比較選擇模塊根據(jù)它存儲的50個歷史數(shù)據(jù)判斷輸入數(shù)據(jù)是否為奇異值,判斷依據(jù)為:如果輸入數(shù)據(jù)超出以50個歷史值為中心的門限(門限為均值的0.5倍和1.5倍),則為奇異值,如果輸入數(shù)據(jù)落入門限內則為正常值。如果輸入數(shù)據(jù)為正常值,比較選擇模塊直接輸出輸入數(shù)據(jù),將本次輸入數(shù)據(jù)存入歷史值數(shù)組中,并將連續(xù)預測計數(shù)模塊計數(shù)值清零;如果輸入數(shù)據(jù)為奇異值,比較選擇模塊輸出上一個正常值,并將連續(xù)異常計數(shù)模塊加1,當連續(xù)預測的次數(shù)到達門限值(20次)時,復位比較選擇模塊和平滑濾波模塊。
平滑濾波模塊是一個長度為20的滑窗濾波器,每次有新數(shù)據(jù)到來時將數(shù)據(jù)存入緩存并輸出均值。
2.1系統(tǒng)模型
2.1.1接口
本系統(tǒng)有一個輸入值和一個輸出值,在SCADESuite中定義如下圖2:
由圖可見,F(xiàn)ilteDDM模塊的接口有兩個變量ddm和ddm20,其中ddm為輸入值,ddm20為輸出值,兩個變量都是real型。
2.1.2模型
系統(tǒng)模型如下圖3:Filter50Control為比較選擇模塊,它有兩個輸出,一個是選擇之后的輸出值(real類型),另一個是當前輸入數(shù)據(jù)的狀態(tài)(Filter50State類型)。由圖3可見,F(xiàn)ilter50Control輸出的Filter50State類型變量發(fā)送給連續(xù)異常計數(shù)模塊(ErrorCounter);輸出的real型變量發(fā)送給平滑濾波模塊(Filter20Control)。連續(xù)異常計數(shù)模塊的輸出可以重置比較選擇模塊和平滑濾波模塊。
2.2比較選擇模塊模型
2.2.1接口
比較選擇模塊有一個輸入和兩個輸出接口,定義如下圖4:
ddm為輸入數(shù)據(jù),ddm_f為選擇輸出的結果,F(xiàn)ilterState為輸入數(shù)據(jù)類型(正常值或奇異值)。
2.2.2模型
比較選擇模塊模型如下圖5:
ddm數(shù)據(jù)直接傳送給選擇器(Filter_50)進行數(shù)據(jù)選擇,同時選擇器給出數(shù)據(jù)狀態(tài)(FilterState)和數(shù)據(jù)選擇結果(ddm_f)。array50是一個數(shù)組變量,存儲50個歷史數(shù)據(jù),由上一個循環(huán)的輸出作為下一循環(huán)的輸入。
2.3連續(xù)異常計數(shù)模塊
2.3.1接口
連續(xù)異常計數(shù)模塊接口如下圖6:
輸入State表示當前輸入數(shù)據(jù)狀態(tài),輸出control是重置比較選擇模塊和平滑濾波模塊的信號,為true時重置這兩個模塊,為false時不重置。
2.3.2模型
連續(xù)異常計數(shù)模塊模型如圖7:
收到Filter50Control模塊發(fā)送的State信號后,判斷State是normal還是odd,如果是normal則計數(shù)器(counter)清零;如果是odd則計數(shù)器加1,計數(shù)器的輸出與連續(xù)異常門限(FilterResetThreshold)比較,如果計數(shù)超出門限值則輸出true信號用于重置比較選擇模塊和平滑濾波模塊;否則輸出false。
2.4平滑濾波模塊
2.4.1接口(見圖8)
2.4.2模型(見圖9)
輸入數(shù)據(jù)(ddm_f)經平滑濾波器處理得到ddm_s作為輸出數(shù)據(jù)。Array20是一個20長度的數(shù)組,存儲20個歷史數(shù)據(jù),由上一循環(huán)的輸
出作為下一循環(huán)的輸入。
本文介紹了一種在ScadeSuite6.3.1環(huán)境下實現(xiàn)數(shù)字濾波器的方法,經真實數(shù)據(jù)測試該濾波器效果較好,輸出數(shù)據(jù)抖動較輸入數(shù)據(jù)有明顯減小。本次設計過程充分體現(xiàn)了ScadeSuite的優(yōu)勢:軟件模塊劃分清晰,開發(fā)周期短,文檔生成迅速完整。在以后的軟件發(fā)工作中,ScadeSuite可能會發(fā)揮能大的作用。
[1]EsterelTechnologies.ScadeLanguagePrimer,2012.3.22.
[2]EsterelTechnologies。LibrariesManual,2009.7.9.
李珅(1981—),男,陜西耀縣人,碩士研究生,工程師,軟件項目負責人,數(shù)字信號處理。