寧少雄 陳 飛 張文娟 高 俊
(1.海軍工程大學科研部 武漢 430033)(2.海軍工程大學電子工程學院 武漢 430033) (3.海軍陸戰學院模擬訓練中心 廣州 510430)
?
多速信號處理中采樣率轉換的DSP實現*
寧少雄1陳 飛2張文娟3高 俊2
(1.海軍工程大學科研部 武漢 430033)(2.海軍工程大學電子工程學院 武漢 430033) (3.海軍陸戰學院模擬訓練中心 廣州 510430)
采樣速率轉換是現代數字信號處理領域中一個重要組成部分,在通信、雷達等領域有廣泛應用。論文首先介紹了信號內插、抽取及采樣率轉換的基本原理并給出了Matlab仿真結果。然后給出了基于DSP的采樣率轉換設計與實現,并分析了相關匯編注意事項和結果。
多速信號處理; 內插; 抽取; 采樣率轉換; DSP
Class Number TN911.22
在通信、雷達等數字信號處理領域,經常會遇到抽樣率轉換的問題[1~3]。一方面要求數字系統能工作在多抽樣率狀態,以適應不同抽樣信號的需要;另一方面,對一個數字信號,要視對其處理的需要及其自身的特征,能在一個系統中以不同的抽樣頻率出現。例如,當需要將數字信號在兩個具有獨立時鐘的數字系統之間傳遞時,則要求該數字信號的抽樣率要能根據時鐘的不同而轉換。比如在音頻信號處理時,就存在著多種抽樣頻率,得到立體聲聲音信號所用的抽樣頻率是48kHz,CD產品用的抽樣率是44.1kHz,而數字音頻廣播用的頻率是32kHz[4~5]。對一個信號抽樣時,若抽樣率過高,必然會造成數據的冗余,則希望能在該數字信號的基礎上將抽樣率降下來。一個數字傳輸系統,既可傳輸一般的語音信號,也可傳輸視頻信號,這些信號的頻率成份相差甚遠,因此,相應的抽樣頻率也相差甚遠[6]。因此,該系統應具有傳輸多種抽樣率信號的能力,并自動地完成抽樣率的轉換。多抽樣率數字信號處理的核心內容就是信號抽樣率的轉換及濾波器的實現[7~8]。
2.1D倍抽取
將抽樣序列x(n)的速率降低D倍的過程稱為抽取。為避免降低速率時產生混疊,對原序列進行低通濾波是必不可少的。將原始采樣序列x(n)每隔D-1點取一個值,形成一個新的序列xD(m),有
xD(m)=x(mD)
其中,D為正整數。抽取過程如圖1所示。

圖1 抽取過程示意圖
如果序列x(n)的采樣率為fs,則抽取后的序列的xD(m)采樣頻率為fs/D,抽取后采樣率降低了D倍。抽取后進行傅氐變換可得[8]
為防止頻譜混疊,在抽取前進行抗混疊濾波。抽取的倍數應滿足如下條件[2]

其中,fmax為信號的最高頻率。
2.2I倍內插
內插和抽取的作用正好相反,它在兩個原始序列的樣點之間插入I-1個值。設原始序列為x(n),則內插后的序列xI(m)為
內插過程如圖2如示。

圖2 內插過程示意圖

圖3 信號內插前后的頻域圖
內插后信號的頻譜為XI(jω)=X(jωI)。內插后對信號進行低通濾波,濾波器的帶寬為π/I。圖3給出Matlab仿真的信號內插前后的頻率圖。
2.3 采樣率轉換原理
先內插后抽取的任意因子的采樣率轉換,需要注意的是內插后濾波器和抽取前的濾波器可合并為一個,此時要求所替代的濾波器的頻率特性滿足下式[9]:

Matlab提供了resample函數用于采樣率的變換,調用格式為[10]
y=resample(x,I,D)
其中x為原始序列,y為采樣率變換后的序列,I為內插的倍數,D為抽取的倍數。在采樣率轉換的過程中需要一個低通濾波器,在該函數中自動采用了低通濾波器,它是按照等波動最優化原理設計的,使我們省去了濾波器設計的工作。
3.1 濾波器系數存放
內插時由于原信號兩采樣點之間插有0值,在進行濾波時由于濾波即為乘累加,即將每一個采樣點值進行階數次的乘累加運算,得到一個輸出結果。然而,中間的0值無論如何都會導致乘累加部分結果為0,所以可以重新安排濾波器系數在DSP緩沖區中的儲存位置,使得簡化運算。其原理如圖4所示。

圖4 濾波器系數存放及輸入輸出關系圖
其濾波過程為
y0=x0·h56+x1·h48+…+x7·h0
y1=x0·h57+x1·h49+…+x7·h1
?
y7=x0·h63+x1·h55+…+x7·h7
64個抽頭系數的內插濾波器,每輸入8個數據樣點,濾波輸出數目也是8。每存儲1個信號數據,要循環讀出8次。根據此原理,將MATLAB中得到的濾波器系數重新安排,放入DSP的inc文件中存儲。
3.2 數據觀察顯示
在進行調試,要注意到寄存器窗口各寄存器值的變化是否按設計來跑,同時,要在儲存空間觀察數據的讀寫。為了可視化,借此來驗證程序編寫正確性,下面給序列采樣率轉換前后在CCS中觀察到的頻域圖。

圖5 輸入序列的頻域圖

圖6 內插6倍后的頻域圖

圖7 內插6倍后低通濾波頻域圖
3.3 DSP編程注意事項
3.3.1 數據存放
在CCS仿真時分別存放輸入序列和濾波器系數數據,由于C54x為16位定點芯片,其存放格式為Q15位。下面分別說明DSP數據存在: 1) 輸入序列。由于全1序列具有較好的實驗性和觀察性,我們這里使用的為全1,點數取6即可。而因為使用的為16位帶符號整型數據,可以表達的數據范圍為8000h~7FFFh,即-1~0.9969,因此開辟緩沖區存放6個7FFFh。 2) 濾波器系數。在Matlab中生成21階低通濾波器系數,小數位為15位,存放在DSP中需要進行轉換,即乘215=32768,后將小數位四舍五入,使用floor函數即可方便生成需要的數據。
3.3.2 程序編寫
在進行匯編語言程序編寫時,由于匯編可讀性和可寫性差,需要注意的問題較多。 1) 循環緩沖區的開辟。在內插后進行濾波時,由于采用循環緩沖區和雙操作數尋址方式實現FIR濾波,必須滿足不等式2k>N,N為循環緩沖區的長度,k為起始地址最低有效位的個數,由于已人為將輸入序列最大長度定為64,所以在進行循環緩沖區開辟時,至少要保證起始地址后6位為0。 2) 輔助寄存器的使用。由于在循環尋址時無論內插、濾波、抽取都要用到AR0寄存器,且其賦值都不同,需要加以區別。同時在使用雙操作數時只能使用的輔助寄存器為AR2~AR5,且要十分注意指針指向的位置。
本文研究了多速率信號處理的采樣率轉換實現技術,介紹了內插、抽取和采樣率轉換的基本原理,并利用Matlab進行了仿真分析,在此基礎上,基于定點DSP的實現了內插和抽取的采樣率轉換,分析了DSP匯編程序設計實現時需要注意的基本問題,最后給出了DSP仿真結果。
[1] 宗孔德.多抽樣率信號處理[M].北京:清華大學出版社,1996.
[2] Chang D C, Wu W R. Maneuvering Target Tracking with High-Order Correlated Noise-A Multirate Kalman Filtering Approach[J]. Wireless Personal Communications,2001,20(17):103-123.
[3] Xia X G, Suter B W. Multirate Filter Banks with Block Samlping[J]. IEEE Transactions On Signal Processing,1996,44(3):484-496.
[4] Franca J, Mitra S K. Multirate Analog-Digital Systems for Signal Processing and Conversion[C]//Proceedings of the IEEE,1997,85(2):242-262.
[5] Liang Jie, Trac D. DCT-Based General Structure for Linear-Phase Paraunitary Filterbanks[J]. IEEE Transactions On Signal Processing,2003,51(6):1572-1580.
[6] 劉春霞,王飛雪.FIR內插濾波器結構與實現綜述[J].艦船電子工程,2005,25(2):19-23.
[7] Vaidyanathan P P. Filter Banks in Digital Communications[J]. IEEE Circuits and Systems Magazine,2001,1(2):4-25.
[8] Hentschel T, Fettweis G. Sample Rate Conversion for Software Radio[J]. IEEE Communications Magazine,2000,38(8):142-150.
[9] Huang D F, Chen B S. A Multi-input-multi-output System Approach for the Computation of Discrete Fractional Fourier Transform[J]. Signal Processing,2000(80):1501-1513.
[10] 胡廣書.數字信號處理—理論、算法與實現[M].北京:清華大學出版社,2003.
DSP Realization of Sample Rate Conversion in Multi-Rate Signal Processing
NING Shaoxiong1CHEN Fei2ZHANG Wenjuan3GAO Jun2
(1. Office of Research & Development, Naval University of Engineering, Wuhan 430033) (2. College of Electronic Engineering, Naval University of Engineering, Wuhan 430033) (3. Simulation Training Center, Naval Marine Academy, Guangzhou 510430)
Sample rate conversion is the crucial part in digital signal processing, which has practical application in communication, radar domain. In the paper, the theory of extraction of signal, interpolation of signal, sample rate conversion are introduced and the simulation analysis is provided by Matlab tool. Then the design and realization of sample rate conversion are presented using fixed-point DSP, and some relevant issues are analyzed to bring forward the result.
multi-rate signal processing, interpolation, extraction, sample rate conversion, DSP
2014年7月14日,
2014年8月20日
寧少雄,男,碩士,工程師,研究方向:工程管理及網絡應用。陳飛,男,碩士研究生,工程師,研究方向為信號調制與編碼技術。張文娟,女,碩士,講師,研究方向:通信工程及網絡管理。高俊,男,教授,博士生導師,研究方向:通信理論與技術。
TN911.22
10.3969/j.issn1672-9730.2015.01.027