孫小娟
(重慶電子工程職業(yè)學院 重慶 401331)
動態(tài)信號是指信號中的某些屬性隨著時間的變化而連續(xù)變化的一類信號,用確定性動態(tài)信號代替數(shù)字信號,使用兩種頻率值來代替邏輯值,即把邏輯值映射到頻率上,這樣做可以避免數(shù)字信號本身存在的位翻轉(zhuǎn)、漂移和時鐘抖動現(xiàn)象,從而保障安全攸關(guān)系統(tǒng)的可靠性。
為了得到確定性動態(tài)信號的穩(wěn)定輸入輸出,需要使用帶通濾波器,這樣既可以濾除雜波信號,又保證容錯能力。就單位脈沖響應(yīng)而言,常用的濾波器有IIR濾波器和低通、高通、帶通、帶阻等幾種IIR濾波器。從性能上來說,F(xiàn)IR濾波器由于其階數(shù)高,故信號延時較大。在相同的設(shè)計要求下,IIR濾波器由于采用遞歸結(jié)構(gòu),其傳遞函數(shù)的極點在單位圓內(nèi),可以采用比FIR濾波器較少的階數(shù)來達到設(shè)計要求,因此具有階數(shù)低、選擇性好、經(jīng)濟效益高的優(yōu)勢,因此,本文選擇IIR濾波器設(shè)計本文需要的帶通濾波器。
Scilab是一種輕量級的開源科學工程計算軟件,它提供了可以滿足不同工程與科學需要的工具箱,例如SCICOS、圖與網(wǎng)絡(luò)工具箱和信號處理工具箱等[1],基本功能可以和軟件Matlab相媲美。
如果計算機中的安全關(guān)鍵邏輯出現(xiàn)了異常,將會導致安全攸關(guān)系統(tǒng)出現(xiàn)故障甚至癱瘓,因此計算機中使用的安全關(guān)鍵邏輯的可靠性必須得到保證。用確定性動態(tài)信號代替數(shù)字信號,使用兩種頻率值來代替邏輯值,即把邏輯值映射到頻率上。如表1所示,可以把邏輯真用60Hz代替,邏輯假用120Hz代替,二者的邏輯關(guān)系可以用如下方法實現(xiàn):
表1 邏輯值映射
假設(shè)有兩個正弦信號A和B,信號A的頻率 為60Hz,信號B的頻率 為120Hz,將兩個正弦信號相乘,則可以得到兩個信號的和與差:
觀察其頻譜,從兩個動態(tài)信號的相乘結(jié)果并不能看出明顯的邏輯關(guān)系。。所以,需要再引入一個輔助動態(tài)信號H,將A*B與H相乘,取H的頻率為90Hz,結(jié)果如表2所示。
表2 H=90Hz時,A?B的頻率
用60Hz表示邏輯“真”,120Hz表示邏輯“假”。如果A和B都為邏輯真(60Hz)時,從表格中第二行來看,看到A*B*H中沒有150Hz的頻率分量;當A和B中至少有一個為假(120Hz)時,從三、四、五行可以發(fā)現(xiàn),A*B*H含有150Hz的頻率分量,則可以規(guī)定A*B*H信號中含有150Hz頻譜分量時表示的邏輯為“真”,不含有150Hz頻譜分量時表示的邏輯為“假”。再從縱列來看, A列、B列以及A*B*H列,含有150Hz的一列就與邏輯運算中的邏輯“與非”相對應(yīng)。對應(yīng)地,當信號A、B的頻率均為60Hz,即邏輯真時,A*B*H中含有210Hz的頻率分量;當信號A、B中只要有一個信號的頻率為120Hz,即邏輯假時,信號A*B*H中就不含有210Hz的頻率分量,則可以規(guī)定信號A*B*H中含有210Hz的頻率分量表示邏輯“真”,不含有210Hz的頻率分量時表示邏輯“假”。再從縱行來看,A列、B列,以及A*B*H列,含有210的一列就與邏輯運算中的邏輯“與”相對應(yīng)。
如果120Hz表示邏輯“真”,60Hz表示邏輯“假”,其他與上表一致。觀察表可知,則A、B兩列,以及A*B*H中含有150和210的兩列,與邏輯運算中的“或”和“或非”是相對應(yīng)。同時,信號A*B*H中出現(xiàn)30Hz和330Hz頻譜分量,與出現(xiàn)上表中頻譜分量150Hz和220Hz的情況類似。也就是說,A*B*H中含有30和330的這兩列也可以用來表示邏輯“與”和邏輯“與非”,或者是邏輯“或”和邏輯“或非”。
安全關(guān)鍵邏輯的結(jié)構(gòu)如圖1所示。在本文中以邏輯“與”和“與非”為例說明,以60Hz的正弦波表示邏輯“真”,120Hz的正弦波表示邏輯“假”。
圖1 安全攸關(guān)系統(tǒng)邏輯的結(jié)構(gòu)
為了濾除不合格的信號,專門檢測特定頻率的信號(如210Hz),需要使用帶通濾波器。輸入濾波器由通帶為58Hz-62Hz和118Hz-122Hz的帶通濾波器并聯(lián),將輸入信號A、B相乘,再與H相乘,得到A*B*H,輸出濾波器有兩個,為通帶分別為205Hz-215Hz和145Hz-155Hz的帶通濾波器。
IIR數(shù)字濾波器的設(shè)計方法主要有三種,即計算機輔助設(shè)計、頻域變換(原型變換法)和模擬數(shù)字變換。
就變換方法而言,主要有脈沖響應(yīng)不變法、階躍響應(yīng)不變法和雙線性變換法。脈沖響應(yīng)不變法常用于設(shè)計有限帶寬的低通和帶通濾波器,不宜用來設(shè)計高通和帶阻濾波器。階躍響應(yīng)不變法存在頻率響應(yīng)的混疊失真現(xiàn)象,但失真現(xiàn)象比沖激響應(yīng)不變法小[2]。雙線性變換法克服了混疊失真現(xiàn)象,適合設(shè)計具有“分段常數(shù)特性”的濾波器(如低通,帶通,高通等)。
與IIR濾波器對應(yīng)的模擬濾波器原型一般有:巴特沃斯濾波器、切比雪夫濾波器I 、II型和橢圓函數(shù)濾波器。巴特沃斯濾波器的通帶和阻帶比其它數(shù)字濾波器的平坦,同時考慮到安全攸關(guān)系統(tǒng)簡單的原則,以及在安全關(guān)鍵邏輯中是通過判斷輸出信號的幅度來決定“真”“假”的,故本文最終選擇選擇使用雙線性變換法設(shè)計基于巴特沃斯的IIR濾波器。
采用模擬濾波器雙線性變換法設(shè)計IIR濾波器:
Scilab軟件中,直接設(shè)計IIR濾波器的函數(shù)有iir,函數(shù)原型為
[hz]=iir(n,ftype,fdesign,frq,delta);
[p.z.g]=iir(n,ftype,fdesign,frq,delta);
[cells, fact, zzeros, zpoles] = eqiir(ftype, approx, om, deltap, deltas);
下面設(shè)計一個3階帶通橢圓濾波器。通帶截止頻率為 0.15 和 0.25,通帶允許波動為 0.08, 阻帶允許波動為 0.03。
hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
計算出的濾波器傳遞函數(shù)為:
畫出其頻響曲線,如圖2所示:
圖2 3階帶通橢圓濾波器頻響曲線
如果需要,可以再畫出其零極點圖,如圖3所示:
圖3 3階帶通橢圓濾波器零極點圖
需要計算零極點時:
由計算得到的零極點知,其零極點都在單位圓內(nèi),函數(shù)是穩(wěn)定的。
在Scilab中對表1所示的“與”和“與非”邏輯進行仿真,仿真結(jié)果如圖4所示。
圖4 “與”和“與非”仿真結(jié)果
所有信號的時長均取為兩秒,信號A的頻率在第一秒內(nèi)為60Hz,第二秒變?yōu)?20Hz;信號B的頻率在60Hz和120Hz之間每隔0.5s交替變換。這樣就能夠得到表1.1中的四種組合。其中,輸出帶通濾波器的階數(shù)均設(shè)為6階,由最后一組波形圖可以看到,當信號A、B同時為60Hz時,帶通濾波器(205-215Hz)有波形輸出,而帶通濾波器(145-155Hz)幾乎沒有波形輸出,信號A、B為其他組合時,兩個濾波器的波形輸出情況正好相反。即仿真結(jié)果完全符號與其效果。由圖2、3知,濾波后的信號比輸入信號有大概0.1秒左右的延遲,這個延遲是由濾波器本身的計算過程產(chǎn)生的。濾波器的階數(shù)越高,濾波計算量越大,信號的延時就會增加,因此在設(shè)計時應(yīng)盡量選用階數(shù)低的濾波器[3]。
本文就基于動態(tài)信號的安全關(guān)鍵邏輯中濾波器的設(shè)計部分做了詳細的講解,首先介紹了什么是基于動態(tài)信號的安全關(guān)鍵邏輯,提出了濾波器的設(shè)計。其次,描述了濾波器的種類、及各自的特點等等,在比較分析后,確定了設(shè)計采用雙線性變換法的基于巴特沃斯濾波器的IIR數(shù)字濾波器,設(shè)計了安全關(guān)鍵邏輯系統(tǒng)中所需的濾波器,并分析了其性能,符合預(yù)期的效果。