寧少雄 陳 飛 張文娟 高 俊
(1.海軍工程大學(xué)科研部 武漢 430033)(2.海軍工程大學(xué)電子工程學(xué)院 武漢 430033) (3.海軍陸戰(zhàn)學(xué)院模擬訓(xùn)練中心 廣州 510430)
?
多速信號(hào)處理中采樣率轉(zhuǎn)換的DSP實(shí)現(xiàn)*
寧少雄1陳 飛2張文娟3高 俊2
(1.海軍工程大學(xué)科研部 武漢 430033)(2.海軍工程大學(xué)電子工程學(xué)院 武漢 430033) (3.海軍陸戰(zhàn)學(xué)院模擬訓(xùn)練中心 廣州 510430)
采樣速率轉(zhuǎn)換是現(xiàn)代數(shù)字信號(hào)處理領(lǐng)域中一個(gè)重要組成部分,在通信、雷達(dá)等領(lǐng)域有廣泛應(yīng)用。論文首先介紹了信號(hào)內(nèi)插、抽取及采樣率轉(zhuǎn)換的基本原理并給出了Matlab仿真結(jié)果。然后給出了基于DSP的采樣率轉(zhuǎn)換設(shè)計(jì)與實(shí)現(xiàn),并分析了相關(guān)匯編注意事項(xiàng)和結(jié)果。
多速信號(hào)處理; 內(nèi)插; 抽取; 采樣率轉(zhuǎn)換; DSP
Class Number TN911.22
在通信、雷達(dá)等數(shù)字信號(hào)處理領(lǐng)域,經(jīng)常會(huì)遇到抽樣率轉(zhuǎn)換的問題[1~3]。一方面要求數(shù)字系統(tǒng)能工作在多抽樣率狀態(tài),以適應(yīng)不同抽樣信號(hào)的需要;另一方面,對(duì)一個(gè)數(shù)字信號(hào),要視對(duì)其處理的需要及其自身的特征,能在一個(gè)系統(tǒng)中以不同的抽樣頻率出現(xiàn)。例如,當(dāng)需要將數(shù)字信號(hào)在兩個(gè)具有獨(dú)立時(shí)鐘的數(shù)字系統(tǒng)之間傳遞時(shí),則要求該數(shù)字信號(hào)的抽樣率要能根據(jù)時(shí)鐘的不同而轉(zhuǎn)換。比如在音頻信號(hào)處理時(shí),就存在著多種抽樣頻率,得到立體聲聲音信號(hào)所用的抽樣頻率是48kHz,CD產(chǎn)品用的抽樣率是44.1kHz,而數(shù)字音頻廣播用的頻率是32kHz[4~5]。對(duì)一個(gè)信號(hào)抽樣時(shí),若抽樣率過高,必然會(huì)造成數(shù)據(jù)的冗余,則希望能在該數(shù)字信號(hào)的基礎(chǔ)上將抽樣率降下來。一個(gè)數(shù)字傳輸系統(tǒng),既可傳輸一般的語音信號(hào),也可傳輸視頻信號(hào),這些信號(hào)的頻率成份相差甚遠(yuǎn),因此,相應(yīng)的抽樣頻率也相差甚遠(yuǎn)[6]。因此,該系統(tǒng)應(yīng)具有傳輸多種抽樣率信號(hào)的能力,并自動(dòng)地完成抽樣率的轉(zhuǎn)換。多抽樣率數(shù)字信號(hào)處理的核心內(nèi)容就是信號(hào)抽樣率的轉(zhuǎn)換及濾波器的實(shí)現(xiàn)[7~8]。
2.1D倍抽取
將抽樣序列x(n)的速率降低D倍的過程稱為抽取。為避免降低速率時(shí)產(chǎn)生混疊,對(duì)原序列進(jìn)行低通濾波是必不可少的。將原始采樣序列x(n)每隔D-1點(diǎn)取一個(gè)值,形成一個(gè)新的序列xD(m),有
xD(m)=x(mD)
其中,D為正整數(shù)。抽取過程如圖1所示。
圖1 抽取過程示意圖
如果序列x(n)的采樣率為fs,則抽取后的序列的xD(m)采樣頻率為fs/D,抽取后采樣率降低了D倍。抽取后進(jìn)行傅氐變換可得[8]
為防止頻譜混疊,在抽取前進(jìn)行抗混疊濾波。抽取的倍數(shù)應(yīng)滿足如下條件[2]
其中,fmax為信號(hào)的最高頻率。
2.2I倍內(nèi)插
內(nèi)插和抽取的作用正好相反,它在兩個(gè)原始序列的樣點(diǎn)之間插入I-1個(gè)值。設(shè)原始序列為x(n),則內(nèi)插后的序列xI(m)為
內(nèi)插過程如圖2如示。
圖2 內(nèi)插過程示意圖
圖3 信號(hào)內(nèi)插前后的頻域圖
內(nèi)插后信號(hào)的頻譜為XI(jω)=X(jωI)。內(nèi)插后對(duì)信號(hào)進(jìn)行低通濾波,濾波器的帶寬為π/I。圖3給出Matlab仿真的信號(hào)內(nèi)插前后的頻率圖。
2.3 采樣率轉(zhuǎn)換原理
先內(nèi)插后抽取的任意因子的采樣率轉(zhuǎn)換,需要注意的是內(nèi)插后濾波器和抽取前的濾波器可合并為一個(gè),此時(shí)要求所替代的濾波器的頻率特性滿足下式[9]:
Matlab提供了resample函數(shù)用于采樣率的變換,調(diào)用格式為[10]
y=resample(x,I,D)
其中x為原始序列,y為采樣率變換后的序列,I為內(nèi)插的倍數(shù),D為抽取的倍數(shù)。在采樣率轉(zhuǎn)換的過程中需要一個(gè)低通濾波器,在該函數(shù)中自動(dòng)采用了低通濾波器,它是按照等波動(dòng)最優(yōu)化原理設(shè)計(jì)的,使我們省去了濾波器設(shè)計(jì)的工作。
3.1 濾波器系數(shù)存放
內(nèi)插時(shí)由于原信號(hào)兩采樣點(diǎn)之間插有0值,在進(jìn)行濾波時(shí)由于濾波即為乘累加,即將每一個(gè)采樣點(diǎn)值進(jìn)行階數(shù)次的乘累加運(yùn)算,得到一個(gè)輸出結(jié)果。然而,中間的0值無論如何都會(huì)導(dǎo)致乘累加部分結(jié)果為0,所以可以重新安排濾波器系數(shù)在DSP緩沖區(qū)中的儲(chǔ)存位置,使得簡(jiǎn)化運(yùn)算。其原理如圖4所示。
圖4 濾波器系數(shù)存放及輸入輸出關(guān)系圖
其濾波過程為
y0=x0·h56+x1·h48+…+x7·h0
y1=x0·h57+x1·h49+…+x7·h1
?
y7=x0·h63+x1·h55+…+x7·h7
64個(gè)抽頭系數(shù)的內(nèi)插濾波器,每輸入8個(gè)數(shù)據(jù)樣點(diǎn),濾波輸出數(shù)目也是8。每存儲(chǔ)1個(gè)信號(hào)數(shù)據(jù),要循環(huán)讀出8次。根據(jù)此原理,將MATLAB中得到的濾波器系數(shù)重新安排,放入DSP的inc文件中存儲(chǔ)。
3.2 數(shù)據(jù)觀察顯示
在進(jìn)行調(diào)試,要注意到寄存器窗口各寄存器值的變化是否按設(shè)計(jì)來跑,同時(shí),要在儲(chǔ)存空間觀察數(shù)據(jù)的讀寫。為了可視化,借此來驗(yàn)證程序編寫正確性,下面給序列采樣率轉(zhuǎn)換前后在CCS中觀察到的頻域圖。
圖5 輸入序列的頻域圖
圖6 內(nèi)插6倍后的頻域圖
圖7 內(nèi)插6倍后低通濾波頻域圖
3.3 DSP編程注意事項(xiàng)
3.3.1 數(shù)據(jù)存放
在CCS仿真時(shí)分別存放輸入序列和濾波器系數(shù)數(shù)據(jù),由于C54x為16位定點(diǎn)芯片,其存放格式為Q15位。下面分別說明DSP數(shù)據(jù)存在: 1) 輸入序列。由于全1序列具有較好的實(shí)驗(yàn)性和觀察性,我們這里使用的為全1,點(diǎn)數(shù)取6即可。而因?yàn)槭褂玫臑?6位帶符號(hào)整型數(shù)據(jù),可以表達(dá)的數(shù)據(jù)范圍為8000h~7FFFh,即-1~0.9969,因此開辟緩沖區(qū)存放6個(gè)7FFFh。 2) 濾波器系數(shù)。在Matlab中生成21階低通濾波器系數(shù),小數(shù)位為15位,存放在DSP中需要進(jìn)行轉(zhuǎn)換,即乘215=32768,后將小數(shù)位四舍五入,使用floor函數(shù)即可方便生成需要的數(shù)據(jù)。
3.3.2 程序編寫
在進(jìn)行匯編語言程序編寫時(shí),由于匯編可讀性和可寫性差,需要注意的問題較多。 1) 循環(huán)緩沖區(qū)的開辟。在內(nèi)插后進(jìn)行濾波時(shí),由于采用循環(huán)緩沖區(qū)和雙操作數(shù)尋址方式實(shí)現(xiàn)FIR濾波,必須滿足不等式2k>N,N為循環(huán)緩沖區(qū)的長(zhǎng)度,k為起始地址最低有效位的個(gè)數(shù),由于已人為將輸入序列最大長(zhǎng)度定為64,所以在進(jìn)行循環(huán)緩沖區(qū)開辟時(shí),至少要保證起始地址后6位為0。 2) 輔助寄存器的使用。由于在循環(huán)尋址時(shí)無論內(nèi)插、濾波、抽取都要用到AR0寄存器,且其賦值都不同,需要加以區(qū)別。同時(shí)在使用雙操作數(shù)時(shí)只能使用的輔助寄存器為AR2~AR5,且要十分注意指針指向的位置。
本文研究了多速率信號(hào)處理的采樣率轉(zhuǎn)換實(shí)現(xiàn)技術(shù),介紹了內(nèi)插、抽取和采樣率轉(zhuǎn)換的基本原理,并利用Matlab進(jìn)行了仿真分析,在此基礎(chǔ)上,基于定點(diǎn)DSP的實(shí)現(xiàn)了內(nèi)插和抽取的采樣率轉(zhuǎn)換,分析了DSP匯編程序設(shè)計(jì)實(shí)現(xiàn)時(shí)需要注意的基本問題,最后給出了DSP仿真結(jié)果。
[1] 宗孔德.多抽樣率信號(hào)處理[M].北京:清華大學(xué)出版社,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內(nèi)插濾波器結(jié)構(gòu)與實(shí)現(xiàn)綜述[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] 胡廣書.數(shù)字信號(hào)處理—理論、算法與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,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日
寧少雄,男,碩士,工程師,研究方向:工程管理及網(wǎng)絡(luò)應(yīng)用。陳飛,男,碩士研究生,工程師,研究方向?yàn)樾盘?hào)調(diào)制與編碼技術(shù)。張文娟,女,碩士,講師,研究方向:通信工程及網(wǎng)絡(luò)管理。高俊,男,教授,博士生導(dǎo)師,研究方向:通信理論與技術(shù)。
TN911.22
10.3969/j.issn1672-9730.2015.01.027