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