0引言
本文引用地址:http://www.eepw.com.cn/article/82232.htm通信系統中採用的許多算法和技術都是在線性系統的前提下研究和設計的,一定頻率的信號通過這些網絡後,往往會產生新的頻率分量,稱之為該網絡的線性失真。失真度分析採取的常用方法有基波抑制法和諧波分析法兩種。
基波抑制法通常用在模擬失真度測量儀中,原理是採用具有頻率選擇性的無源網絡(如諧振電橋、雙T陷波網絡等)抑制基波,由信號總功率和抑制基波後的信號功率計算出失真度。理想的基波抑制器應完全濾除基波,又不衰減任何其他頻率。但實際上,基波抑制器對基波衰減抑制只能達到-60 dB~-80 dB,對諧波卻損耗0.5 dB~1.0 dB。這種方式的失真度儀的性能主要依賴於硬體設計,調試和校準工作煩瑣,一般只能實現固定1個或幾個頻率的失真度測量,其測量誤差隨著失真度降低而加大,並且隨著器件老化,電路的穩定性和可靠性降低。
諧波分析法類似於頻譜分析,通常是藉助數字方式的以FFF(快速傅立葉變換)為基礎的算法,或者採用模擬方式的選頻測量方法,從而獲得基波和各次諧波的功率,計算出失真度。模擬選頻方式的失真度分析儀性能高,但硬體電路複雜。數字方式的失真度分析對硬體的設計要求降低,其性能主要決定於A/D轉換的精度和數位訊號處理算法。僅僅採用FFT來分析失真度是遠遠不夠的,因為測量精度與其運算量、存儲空間的大小和測量速度存在明顯的矛盾。 針對以上失真度測量方法的不足,本文以數字諧波分析法為基礎,提出了基於DFT(離散傅立葉變換)和過零檢測法的失真度分析算法,不僅可滿足高精度和任意頻率的測試需求,還可降低硬體設計複雜度。
1失真度算法研究
1.1算法分析
失真度定義為:
式中:u1,u2,…,uM分別為被測頻率的基頻、二次諧波、…、M次諧波分量的幅度有效值;E1,E2,…,EM為基頻和諧波分量的能量,一般M=5或7。
從失真度定義來分析,要測量信號的失真度,只須設法將被測信號的基波與諧波分離,分別測出它們各自的功率或電壓有效值,代入式(1)即可。
DFT在DSP中通常用於對平穩信號的頻譜估計,在應用中,將輸入信號截短,得到的行向量X=x(n)與一個相同長度的正弦信號W=w(n)相乘積分,可得到向量X中含有正弦信號W的分量。所以,如果向量W的頻率等於失真度測量的各個頻率分量和它們的正交分量,則可以計算出輸入信號中包含第m次諧波的能量Em:
將式(2)值代人式(1)就可得到失真度值。
在工程測量中,被測信號的頻率往往未知,而DFT計算時是確定的頻率,所以應給W提供準確的頻率,而且W的頻率預測越準確,能量計算也越精確。
為了準確找到基頻,對採樣信號採用過零檢測法來測量頻率,為避免噪聲幹擾,設置零幅度帶,每通過零幅度帶即為過零一次。被測信號頻率由fx=N/T得到,T為時間基準,N為T內過零點數。過零檢測法測頻雖準確度較高,但是在標準的時間基準T中如10 ms、0.1 s、1 s等,由於被測信號與門控信號不可能同步鎖定,所以存在固有的±1量化誤差。本系統中如果選用1 s做時間基準的話,實時性不夠。因此綜合考慮實時性、存儲量、處理速度之間的關係,選擇T=0.1 s作為時間基準。這時±1誤差被擴大10倍,為±10 Hz。為解決±1量化誤差,使用以過零測頻為中心,固定帶寬(30 Hz)內最大值能量搜索辦法(二分法)尋找基頻能量最大值,經過5~7次迭代可得到準確的基頻。然後直接使用此基頻得到各次諧波的準確頻率,並將基頻和諧波頻率提供給W,使用DFT就可直接估計基頻和各高次諧波能量,完成失真度計算。
1.2仿真結果分析
使用MATLAB對上述算法進行仿真。設輸入信號基頻為1 kHz,並在±30 Hz範圍內隨機變動,信噪比20 dB,採樣速率為44×103次採樣/s,計算到7次諧波能量,基頻能量二分法搜索帶寬為30 Hz。最大值搜索時,當能量變化小於0.1%時終止,序列運算長度1 024個採樣點,使用平方漢寧(Hanning)窗減少頻譜洩漏。按這些條件,對500次具有隨機頻偏和失真特性的輸入信號進行算法仿真。結果如圖1所示。
仿真結果表明,採用上述條件時,頻率計算誤差控制在1 Hz以下(見圖1(a));失真度誤差能控制在1%以下(見圖1(b))。如果終止條件更嚴格,測量精度可以更高。通過仿真還發現,當基頻搜索時能量變化小於0.01%時終止,失真度測量誤差可小於0.1%(見圖1(d))。為使失真度算法更有效率,本系統採用能量變化小於0.1%時終止。
2數字失真度測量儀硬體結構
該系統硬體結構如圖2所示。測量儀主要由信號調理、低通濾波、數據採集系統、主控制器AVR單片機(Atmega64L)、DSP(數位訊號處理器)等模塊組成。
2.1信號調理和低通濾波模塊
信號調理和低通濾波的功能是對信號的幅度進行調理和濾波。信號的輸入範圍是不定的,小信號信噪比較低,大信號會引起A/D轉換器對信號進行限幅而失真,所以採用數控可變增益放大器對信號輸出電壓範圍進行調整,將信號的幅度控制在A/D轉換器的滿幅度附近。保證A/D轉換器採集到的波形數據最大值僅佔A/D轉換器不失真輸入範圍的80%。低通濾波為20 kHz低通濾波器,其0.1 dB帶寬為18 kHz,能有效濾除高頻信號,同時保證較好的帶內平坦度。
2.2數據採集模塊
作為測量儀器要得到高精度的測量結果,要求A/D轉換器的精度必須足夠高。系統採用了TI公司的24 bit工業A/D轉換器ADS1271,它可以得到低的漂移、極低的量化噪聲。經ADS1271採樣後的數據由DOUT引腳串行輸出,與TMS320C6713的多通道緩衝串口McBSP直接相連。McBSP可支持字長為24 bit的數據,可直接接收A/D轉換器輸出的24 bit串行數據,並自動將接收數據中的數據位調整為DSP需要的格式。A/D轉換器採樣速率為44×103次採樣/s。A/D轉換器的採樣脈衝信號由DSP的定時器提供。
2.3數據處理模塊
DSP模塊以TMS320C6713晶片為核心。該晶片是TI公司推出的一款高性能浮點DSP,內核包含了8個功能單元,採用先進的VLIW(甚長指令字)結構,使得DSP在單周期內能夠執行多條指令。在225 MHz的時鐘頻率下,其最高執行速度可以達到1350×106次浮點運算/s。它還集成了豐富的片內外設單元,本系統主要用到的有HPI、EDMA和定時器。
主機接口為HPI,外部主機可以直接訪問內部的存儲器和存儲器映像存儲器,TMS320C6713的HPI通過EDMA控制器實現對DSP存儲空間的訪問,本系統中Atmega64L是主機,可以直接配置TMS320C6713的EDMA定時器,節省TMS320C6713的查詢周期。ED-MA(增強型直接存儲器訪問)是C621x/C671x/C64x系列DSP特有的訪問方式,其啟動可以由內部或外部事件觸發,本系統採用外部觸發。
2.4外圍設備
失真度測試系統的控制和結果顯示通過標準RS-232接口完成。因此該數字失真度測量儀可以作為一個獨立測量模塊集合在其他綜合測試儀中。
2.5控制模塊
主控制器使用Atmega64L單片機,完成系統的控制。DSP的處理結果由主控制器通過HPI接口獲得,並緩存在內存中;當外部命令讀取測試結果時,再通過RS-232接口發送出去。控制模塊還完成系統的低功耗控制、DSP運行模式等控制。
3軟體實現
圖3是TMS320C6713晶片的軟體流程圖。該晶片受Atmega64L控制。Atmega64L根據RS-232接口獲得指令,然後根據指令參數來控制儀器的運行。TMS320C6713可執行兩種操作:一種是自動測量,首先對採集數據使用過零法粗測頻率,然後把粗測頻率作為參數傳遞給失真度測量程序,由失真度計算程序完成測量;另一種是定頻測量,把Atmega64L傳遞來的頻率參數直接傳遞給失真度測量程序完成失真度的測量,而不需要事先測量頻率。
失真度測量程序設有一個入口參數fmiddle,以此參數為中心頻率在帶寬30 Hz內使用最大值搜索法找尋準確的基頻頻率並完成失真度計算,返回值是實際測量的基頻頻率、信號電平、失真度。
DSP處理完數據後,把測試結果緩存在內存中,單片機根據指令通過HPI接口讀取測試結果。
4性能分析
測量速度是決定儀器實用性的重要因素。每計算一次失真度,基頻能量二分法最大值搜索時一般需要5~7次迭代,每次迭代含3次向量乘法(2次乘法,2次加法),取10次迭代需要30次向量乘累加操作、生成30個W向量;剩餘6次諧波計算需要6個W向量,合計36個W向量。
W向量的生成如果採用直接調用庫函數,運送量太大,而採用迭代方法實現的效率更高。由三角變換公式:
只需調用庫函數運算得到cos ωT,sin ωT這兩個基本函數值,就可得到整個W向量,每個點生成需4次乘法和2加法。因此系統採用1024點完成失真度計算一次共需:1024×4×36+1024×6×36=368 640次運算,對於1350×106條指令/s的DSP來說,耗時約0.3 ms。加上數據存儲,小運算量消耗時間,除去操作控制時間,總耗時控制在1 ms內,能滿足實時要求。
實驗結果表明,頻率測量範圍為20 Hz~20 kHz,頻率誤差±1 Hz;經校準後,電平測量範圍10mV~10 V,誤差±0.4 dB;失真度在頻率100 Hz~3 kHz區間,測量範圍-5 dB~-45 dB,測量誤差±0.2 dB。
5結束語
本文提出了一種基於DFT的失真度測量算法,並通過TMS320C6713實現了數字失真度測量儀。該失真度測量儀硬體設計簡單,易調試,測量結果準確,具有自動測量和選頻測量特性,不僅可作為單一失真度測量儀,還可作為失真度分析模塊與其他性能分析模塊通過標準總線相連,組成綜合測試儀,可避免重複設計,節約成本,應用前景廣泛。