唐小容,劉敬浩,宋小璇
(天津大學 電子信息工程學院,天津 300072)
19世紀電話的發明開啟了人類通訊的新時代,20世紀文字電話的產生使得聾啞人的遠距離實時通信成為了可能,它通過電子屏幕和鍵盤以聾啞人之間實現實時交流,是一種特殊的電話。傳統文字電話高昂的造價局限了它的使用范圍,新型文字電話有效地解決了它的這一問題。
文字電話是通過調制解調器將信息調制到指定的語音信號頻段上以實現傳輸,在傳輸的過程中,通常會受到噪聲的干擾。為了保證信息的準確性以及文字電話的實時性,濾波器的設計顯得尤為重要。文中采用CSD編碼移位相加取代乘法運算可以使計算的次數大為減少,CSD編碼與Horner優化多項式算法相結合更能有效的縮短濾波器濾波時間。
文字電話目前廣泛應用于歐美國家,是一種針對特殊人群遠程實時通信的解決方案,采用v.21標準、v.23標準等進行調制以實現文字信息在音頻線上的傳輸。
新型文字電話系統首先從鍵盤讀入數據,經v.21標準調制后通過音頻線進行傳輸,在接收部分將從音頻線上接收到的數據通過dsPIC33F系列微處理系內部集成的ADC以8kbps的速率采樣后,先通過文中所設計的濾波器進行濾波,然后再對接收到的信息進行處理并顯示出來。
本系統基于Microchip公司dsPIC33F系列16位數字信號控制器(DSC)來實現。該系列微處理器具有很高的集成度,內置的DSP運算核和DSP指令有很強的數字信號處理能力,其運行速度可達40 MIPS。內部集成了10位和12位兩個ADC,其采樣速率分別可達到1 100 KSPS和500 KSPS。它的DSP引擎特別適合于數字信號處理,如FFT和數字濾波等。該微處理器依賴于Microchip先進的制造工藝和管理,價格很有競爭力[1],使該系統既能滿足文字電話通信的基本要求也大大降低了成本。
數字濾波在數字信號處理中占有非常重要的地位,它可以實現模擬器件很難達到的準確性和相位相關的特性,從20世紀60年代中期開始就出現了各種數字濾波器的逼近方法和實現方法[2]。相對于模擬濾波器,數字濾波器的好處是微功耗、低成本、調整方便、修改容易、設計靈活、沒有溫度漂移和元件老化等問題。根據沖激響應的時域特性,數字濾波器可以分為無限長沖激響應濾波器(IIR)和有限長沖激響應濾波器(FIR)。FIR濾波器雖然運算量比IIR要大一些,但是FIR濾波器具有線性的相位特性,而且是一個全零點系統,是一個天然的穩定系統。FIR濾波器的突出優點有:系統穩定、易于實現,具有線性相位,允許設計多通帶(或多阻帶)濾波器,不含反饋環路且結構簡單。文中所設計的是FIR濾波器。
FIR濾波器的基本結構可以理解為一個分節的延時線,把每一節的輸出加權累加,得到濾波器的輸出。FIR的沖激響應h(n)是有限長的,數學上M階的FIR濾波器可以表示為:

其系統函數為:

FIR的設計問題實質上是指確定能滿足所要求的轉移序列或脈沖響應的常數的問題,設計方法主要有窗函數法、頻率采樣法和等波紋最佳逼近法等。文中借助Momentum Data Systems公司專門為dsPIC設計的數字濾波器輔助設計軟件包Filter Design來進行設計。
使用FD軟件包可以實現無限沖激響應濾波器 (FIR)的設計,用戶可以生成低通、高通、帶通和帶阻濾波器,最多可支持513個點。它最突出的一個特性是具有代碼生成能力,用戶可以根據具體要求設計好濾波器后直接生成dsPIC代碼,脫離復雜的濾波器手動設計過程[1]。
文中所設計的是一個FIR帶通濾波器,在FD的設計界面上輸入該濾波器的參數:fs=8 000,fstop1=1 200,fstop2=2 200,fpass1=1 650,fpass2=1 850,Astop1=Astop2=60 dB,Apass=1 dB,設計一個73階的帶通濾波器,其幅頻響應以及群延時等如圖1所示。

圖1 FD設計的帶通濾波器Fig.1 Bandpass filter designed by FD
由圖1可以看出,所得到的FIR濾波器具有線性相位,通帶衰減低于1 dB,阻帶衰減大于60 dB,滿足設計需要。直接生成dsPIC代碼后,發現該濾波器在40MHz晶振條件下,濾波時間過長,影響文字電話系統實時通信,而降低濾波器的階次,將會影響到濾波器的濾波效果,因此需要對其進行進一步的優化。
在數字濾波器、離散傅里葉變換等數字信號處理中,乘法運算是一個最基本的運算,乘法運算的速度決定著數字系統的運算速度。由于新型文字電話對實時性的要求比較高,而在本系統中,dsPIC33F單片機以及晶振40 MHz是固定的,因此為了提高程序運行速度,達到所需要的實時性要求,只能對濾波器系數進行優化,以縮短濾波計算所需要的時間。
在計算機數字表示法中,除常見的2C(二進制補碼)等傳統的表示法外,還有一些非傳統的數字表示法 (如CSD編碼),通??梢酝ㄟ^非零元素的數量來估計乘法的效率,因此在一些特定的應用場合或者解決特殊問題時采用這些非傳統的數字表示法能提高效率。
正則有符號數CSD編碼表示法是一種與傳統的二進制編碼表示法不同的表示法,它具有三重值,其數字的值域為{0,1,-1},其中-1 常寫成1ˉ,應用 CSD 表示法,可以降低非零元素的數值,在運算中減少加法操作的次數,有利于運算速度的提高。文中依據的是 R.M.M.Oberman提出的CSD基本原理[3],并把它應用于所設計的FIR帶通濾波器中。
經典CSD編碼表示法的方法是將二進制編碼從最低的有效位開始,用10…01ˉ來取代所有大于或等于2的1序列[3]。這種經典CSD編碼的最終表達式在兩個非零數位(1,1ˉ)之間至少有一個0,而且其編碼具有唯一性。
基于經典CSD編碼可以將式(1),做以下的變化:

由于實際應用時的復雜性,這種經典的CSD編碼也不是總能夠生成最佳的二進制編碼,需要對經典的CSD編碼進行修改,變為最佳的CSD編碼[4-5],其修改的方法為:
1)從最低有效位開始,用10..01取代所有大于2的1序列;
2)用 1101取代 1011;
3)從最高有效位開始,用011代替101。
修改后得到的最佳CSD編碼可以使系數中非零元素的個數減至最少,在[-1,1]內,CSD數相比于二進制補碼系統平均減少33%的非零項,這就意味著在實際運算中大大減少了乘法中的乘積項,從而需要更少的加法單元與減法單元。這種編碼將在高速乘法器,特別是采用常系數乘法器的濾波器中起到非常重要的作用。
經過最佳CSD編碼之后,系數中的非零元素的個數已經減到最少,在多項式的運算中,還有提高運算速度的可能。Horner算法[6]就是一個N次多項式簡化算法:

改寫成

由(5)(6)式可以看到,優化后的多項式可以明顯的減少移位的次數。
在實際運算過程中,假設輸入為X,輸出為Y,而系數為247,其二進制表示為1111 0111,在傳統的運算方法下,Y=X*(27+26+25+24+22+21+20),而將其進行CSD編碼之后,其碼字變為10000-100-1,則輸出表達式轉變為 Y=X*(28-23-20),進一步采用Horner算法進行多項式優化后變為 Y=X*((25-1)*23-20)。
傳統算法與優化之后運算速度的比較如表1所示。

表1 傳統算法與優化算法比較Tab.1 Contrast between traditional algorithm and optim ization algortihm
由表1可以得出CSD編碼和Horner算法聯合使用,減少了運算所需的移位次數以及加法次數,縮短少了運算的所需要時間。
文中采用無硬件乘法在dsPIC33F上實現濾波,采用編程的方式直接實現,首先把從Filter Design濾波器設計軟件上得到的數據進行截斷處理,浮點數運算比較麻煩,將耗費更多的資源和時間,因此本設計將所有的系數左移15位之后取整,這樣的量化會帶來一些誤差,但這些誤差都在可以接受的范圍之內。
圖2反映了該FIR帶通濾波器的濾波性能與效果。圖2(a)是濾波之前的頻譜,可以看到有需要濾除的頻率存在;圖2(b)則是未經量化之前的設計好的FIR帶通濾波器濾波后的結果;圖2(c)則是經過量化之后的濾波器濾波后的結果,可以看到量化之后的濾波器效果雖然沒有量化之前好,但可以滿足系統需要。
最后,把采用傳統計算方式實現濾波的程序與采用CSD編碼與Horner算法結合后優化算法兩段程序進行比較。在程序占用空間上,CSD編碼與Horner算法由于還涉及符號等信息,程序段占用空間比傳統方法的要大,但文中所涉及的濾波器階數只有73階,可以忽略它的影響。而在運行速度上,以在VC++6.0平臺上運行作為參考,以處理10 000個采樣點的濾波計算為例,傳統方式需要423ms,而采用文中介紹的方法之后,僅需235ms,由此可見該方法非常有效。

圖2 濾波器系數優化前后濾波效果比較Fig.2 Contrast of filtering effect before and after the optimization of the filter coefficients
文中在用FD軟件包設計的FIR帶通濾波器的過程中,采用CSD編碼與Horner算法相結合的方法對濾波器的系數進行了優化,大大縮短了濾波器的濾波時間,在今后的設計中,為提高濾波器的性能,在系數量化部分可以采用如CSD編碼的遺傳算法等方法對FIR濾波器系數的CSD編碼進行優化設計而不是直接截斷處理,這樣做會減小由于系數截斷或者舍入誤差對濾波器性能的影響。該方法提高了新型文字電話系統處理數據的能力,為新型文字電話進一步實現語音數據同傳(DSVD)奠定了基礎。
[1]石朝林.dsPIC數字信號控制器入門與實戰[M].北京:北京航空航天大學出版社,2009.
[2]Parhi K K.A systematic approach for design of digit-serial signal processing architectures[C]//IEEE JSolid-State Circ 1992:29-43.
[3]Oberman RMM.Digital circuits for binary arithmetic[M].London:Macmillan Press Ltd,1979.
[4]張月紅,王馬華,朱霞.基于FPGA的FIR數字濾波器的優化設計[J].現代電子技術,2011(7):44-46.
ZHANG Yue-hong,WANG Ma-hua,ZHU Xia. Optimal design of FIR digital filter based on FPGA [J].Modern Electronics Technique,2011(7):44-46.
[5]岳頎,蔡遠利.基于CSD量化編碼的FIR濾波器優化設計[J].西北大學學報:自然科學版,2009(8):541-543.
YUEQi,CAIYuan-li.Canonical signed digit encoding based optimal design for FIR filters[J].Journal of Northwest University:Natural Science Edition,2009(8):541-543.
[6]Abdelgawad,Abdelhak S.A low-powermultiplication algorithm for signal processing in wireless sensor networks[C]//Proc of the 52nd IEEE International Midwest Symposium on Circuits and Systems (MWSCAS’09).Cancun,Canada,2009:695-698.